Le jeu. 30 août 2018 à 18:01, George PF <george....@mail.com> a écrit :
> Hi, > > once COMPONENTS is added to a find_package statement, any REQUIRED > statement ceases to have an effect: > > cmake_minimum_required(VERSION 3.12) > > # find_package(FailsCorrectly REQUIRED) > > find_package(Qt REQUIRED COMPONENTS REQUIRED Qt5XYZ REQUIRED) > find_package(Qt REQUIRED COMPONENTS Qt5XYZ ) > find_package(Qt COMPONENTS REQUIRED Qt5XYZ ) > find_package(Qt COMPONENTS Qt5XYZ REQUIRED) > find_package(Qt COMPONENTS REQUIRED Qt5XYZ REQUIRED) > find_package(Qt REQUIRED COMPONENTS Qt5XYZ REQUIRED) > find_package(Qt REQUIRED COMPONENTS REQUIRED Qt5XYZ ) > > > This CMakeLists.txt runs, despite Qt5XYZ not existing. How can this be > made to fail as it should, why > else would there be OPTIONAL_COMPONENTS as well? > The documentation is intriguing about REQUIRED COMPONENTS interaction.... "A package-specific list of required components may be listed after the ``COMPONENTS`` option (or after the ``REQUIRED`` option if present). Additional optional components may be listed after ``OPTIONAL_COMPONENTS``." and.... "Available components and their influence on whether a package is considered to be found are defined by the target package." and later on: "In Config mode ``find_package`` handles ``REQUIRED``, ``QUIET``, and ``[version]`` options automatically but leaves it to the package configuration file to handle components in a way that makes sense for the package. The package configuration file may set ``<package>_FOUND`` to false to tell ``find_package`` that component requirements are not satisfied." So it is possible that the failure behavior when specifying COMPONENTS is up to the module... Do you see this only with Qt or do other packages with components (may be Boost) behave like this? I guess that Qt5 should be running in config mode, whereas boost must be in module mode though. By the way for Qt5 the doc says you shouldn't be using find_package(Qt): https://cmake.org/cmake/help/latest/module/FindQt.html But probably directly: find_package(Qt5) see example here: https://blog.kitware.com/cmake-finding-qt5-the-right-way/ -- Eric
-- 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: https://cmake.org/mailman/listinfo/cmake