[oe] [PATCH] render cmake search path stricter

Valentin Longchamp valentin.longchamp at epfl.ch
Wed Jun 24 13:07:13 UTC 2009


Douglas Royds wrote:
> Any particular reason not to include CMAKE_FIND_ROOT_PATH_MODE_PACKAGE?

Simply because I did not know about it as I based myself on the this 
doc: http://www.cmake.org/Wiki/CMake_Cross_Compiling and they never talk 
about this variable. I do not see a lot of references to that variable 
so I don't think we should set it here.

> 
> Normally this won't have any effect, as CMake will look in the CMake 
> installation for FindSomething.cmake ("module" mode). But if a package 
> installs a SomethingConfig.cmake in /usr/share/cmake (the "config" mode 
> of find_package) we should be looking only in staging, not trawling 
> around on the host PC.

I agree with you, we should be looking only in staging. But the problem 
is that with the below proposed option 
DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=ONLY, the OE buids do not work well. 
You certainly need a few tools from the host PC. That's why I now have 
CMAKE_FIND_ROOT_PATH_MODE_PROGRAM=BOTH. But the default behaviour with 
cmake is that the directories listed in CMAKE_FIND_ROOT_PATH are 
searched for, which is what we want.

Val

> 
> Douglas.
> 
> 
> Valentin Longchamp wrote:
>> The search is only done in the STAGING directy: all the needed tools
>> should be there (already built) and all the libs and header are there
>> too. With this, we are sure that we do not mix with the host libs,
>> headers or tools.
>>
>> Signed-off-by: Valentin Longchamp <valentin.longchamp at epfl.ch>
>> ---
>>  classes/cmake.bbclass |    3 +++
>>  1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> diff --git a/classes/cmake.bbclass b/classes/cmake.bbclass
>> index b5b7b86..af8f3a9 100644
>> --- a/classes/cmake.bbclass
>> +++ b/classes/cmake.bbclass
>> @@ -21,6 +21,9 @@ cmake_do_configure() {
>>    cmake ${OECMAKE_SOURCEPATH} \
>>      -DCMAKE_INSTALL_PREFIX:PATH=${prefix} \
>>      -DCMAKE_FIND_ROOT_PATH=${STAGING_DIR_HOST} \
>> +    -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=ONLY \
>> +    -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
>> +    -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
>>      ${EXTRA_OECMAKE} \
>>      -Wno-dev
>>  }
>>   
-- 
Valentin Longchamp, PhD Student, EPFL-STI-LSRO1
valentin.longchamp at epfl.ch, Phone: +41216937827
http://people.epfl.ch/valentin.longchamp
MEA3485, Station 9, CH-1015 Lausanne




More information about the Openembedded-devel mailing list