In KDE neon‘s constant quest of raising the quality bar of KDE software and neon itself, I added a new tool to our set of quality assurance tools. CMake Package QA is meant to ensure that find_package() calls on CMake packages provided by config files (e.g. FooConfig.cmake files) do actually work.
The way this works is fairly simple. For just about every bit of KDE software we have packaged, we install the individual deb packages including dependencies one after the other and run a dummy CMakeLists.txt on any *Config.cmake file in that package.
As an example, we have libkproperty3-dev
as a deb package. It contains KPropertyWidgetsConfig.cmake
. We install the package and its dependencies, construct a dummy file, and run cmake on it during our cmake linting.
cmake_minimum_required(VERSION 3.0) find_package(KPropertyWidgets REQUIRED)
This tests that running KPropertyWidgetsConfig.cmake
works, ensuring that the cmake code itself is valid (bad syntax, missing includes, what have you…) and that our package is sound and including all dependencies it needs (to for example meet find_dependency
macro calls).
As it turns out libkproperty3-dev is of insufficient quality. What a shame.
Fixed already, thanks. Nobody reported this. Would be good to have the tests in build.kde.org…