Hi Friedrich,

I am interested in contributing to KDE and would like to try
ECMInstalledLibraryCheck. I am still getting familiar with the KDE
contribution workflow.

At the moment, I am getting a “Forbidden” error when trying to open KDE
Invent. Could you please suggest what I should do to get access, and
whether there is a beginner-friendly area where feedback, documentation
improvements, or additional test coverage would be useful?

I would be happy to test the prototype on a small CMake/C++ project and
share feedback.

Best regards,
Nandani

On Sat, Jul 4, 2026, 8:52 PM Friedrich W. H. Kossebau <[email protected]>
wrote:

> Hi,
>
> how would you feel if there is an option to automatically test the C++
> library development artifacts (headers, CMake config, etc.) in their
> installed variant for usability, before other developers get to use them?
>
> If that sounds somewhere interesting to you, read on :)
>
> Possibly you also have already heard of this, there is currently some on-
> going effort to develop a system for post-installation C++ library checks,
> by the implementation name ECMInstalledLibraryCheck. While already in some
> usable state and there-by successfully having uncovered a number of
> issues,
> it is based only on a few people's needs & ideas, without any known
> similar
> solutions to be "inspired" from for features and patterns.
>
>
> YOUR INPUT & COLLABORATION IS VERY WANTED
>
> What are your pain points with installed C++ library artifacts you wish
> that
> would be tested (and which cannot be tested uninstalled)? What problems
> have
> you seen?
>
> What similar solutions do exist already, for comparison & inspiration?
>
> Would you have fun working on integrating such checks into KDE CI?
>
> Have you tried the current prototype of ECMInstalledLibraryCheck on your
> library, what issues did you detect in your library, what features would
> you
> like in the check? (if not yet, see blog post linked below how to do)
>
> Special question: have you seen public preprocessor definitions whose
> values
> depends on the build which only are defined with some library headers?
>
>
> SMALL PEAK INTO PROTOTYPE FUNCTIONALITY
>
> To get an idea on the current approach with ECMInstalledLibraryCheck, the
> checks are added by declaring them via such functions (by the example of
> KContacts):
>
> --- 8< ---
> # use the module from ECM
> include(ECMInstalledLibraryCheck)
> # for the library target KF6Contacts set up the check
> ecm_add_installed_library_check(KF6Contacts
>     PACKAGE_NAME "KF6Contacts"
>     PACKAGE_VERSION ${KCONTACTS_VERSION}
>     PACKAGE_TARGET_NAMESPACE "KF6::"
> )
> # register the official include statements for the check
> ecm_installed_library_check_include_strings(KF6Contacts
>     HEADERS ${KContacts_CamelCase_HEADERS}
>     PREFIX KContacts
> )
> --- 8< ---
>
> Further checks on certain aspects can be added by functions like
> ecm_installed_library_check_cmake_variable(),
> ecm_installed_library_check_compile_definition() and
> ecm_installed_library_check_preprocessor_macro(). Already there is a
> convenience variant of the last:
> --- 8< ---
> # check all includes also have the usual version macros defined afterwards
> ecm_installed_library_check_version_preprocessor_macros(KF6Contacts
>     PREFIX KCONTACTS
>     VERSION ${KCONTACTS_VERSION}
>     SILENT # only report errors
> )
> --- 8< ---
>
> The check on the library then will appear as global build system target
> "all_installed_library_check", as well as variants per library.
>
>
> MORE INFO
>
> Find the merge request of ECMInstalledLibraryCheck here:
> https://invent.kde.org/frameworks/extra-cmake-modules/-/merge_requests/590
>
> A longer blog post going into details, also how to test-drive the check:
>
> https://frinring.wordpress.com/2026/06/30/c-library-headers-cmake-config-files-are-we-serviceable/
>
>
> TRY IT, COMMENT IT
>
> Be very invited to shape this installed library check solution, so it can
> be
> useful to you right from the its first release.
> Give it 15 minutes now for some considerations & feedback, and hopefully
> save many more minutes in the future :)
>
> Hope to hear from you (even just a "want-this" or "useless-because"),
> and thanks to those who already contributed.
>
> Cheers
> Friedrich
>
>
>

Reply via email to