summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
Commit message (Collapse)AuthorAgeFilesLines
* cmake: Unset CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIESZahir Hussain2023-12-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | As discussion in [YOCTO #14717] cmake contains a OEToolchainConfig.cmake file to configure the toolchain correctly in cross-compile build for recipes using cmake. The variable CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES value updates incorrectly during do_compile the code. Due to this getting sporadic error like below, fatal error: stdlib.h: No such file or directory | 75 | #include_next <stdlib.h> | | ^~~~~~~~~~ | compilation terminated. | ninja: build stopped: subcommand failed. | WARNING: exit code 1 from a shell command. As cmake already correctly initializes the variable from environment, So we have to unset it in the toolchain file to avoid overwriting the variable definition again. (From OE-Core rev: 5aeada5793af53e8c93940952d4f314474dca4c2) Signed-off-by: aszh07 <mail2szahir@gmail.com> Signed-off-by: Zahir Hussain <zahir.basha@kpit.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cmake: Fix CMAKE_SYSTEM_PROCESSOR setting for SDKTom Hochstein2022-09-091-4/+1
| | | | | | | | | | | | | | When building using an SDK, cmake complains that the target architecture 'cortexa53-crypto' is unknown. The same build in bitbake uses the target architecture 'aarch64'. Set CMAKE_SYSTEM_PROCESSOR the same as for bitbake. (From OE-Core rev: d32a6225eefce2073a1cd401034b5b4c68351bfe) Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cmake: remove CMAKE_ASM_FLAGS variable in toolchain fileMartin Beeger2022-08-021-1/+0
| | | | | | | | | | | | | | | As discussied in [YOCTO #14717] cmake contains a OEToolchainConfig.cmake file to configure the toolchain correctly in cross-compile build for recipes using cmake. The CMAKE_ASM_FLAGS are the configuration are meant for assembly, but the spelling is incorrect and the Flag is ASFLAGS for gcc and other compilers. So this variable might neever have worked and it is better for recipes to specify their own. (From OE-Core rev: 72729ffbab53f95ee9dd1bc22913d9b864495930) Signed-off-by: Martin Beeger <martin.beeger@online.de> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cmake: remove bogus CMAKE_LDFLAGS_FLAGS definition from toolchain fileMartin Beeger2022-02-121-1/+0
| | | | | | | | | | | | | | | As discussion in [YOCTO #14717] cmake contains a OEToolchainConfig.cmake file to configure the toolchain correctly in cross-compile build for recipes using cmake. The variable CMAKE_LDFLAGS_FLAGS is spelled incorrectly, cmake expects CMAKE_SHARED_LINKER_FLAGS, CMAKE_STATIC_LINKER_FLAGS, CMAKE_EXE_LINKER_FLAGS and CMAKE_MODULE_LINKER_FLAGS to be set instead. As cmake already correctly initializes these from environment there is no need to specify the linker flags in the toolchain file at all. So this just removes the variable, as its value was also set wrong. (From OE-Core rev: 52e59a5b37f55905ee693a99f9ffc34ed41b4283) Signed-off-by: Martin Beeger <martin.beeger@online.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cmake: allow chainloading of the toolchain fileSamuli Piippo2020-06-171-1/+1
| | | | | | | | | | Use path from CMAKE_CURRENT_LIST_FILE to load the cmake subscripts. This allows the toolchain file to be chainloaded from another toolchain file. (From OE-Core rev: 2d7597ee23b7c2adf40d77e8c35114a4d63aa854) Signed-off-by: Samuli Piippo <samuli.piippo@qt.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cmake: do not look into native sysroot in the nativesdk environmentAlexander Kanavin2019-01-261-1/+1
| | | | | | | | | | | | | | | | | | I am not sure why we do this in the first place, but it is causing cmake to erroneously pick up items from the native sysroot when building for the target and the target item is missing, for example: https://autobuilder.yoctoproject.org/typhoon/#/builders/59/builds/198/steps/7/logs/step2c Note that for executable programs this variable is not referred to, as set by set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER ) in the same file. (From OE-Core rev: cd1c0a0631ad128b25e97f047750579caead051a) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cmake: fix compiling some C++ projects with Yocto SDK and GCCUrs Fässler2018-08-141-0/+1
| | | | | | | | | | | | | Setting CMAKE_SYSROOT in the toolchain file allows CMake to correctly remove user-provided system include directories pointing to <sysroot>/usr/include. The mentioned projects failed with "stdlib.h: No such file or directory #include_next <stdlib.h>". (From OE-Core rev: cb42802f2fe1760f894a435b07286bca3a220364) Signed-off-by: Urs Fässler <urs.fassler@bbv.ch> Signed-off-by: Raphael Freudiger <raphael.freudiger@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cmake: fix linking in multilib SDKsRoss Burton2018-08-071-0/+2
| | | | | | | | | | | | | | | | | | | CMake, in it's infinite wisdom, when searching for libraries (using find_library) will look inside the libraries PREFIX/lib, PREFIX/lib32, and PREFIX/lib64. In a multilib SDK more than one of these will exist (potentially all three) and obviously for a given build configuration only one of those is valid. This search path is hard-coded deep inside CMake but by setting CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX we can bypass it and set an explicit lib<SUFFIX> to use. Do this by writing ${baselib} into the environment file, and then stripping "lib" from this to obtain the suffix in the cmake-specific environment script, which is then read in the CMake toolchain. (From OE-Core rev: 47160a8c51310f2b40cabf4c1910b5df6e0a15d6) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cmake: fix typo in toolchain fileØystein Walle2017-10-161-1/+1
| | | | | | | | | | | | | | | | | | The missing underscore makes CMake define a new variable named "CMAKE" with the contents "ASM_FLAGS ${CMAKE_C_FLAGS}" instead of a variable named "CMAKE_ASM_FLAGS" with contents equal to "CMAKE_C_FLAGS". It seems clear that the intention was to assign "CMAKE_ASM_FLAGS". CMake uses variables named "CMAKE_<LANG>_FLAGS" for defining default compiler flags for a given language <LANG>. Leaving this flag unset may have unintended consequences. Not doing so is however not an error as far as CMake is concerned so it is silently accepted. (From OE-Core rev: 03a4dd085e3be2821eff5a1a1e7e96b809465565) Signed-off-by: Øystein Walle <ow@datarespons.no> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cmake: improve CMAKE_SYSTEM_PROCESSOR assignment in nativesdkRoss Burton2016-10-151-2/+4
| | | | | | | | | | | | | | The previous string manipulations would result in the wrong string being used for machines such as intel-corei7-64 as the sysroot was split at the first hyphen (so would result in corei7 instead of corei7-64). Change the logic so that it looks for processor-distro-os and uses the whole of the processor field. (From OE-Core rev: ce24958d644f2218d5415be574a5b7e1ee8c9b2d) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cmake: also set CMAKE_FIND_ROOT_PATH_MODE_PACKAGERoss Burton2016-10-151-0/+2
| | | | | | | | | | | The other CMAKE_FIND_ROOT_PATH_MODE_* variables were already set to ONLY, but PACKAGE was left out. Fix this so that cmake doesn't look on the host for cmake modules when it should only be looking in the target sysroot. (From OE-Core rev: 2df2372a31b02eab933e4a7aa6d5f8ca48e02c04) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* nativesdk-cmake: Adjust toolchain paths dynamicallyOtavio Salvador2014-10-241-0/+18
This patch adds a flexible way to configure the CMake in SDKs. It adds a toolchain configuration script which supports subscripts for extensions, as for example Qt5. (From OE-Core rev: 4143f3b0ce0d0c52f5b0babc1bb16ac0ac9610eb) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>