[Buildroot] [PATCH 1/1] support/cmake: Explicitly set CMAKE_SYSTEM

Peter Korsgaard peter at korsgaard.com
Sat Aug 3 17:17:19 UTC 2019


>>>>> "Yann" == Yann E MORIN <yann.morin.1998 at free.fr> writes:

 > Franck, All,
 > Thanks for your contribution. I was finally able to wrap my head around
 > this cmake stuff... ;-)

 > On 2019-03-17 17:48 +0100, Frank Vanbever spake thusly:
 >> 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.

 > I haven't been able to really track down exacty _when_ CMAKE_SYSTEM is
 > indeed set, but I believe it is done after the toolchainfile.cmake file
 > is parsed, but before the Buildroot.cmake platofrm one is. And indeed,
 > that becomes too late.

 > So, I believe this change is correct, but...

 > 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 andtoolchanfile.cmake).

 > So:

 > Acked-by: Yann E. MORIN <yann.morin.1998 at free.fr>

Thanks.

Committed after updating the commit message with the above description
from Yann, thanks.

-- 
Bye, Peter Korsgaard



More information about the buildroot mailing list