support/cmake: Explicitly set CMAKE_SYSTEM
Some packages test for CMAKE_SYSTEM explicitly[1] CMAKE_SYSTEM is comprised of CMAKE_SYSTEM_NAME and CMAKE_SYSTEM_VERSION. It defaults to CMAKE_SYSTEM_NAME if CMAKE_SYSTEM_VERSION is not set[2] At the point CMAKE_SYSTEM_NAME is set to "Linux" CMAKE_SYSTEM is already constructed. Setting it explicitly ensures that it is the correct value. This is because we do set CMAKE_SYSTEM_NAME twice, in fact: - first in toolchainfile.cmake, so that we tell cmake to use the "Buildroot" platform, - second, in the Buildroot.cmake platform definition itself, so that we eventually behave like the Linux platform. We also set CMAKE_SYSTEM_VERSION to 1, and so the real CMAKE_SYSTEM value should be set to Linux-1 if we were to follow the documentation to the letter. However, for Linux, the version does not matter, and in some situations may even be harmful (that was reported in one of the commits that introduce Buildroot.cmake and toolchainfile.cmake). [1] Fluidsynth0cd44d00e1/CMakeLists.txt (L80)
[2] https://cmake.org/cmake/help/git-master/variable/CMAKE_SYSTEM.html#variable:CMAKE_SYSTEM Signed-off-by: Frank Vanbever <frank.vanbever@mind.be> Acked-by: Yann E. MORIN <yann.morin.1998@free.fr> [Peter: update commit message with description from Yann] Signed-off-by: Peter Korsgaard <peter@korsgaard.com> (cherry picked from commit07f31ee263
) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
d74dfcc913
commit
8b87b66815
@ -1,5 +1,6 @@
|
||||
# Impersonate a Linux system. Afterall, that's what we are...
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM ${CMAKE_SYSTEM_NAME})
|
||||
include(Platform/Linux)
|
||||
|
||||
# Override problematic settings, to avoid RPATH against host lib directories.
|
||||
|
Loading…
Reference in New Issue
Block a user