Giorgos Tsiapaliokas wrote: > find_package(KDE4Support REQUIRED NO_MODULE) > find_package(KDELibs4 REQUIRED NO_MODULE) > > So should the find_package be written like this? > Is it normal to fail otherwise?
There are likely two issues: 1) a bug in cmake fixed in master with http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0ad2a1c181 2) The targets in those libraries link publically to other targets, but the dependency is not found in the Config file. This relates to what I've pointed out a million times. If a dependency is only used internally, use the PRIVATE keyword to target_link_libraries. If users of the framework must also link to the dependency, make it PUBLIC and also add find_dependency() for the dependency to the config file. For example, if I write: find_package(KIO REQUIRED) I get this: CMake Error at CMakeLists.txt:6 (find_package): Found package configuration file: /home/stephen/dev/prefix/qtbase/kde/lib/x86_64-linux- gnu/cmake/KIO/KIOConfig.cmake but it set KIO_FOUND to FALSE so package "KIO" is considered to be NOT FOUND. Reason given by package: The following imported targets are referenced, but are missing: KF5::KBookmarks KF5::XmlGui KF5::Solid For example, either KIO should link privately to solid instead of publically, or there should be a find_dependency(Solid) in the KIO config file. Which is it? There should be an effort to get this right, because it matters for compatibility guarantees. Thanks, Steve. _______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel