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