Warning, /frameworks/kirigami/src/libkirigami/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 set(KIRIGAMI_INSTALL_INCLUDEDIR "${KDE_INSTALL_INCLUDEDIR_KF}/Kirigami2") 0002 0003 add_library(KF5Kirigami2 ${libkirigami_SRCS}) 0004 add_library(KF5::Kirigami2 ALIAS KF5Kirigami2) 0005 0006 target_sources(KF5Kirigami2 PRIVATE 0007 platformtheme.cpp 0008 basictheme.cpp 0009 kirigamipluginfactory.cpp 0010 tabletmodewatcher.cpp 0011 styleselector.cpp 0012 units.cpp 0013 virtualkeyboardwatcher.cpp 0014 ) 0015 0016 set(libkirigami_extra_sources "") 0017 0018 #use dbus on linux, bsd etc, but not android and apple stuff 0019 if (UNIX AND NOT ANDROID AND NOT(APPLE) AND NOT(DISABLE_DBUS)) 0020 qt_add_dbus_interface(libkirigami_extra_sources org.kde.KWin.TabletModeManager.xml tabletmodemanager_interface) 0021 qt_add_dbus_interface(libkirigami_extra_sources org.kde.KWin.VirtualKeyboard.xml virtualkeyboard_interface) 0022 set(LIBKIRIGAMKI_EXTRA_LIBS Qt${QT_MAJOR_VERSION}::DBus) 0023 endif() 0024 0025 ecm_qt_declare_logging_category(libkirigami_extra_sources 0026 HEADER loggingcategory.h 0027 IDENTIFIER KirigamiLog 0028 CATEGORY_NAME kf.kirigami 0029 DEFAULT_SEVERITY Warning 0030 ) 0031 0032 ecm_generate_export_header(KF5Kirigami2 0033 VERSION ${KF_VERSION} 0034 BASE_NAME Kirigami2 0035 DEPRECATION_VERSIONS 5.80 5.86 0036 ) 0037 0038 target_sources(KF5Kirigami2 PRIVATE ${libkirigami_extra_sources}) 0039 0040 target_include_directories(KF5Kirigami2 0041 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} 0042 INTERFACE "$<INSTALL_INTERFACE:${KIRIGAMI_INSTALL_INCLUDEDIR}>" 0043 ) 0044 0045 target_link_libraries(KF5Kirigami2 0046 PUBLIC 0047 Qt${QT_MAJOR_VERSION}::Core 0048 PRIVATE 0049 Qt${QT_MAJOR_VERSION}::Qml 0050 Qt${QT_MAJOR_VERSION}::Quick 0051 Qt${QT_MAJOR_VERSION}::QuickControls2 0052 ${LIBKIRIGAMKI_EXTRA_LIBS} 0053 ) 0054 0055 set_target_properties(KF5Kirigami2 PROPERTIES 0056 VERSION ${KIRIGAMI2_VERSION} 0057 SOVERSION ${KIRIGAMI2_SOVERSION} 0058 EXPORT_NAME "Kirigami2" 0059 ) 0060 0061 ecm_generate_headers(Kirigami2_CamelCase_HEADERS 0062 HEADER_NAMES 0063 PlatformTheme 0064 KirigamiPluginFactory 0065 TabletModeWatcher 0066 Units 0067 VirtualKeyboardWatcher 0068 0069 PREFIX Kirigami 0070 REQUIRED_HEADERS Kirigami2_HEADERS 0071 ) 0072 0073 if(NOT BUILD_SHARED_LIBS) 0074 ecm_generate_headers(Kirigami2_HEADERS 0075 HEADER_NAMES KirigamiPlugin 0076 REQUIRED_HEADERS Kirigami2_HEADERS 0077 RELATIVE .. 0078 ) 0079 endif() 0080 0081 install(TARGETS KF5Kirigami2 0082 EXPORT KF5Kirigami2Targets 0083 ${KF_INSTALL_TARGETS_DEFAULT_ARGS}) 0084 0085 if(BUILD_SHARED_LIBS) 0086 list(APPEND Kirigami2_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/kirigami2_export.h) 0087 endif() 0088 0089 install(FILES ${Kirigami2_HEADERS} 0090 DESTINATION ${KIRIGAMI_INSTALL_INCLUDEDIR}/kirigami # prefix matching C++ namespace 0091 COMPONENT Devel) 0092 install(FILES ${Kirigami2_CamelCase_HEADERS} 0093 DESTINATION ${KIRIGAMI_INSTALL_INCLUDEDIR}/Kirigami # prefix matching C++ namespace 0094 COMPONENT Devel) 0095 0096 # provide compat headers for old broken C++ namespaceless include path 0097 if(NOT EXCLUDE_DEPRECATED_BEFORE_AND_AT STREQUAL "CURRENT" AND 0098 EXCLUDE_DEPRECATED_BEFORE_AND_AT VERSION_LESS 5.91.0) 0099 0100 function(generate_compat_headers) 0101 foreach(classname ${ARGV}) 0102 string(TOLOWER ${classname} classname_lc) 0103 set(HEADER_NAME "${classname_lc}.h") 0104 # normal header 0105 set(compat_header "${CMAKE_CURRENT_BINARY_DIR}/compat/${HEADER_NAME}") 0106 set(NEW_INCLUDE "kirigami/${HEADER_NAME}") 0107 configure_file(compatheader.h.in ${compat_header} @ONLY) 0108 install(FILES ${compat_header} 0109 DESTINATION ${KIRIGAMI_INSTALL_INCLUDEDIR} 0110 COMPONENT Devel 0111 ) 0112 # CamelCase header 0113 set(compat_header "${CMAKE_CURRENT_BINARY_DIR}/compat/${classname}") 0114 set(NEW_INCLUDE "Kirigami/${classname}") 0115 configure_file(compatheader.h.in ${compat_header} @ONLY) 0116 install(FILES ${compat_header} 0117 DESTINATION ${KIRIGAMI_INSTALL_INCLUDEDIR} 0118 COMPONENT Devel 0119 ) 0120 endforeach() 0121 endfunction() 0122 0123 generate_compat_headers( 0124 PlatformTheme 0125 KirigamiPluginFactory 0126 TabletModeWatcher 0127 Units 0128 ) 0129 endif() 0130 0131 if(BUILD_QCH) 0132 ecm_add_qch( 0133 KF5Kirigami2_QCH 0134 NAME Kirigami2 0135 BASE_NAME KF5Kirigami2 0136 VERSION ${KF_VERSION} 0137 ORG_DOMAIN org.kde 0138 SOURCES # using only public headers, to cover only public API 0139 ${Kirigami2_HEADERS} 0140 MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md" 0141 LINK_QCHS 0142 Qt5Core_QCH 0143 BLANK_MACROS 0144 KIRIGAMI_EXPORT 0145 KIRIGAMI_DEPRECATED 0146 TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} 0147 QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} 0148 COMPONENT Devel 0149 ) 0150 endif() 0151 0152 include(ECMGeneratePriFile) 0153 ecm_generate_pri_file(BASE_NAME Kirigami2 0154 LIB_NAME KF5Kirigami2 0155 DEPS "core" 0156 FILENAME_VAR PRI_FILENAME 0157 INCLUDE_INSTALL_DIR ${KIRIGAMI_INSTALL_INCLUDEDIR} 0158 ) 0159 install(FILES ${PRI_FILENAME} 0160 DESTINATION ${ECM_MKSPECS_INSTALL_DIR}) 0161