Oh, I did not see this one at all, thanks a lot Nils! Julien ----- Mail original -----
> De: "Nils Gladitz" <[email protected]> > À: "Julien Schueller" <[email protected]>, "CMake Developers" > <[email protected]> > Envoyé: Mardi 15 Mars 2016 23:24:05 > Objet: Re: [cmake-developers] find_package with NO_MODULE while > cross-compiling > On 15.03.2016 23:01, Julien Schueller wrote: > > Hi, > > > When using find_package (<name> NO_MODULE) while cross-compiling, > > > cmake may find an existing <name>Config.cmake in the host root path if > > <name>Config.cmake is not available in the target root path. > > > For example let's say that I have Qt5 project in my host Linux box, which > > provides a /usr/lib/cmake/.../Qt5WidgetsConfig.cmake. > > > In my cmake project I use: find_package (Qt5Widgets NO_MODULE), everything > > goes as planned. > > > Now I want to cross-compile using MinGW-w64, I install qt5 in my mingw > > target > > root, so I have a > > /usr/i686-w64-mingw32/lib/cmake/.../Qt5WidgetsConfig.cmake > > > I set CMAKE_FIND_ROOT_PATH to /usr/i686-w64-mingw32 and stuff via a > > toolchain > > file, and everything goes fine too. > > > No if I remove the qt5 target package for mingw, or it is unavailable in > > the > > first place, cmake prefers the host qt5 config file, and the compilation > > fails. > > > I found a workaround, which is to not let cmake use host rules to find > > <name>Config.cmake in the case of cross-compiling: > > > if (CMAKE_CROSSCOMPILING) > > > set (NO_MODULE_ARGS NO_MODULE NO_SYSTEM_ENVIRONMENT_PATH > > NO_CMAKE_SYSTEM_PATH) > > > endif () > > > find_package (Qt5Widgets ${NO_MODULE_ARGS}) > > > Would there be a smarter way to do this instead of invading each CMakeLists > > that uses a find_package relying on package-provided cmake configs ? > > Setting > https://cmake.org/cmake/help/v3.5/variable/CMAKE_FIND_ROOT_PATH_MODE_PACKAGE.html > to ONLY in your toolchain file should prevent cmake from picking up native > packages. > Nils -- 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
