[Buildroot] [PATCH 1/1] support/cmake: Explicitly set CMAKE_SYSTEM
Peter Korsgaard
peter at korsgaard.com
Fri Aug 30 20:34:53 UTC 2019
>>>>> "Peter" == Peter Korsgaard <peter at korsgaard.com> writes:
Hi,
>> 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.
Committed to 2019.02.x and 2019.05.x, thanks.
--
Bye, Peter Korsgaard
More information about the buildroot
mailing list