> De: "Nils Gladitz" <nilsglad...@gmail.com> > À: "Julien Schueller" <schuel...@phimeca.com>, "cmake-developers" > <cmake-developers@cmake.org> > Envoyé: Vendredi 1 Juillet 2016 12:37:47 > Objet: Re: [cmake-developers] PATHS guess in find_package ignored with > NO_DEFAULT_PATH & CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
> 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 Thanks, In my case <hmat-prefix> has the same value as CMAKE_FIND_ROOT_PATH, and even if I modify the PATHS option value to be relative (PATHS lib/cmake/hmat) the detection fails. (They're not actually set to /usr/i686-w64-mingw32 but some absolute location in my home where I unzip a mingw toolchain, but I can reproduce the issue on another box where the toolchain is natively /usr/i686-w64-mingw32). -- Julien Schueller Phimeca Engineering www.phimeca.com
-- 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