mirror of
https://git.yoctoproject.org/poky
synced 2026-05-09 05:29:32 +00:00
cmake: in SDK use OE env var to set default toolchain
Patch the location in cmake where the toolchain file is loaded to use the (new) OE_CMAKE_TOOLCHAIN_FILE variable to select a default toolchain if no toolchain has been specified. The cmake alias is removed. The alternatives: - shell alias fails when cmake is called indirectly (ex: a makefile managing several projects which calls cmake for some of them) because aliases are not inherited - wrapper script that unconditionally adds "-D..." breaks cmake's build tests and many other things as it causes cmake to believe it should be configuring things when it should not be. For example, `cmake -DCMAKE_TOOLCHAIN_FILE=... --build .` does not work (note that this also breaks people directly using `cmake --build .` with the current alias). (From OE-Core rev: da60be3768e7183794d63548166d107dbd0a4973) Signed-off-by: Cody P Schafer <dev@codyps.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
24bb79155b
commit
034ee07ed9
+45
@@ -0,0 +1,45 @@
|
|||||||
|
From a42cfebcd6c684cccf8ad33e5bd5130f7cdba135 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cody P Schafer <dev@codyps.com>
|
||||||
|
Date: Thu, 27 Apr 2017 11:35:05 -0400
|
||||||
|
Subject: [PATCH] CMakeDetermineSystem: use oe environment vars to load default
|
||||||
|
toolchain file in sdk
|
||||||
|
|
||||||
|
Passing the toolchain by:
|
||||||
|
|
||||||
|
- shell aliases does not work if cmake is called by a script
|
||||||
|
- unconditionally by a wrapper script causes cmake to believe it is
|
||||||
|
configuring things when it is not (for example, `cmake --build` breaks).
|
||||||
|
|
||||||
|
The OE_CMAKE_TOOLCHAIN_FILE variable is only used as a default if no
|
||||||
|
toolchain is explicitly specified.
|
||||||
|
|
||||||
|
Setting the CMAKE_TOOLCHAIN_FILE cmake variable is marked as cached
|
||||||
|
because '-D' options are cache entries themselves.
|
||||||
|
|
||||||
|
Upstream-Status: Inappropriate [oe-core specific]
|
||||||
|
Signed-off-by: Cody P Schafer <dev@codyps.com>
|
||||||
|
---
|
||||||
|
Modules/CMakeDetermineSystem.cmake | 7 +++++++
|
||||||
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake
|
||||||
|
index f34ec5d61..bcac3ef16 100644
|
||||||
|
--- a/Modules/CMakeDetermineSystem.cmake
|
||||||
|
+++ b/Modules/CMakeDetermineSystem.cmake
|
||||||
|
@@ -74,6 +74,13 @@ else()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
|
||||||
|
+ if(DEFINED ENV{OE_CMAKE_TOOLCHAIN_FILE})
|
||||||
|
+ set(CMAKE_TOOLCHAIN_FILE "$ENV{OE_CMAKE_TOOLCHAIN_FILE}" CACHE FILEPATH "toolchain file")
|
||||||
|
+ message(STATUS "Toolchain file defaulted to '${CMAKE_TOOLCHAIN_FILE}'")
|
||||||
|
+ endif()
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
# if a toolchain file is used, the user wants to cross compile.
|
||||||
|
# in this case read the toolchain file and keep the CMAKE_HOST_SYSTEM_*
|
||||||
|
# variables around so they can be used in CMakeLists.txt.
|
||||||
|
--
|
||||||
|
2.12.2
|
||||||
|
|
||||||
@@ -1 +1 @@
|
|||||||
alias cmake="cmake -DCMAKE_TOOLCHAIN_FILE=$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake"
|
export OE_CMAKE_TOOLCHAIN_FILE="$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake"
|
||||||
|
|||||||
@@ -6,7 +6,9 @@ DEPENDS += "curl expat zlib libarchive xz ncurses bzip2"
|
|||||||
|
|
||||||
SRC_URI_append_class-nativesdk = " \
|
SRC_URI_append_class-nativesdk = " \
|
||||||
file://OEToolchainConfig.cmake \
|
file://OEToolchainConfig.cmake \
|
||||||
file://environment.d-cmake.sh"
|
file://environment.d-cmake.sh \
|
||||||
|
file://0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch \
|
||||||
|
"
|
||||||
|
|
||||||
# Strip ${prefix} from ${docdir}, set result into docdir_stripped
|
# Strip ${prefix} from ${docdir}, set result into docdir_stripped
|
||||||
python () {
|
python () {
|
||||||
|
|||||||
Reference in New Issue
Block a user