Warning, /frameworks/kirigami/src/platform/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 add_library(KirigamiPlatform)
0002 add_library(KF6::KirigamiPlatform ALIAS KirigamiPlatform)
0003 
0004 ecm_add_qml_module(KirigamiPlatform URI "org.kde.kirigami.platform" VERSION 2.0 GENERATE_PLUGIN_SOURCE DEPENDENCIES QtQuick)
0005 
0006 set_target_properties(KirigamiPlatform PROPERTIES
0007     VERSION     ${PROJECT_VERSION}
0008     SOVERSION   6
0009     EXPORT_NAME "KirigamiPlatform"
0010 )
0011 
0012 target_sources(KirigamiPlatform PRIVATE
0013     platformtheme.cpp
0014     platformtheme.h
0015     basictheme.cpp
0016     basictheme_p.h
0017     inputmethod.cpp
0018     inputmethod.h
0019     platformpluginfactory.cpp
0020     platformpluginfactory.h
0021     tabletmodewatcher.cpp
0022     tabletmodewatcher.h
0023     settings.cpp
0024     settings.h
0025     styleselector.cpp
0026     styleselector.h
0027     units.cpp
0028     units.h
0029     virtualkeyboardwatcher.cpp
0030     virtualkeyboardwatcher.h
0031 )
0032 
0033 set(libkirigami_extra_sources "")
0034 
0035 #use dbus on linux, bsd etc, but not android and apple stuff
0036 if (UNIX AND NOT ANDROID AND NOT(APPLE) AND NOT(DISABLE_DBUS))
0037     set_source_files_properties(org.freedesktop.portal.Settings.xml PROPERTIES INCLUDE dbustypes.h)
0038     qt_add_dbus_interface(libkirigami_extra_sources org.freedesktop.portal.Settings.xml settings_interface)
0039     set(LIBKIRIGAMKI_EXTRA_LIBS Qt6::DBus)
0040 endif()
0041 
0042 target_sources(KirigamiPlatform PRIVATE ${libkirigami_extra_sources})
0043 
0044 ecm_qt_declare_logging_category(KirigamiPlatform
0045     HEADER kirigamiplatform_logging.h
0046     IDENTIFIER KirigamiPlatform
0047     CATEGORY_NAME kf.kirigami.platform
0048     DESCRIPTION "Kirigami Platform"
0049     DEFAULT_SEVERITY Warning
0050     EXPORT KIRIGAMI
0051 )
0052 
0053 ecm_setup_version(PROJECT
0054     VARIABLE_PREFIX KIRIGAMIPLATFORM
0055     VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kirigamiplatform_version.h"
0056     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6KirigamiPlatformConfigVersion.cmake"
0057     SOVERSION 6
0058 )
0059 
0060 ecm_generate_export_header(KirigamiPlatform
0061     VERSION ${PROJECT_VERSION}
0062     BASE_NAME KirigamiPlatform
0063     USE_VERSION_HEADER
0064     DEPRECATION_VERSIONS
0065 )
0066 
0067 target_include_directories(KirigamiPlatform
0068     PUBLIC
0069     "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>"
0070     "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}>"
0071     "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/Kirigami/Platform>"
0072 )
0073 
0074 include_static_dependencies(KirigamiPlatform EXPORT KF6KirigamiPlatformTargets)
0075 
0076 target_link_libraries(KirigamiPlatform
0077     PUBLIC
0078     Qt6::Core
0079     Qt6::Qml
0080     Qt6::Quick
0081     PRIVATE
0082     Qt6::GuiPrivate
0083     Qt6::QuickControls2
0084     ${LIBKIRIGAMKI_EXTRA_LIBS}
0085 )
0086 
0087 ecm_generate_headers(KirigamiPlatform_CamelCase_HEADERS
0088     HEADER_NAMES
0089     PlatformTheme
0090     PlatformPluginFactory
0091     StyleSelector
0092     TabletModeWatcher
0093     Units
0094     VirtualKeyboardWatcher
0095     REQUIRED_HEADERS KirigamiPlatform_HEADERS
0096 )
0097 
0098 configure_package_config_file(
0099     "${CMAKE_CURRENT_SOURCE_DIR}/KF6KirigamiPlatformConfig.cmake.in"
0100     "${CMAKE_CURRENT_BINARY_DIR}/KF6KirigamiPlatformConfig.cmake"
0101     INSTALL_DESTINATION ${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6KirigamiPlatform
0102     PATH_VARS CMAKE_INSTALL_PREFIX
0103 )
0104 
0105 install(FILES
0106     "${CMAKE_CURRENT_BINARY_DIR}/KF6KirigamiPlatformConfig.cmake"
0107     "${CMAKE_CURRENT_BINARY_DIR}/KF6KirigamiPlatformConfigVersion.cmake"
0108     DESTINATION ${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6KirigamiPlatform
0109     COMPONENT Devel
0110 )
0111 
0112 if (NOT BUILD_SHARED_LIBS)
0113     install(TARGETS KirigamiPlatformplugin EXPORT KF6KirigamiPlatformTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0114 endif()
0115 
0116 install(TARGETS KirigamiPlatform EXPORT KF6KirigamiPlatformTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0117 
0118 install(EXPORT KF6KirigamiPlatformTargets
0119     DESTINATION ${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6KirigamiPlatform
0120     FILE KF6KirigamiPlatformTargets.cmake
0121     NAMESPACE KF6::
0122 )
0123 
0124 install(FILES
0125     ${KirigamiPlatform_HEADERS}
0126     ${CMAKE_CURRENT_BINARY_DIR}/kirigamiplatform_export.h
0127     ${CMAKE_CURRENT_BINARY_DIR}/kirigamiplatform_version.h
0128     DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/Kirigami/Platform # prefix matching C++ namespace
0129     COMPONENT Devel
0130 )
0131 install(FILES
0132     ${KirigamiPlatform_CamelCase_HEADERS}
0133     DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/Kirigami/Platform # prefix matching C++ namespace
0134     COMPONENT Devel
0135 )
0136 
0137 ecm_qt_install_logging_categories(
0138     EXPORT KIRIGAMI
0139     FILE kirigami.categories
0140     DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0141 )
0142 
0143 ecm_finalize_qml_module(KirigamiPlatform)
0144 
0145 if(BUILD_QCH)
0146     ecm_add_qch(
0147         KF6Kirigami_QCH
0148         NAME KirigamiPlatform
0149         BASE_NAME KF6KirigamiPlatform
0150         VERSION ${KF_VERSION}
0151         ORG_DOMAIN org.kde
0152         SOURCES # using only public headers, to cover only public API
0153             platformpluginfactory.h
0154             platformtheme.h
0155             tabletmodewatcher.h
0156             units.h
0157             virtualkeyboardwatcher.h
0158         MD_MAINPAGE "${CMAKE_CURRENT_SOURCE_DIR}/README.md"
0159         LINK_QCHS
0160             Qt6Core_QCH
0161         BLANK_MACROS
0162             KIRIGAMIPLATFORM_EXPORT
0163             KIRIGAMIPLATFORM_DEPRECATED
0164         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0165         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0166         COMPONENT Devel
0167     )
0168 endif()
0169