[OE-core] [PATCH] cmake bbclass: fix support for native builds
Koen Kooi
koen at dominion.thruhere.net
Wed Jul 1 06:49:17 UTC 2015
> Op 30 jun. 2015, om 15:28 heeft Stefan Herbrechtsmeier <stefan at herbrechtsmeier.net> het volgende geschreven:
>
> Am 30.06.2015 um 15:18 schrieb Koen Kooi:
>> For native builds of recipes (e.g. mariadb-native) cmake *must* look outside of its sysroot to find the compiler, so instruct it to do so.
>>
>> Signed-off-by: Koen Kooi <koen.kooi at linaro.org>
>> ---
>> meta/classes/cmake.bbclass | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/meta/classes/cmake.bbclass b/meta/classes/cmake.bbclass
>> index b0a3972..29a78e5 100644
>> --- a/meta/classes/cmake.bbclass
>> +++ b/meta/classes/cmake.bbclass
>> @@ -27,6 +27,9 @@ OECMAKE_RPATH ?= ""
>> OECMAKE_PERLNATIVE_DIR ??= ""
>> OECMAKE_EXTRA_ROOT_PATH ?= ""
>> +OECMAKE_PATHS ?= ""
>> +OECMAKE_PATHS_class-native = "set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH )"
>> +
>> cmake_do_generate_toolchain_file() {
>> cat > ${WORKDIR}/toolchain.cmake <<EOF
>> # CMake system name must be something like "Linux".
>> @@ -67,6 +70,8 @@ list(APPEND CMAKE_MODULE_PATH "${STAGING_DATADIR}/cmake/Modules/")
>> # add for non /usr/lib libdir, e.g. /usr/lib64
>> set( CMAKE_LIBRARY_PATH ${libdir} ${base_libdir})
>> +${OECMAKE_PATHS}
>> +
>> EOF
>> }
>>
> This would generate a second set of the CMAKE_FIND_ROOT_PATH_MODE_PROGRAM with a different value.
>
> Why not add a new variable and use it in the existing set:
>
> +OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "ONLY"
> +OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM_class-native = "BOTH"
>
> -set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY )
> +set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ${OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM})
That’s a much better solution, v2 coming up. Thanks for the feedback!
More information about the Openembedded-core
mailing list