On 07/01/2016 11:13 AM, Julien Schueller wrote:

I'm using find_package in no-module mode with the PATHS option to provide a hard-coded guess to a path where a sublibrary 'hmat' was previously found,
and with the NO_DEFAULT_PATH to not find it first in system directories.
find_package (HMAT REQUIRED NO_MODULE PATHS <hmat-prefix>/lib/cmake/hmat NO_DEFAULT_PATH)

So far so good. Now I want to cross-compile with the usual toolchain file:
set (CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32)
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
...
This works wonderfully too.

But now I add CMAKE_FIND_ROOT_PATH_MODE_PACKAGE to ONLY in my toolchain file to prevent detecting native libraries
set (CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
And now find_package fails to find my package!

I'm puzzled as I did not find in the doc something that explains why the PATHS is ignored (step #8 in find_package):
https://cmake.org/cmake/help/v3.5/command/find_package.html#command:find_package


The given path "<hmat-prefix>/lib/cmake/hmat" is prefixed by the paths in CMAKE_FIND_ROOT_PATH. Which means that (given ONLY) cmake only looks for the package in "/usr/i686-w64-mingw32/<hmat-prefix>/lib/cmake/hmat".

You might want to e.g. add <hmat-prefix> to CMAKE_FIND_ROOT_PATH and use PATHS / instead.

Nils
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to