diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,11 +17,15 @@ include(ECMSetupVersion) include(ECMGenerateHeaders) include(ECMQtDeclareLoggingCategory) +include(ECMAddQch) include(KDEInstallDirs) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include(KDECMakeSettings) +option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) +add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") + set(REQUIRED_QT_VERSION 5.6.0) find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core) @@ -66,6 +70,16 @@ # create a Config.cmake and a ConfigVersion.cmake file and install them set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5CoreAddons") +if (BUILD_QCH) + ecm_install_qch_export( + TARGETS KF5CoreAddons_QCH + FILE KF5CoreAddonsQchTargets.cmake + DESTINATION "${CMAKECONFIG_INSTALL_DIR}" + COMPONENT Devel + ) + set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5CoreAddonsQchTargets.cmake\")") +endif() + configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/KF5CoreAddonsConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/KF5CoreAddonsConfig.cmake" INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} diff --git a/KF5CoreAddonsConfig.cmake.in b/KF5CoreAddonsConfig.cmake.in --- a/KF5CoreAddonsConfig.cmake.in +++ b/KF5CoreAddonsConfig.cmake.in @@ -19,4 +19,4 @@ endif() include("${CMAKE_CURRENT_LIST_DIR}/KF5CoreAddonsTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/KF5CoreAddonsMacros.cmake") - +@PACKAGE_INCLUDE_QCHTARGETS@ diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -255,6 +255,28 @@ # Includes CMake code to install open-source license texts for KAboutData. add_subdirectory(licenses) +if(BUILD_QCH) + ecm_add_qch( + KF5CoreAddons_QCH + NAME KCoreAddons + BASE_NAME KF5CoreAddons + VERSION ${KF5_VERSION} + ORG_DOMAIN org.kde + SOURCES # using only public headers, to cover only public API + ${KCoreAddons_HEADERS} + MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md" + LINK_QCHS + Qt5Core_QCH + BLANK_MACROS + KCOREADDONS_EXPORT + KCOREADDONS_DEPRECATED + KCOREADDONS_DEPRECATED_EXPORT + TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} + QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} + COMPONENT Devel + ) +endif() + include(ECMGeneratePriFile) ecm_generate_pri_file(BASE_NAME KCoreAddons LIB_NAME KF5CoreAddons DEPS "core" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/KCoreAddons) install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})