[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