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