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

0001 # SPDX-FileCopyrightText: Alexander Lohnau <alexander.lohnau@gmx.de>
0002 # SPDX-License-Identifier: BSD-2-Clause
0003 
0004 add_library(KF5NewStuffWidgets)
0005 add_library(KF5::NewStuffWidgets ALIAS KF5NewStuffWidgets)
0006 
0007 # Flag to hint this is compilation of the library itself
0008 # Needed because the overloaded signal Action::dialogFinished(QList<KNSCore::Entry>) was only added in a later version,
0009 # but SC requirement needs to keep usages of plain &Action::dialogFinished working.
0010 # So the flag is used to add all signals to the library itself,
0011 # while consumers will only see one variant depending on KNEWSTUFFWIDGETS_DISABLE_DEPRECATED_BEFORE_AND_AT settings
0012 target_compile_definitions(KF5NewStuffWidgets PRIVATE -DKNEWSTUFFWIDGETS_PRIVATE_BUILDING)
0013 
0014 ecm_generate_export_header(KF5NewStuffWidgets
0015     EXPORT_FILE_NAME knewstuffwidgets_export.h
0016     BASE_NAME KNewStuffWidgets
0017     GROUP_BASE_NAME KF
0018     VERSION ${KF_VERSION}
0019     DEPRECATED_BASE_VERSION 0
0020     DEPRECATION_VERSIONS 5.91
0021     EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
0022 )
0023 
0024 target_sources(KF5NewStuffWidgets PRIVATE
0025     action.cpp button.cpp
0026     ../ui/widgetquestionlistener.cpp)
0027 
0028 target_link_libraries(KF5NewStuffWidgets PUBLIC KF5::NewStuff)
0029 target_link_libraries(KF5NewStuffWidgets
0030   PUBLIC
0031     KF5::NewStuffCore
0032     KF5::NewStuff
0033   PRIVATE
0034     KF5::I18n
0035 )
0036 
0037 target_include_directories(KF5NewStuffWidgets
0038     PUBLIC "$<BUILD_INTERFACE:${KNewStuff_BINARY_DIR};${CMAKE_CURRENT_BINARY_DIR}>"
0039     INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR_KF}/KNewStuff3>")
0040 
0041 set_target_properties(KF5NewStuffWidgets PROPERTIES
0042    VERSION ${KNEWSTUFF_VERSION}
0043    SOVERSION ${KNEWSTUFF_SOVERSION}
0044    EXPORT_NAME NewStuffWidgets
0045 )
0046 
0047 set(KNewStuffWidgets_HEADERS
0048   action.h
0049   button.h
0050 )
0051 ecm_generate_headers(KNewStuffWidgets_CamelCase_HEADERS
0052   HEADER_NAMES
0053   Action
0054   Button
0055 
0056   REQUIRED_HEADERS KNewStuffWidgets_HEADERS
0057   OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/KNSWidgets
0058 )
0059 
0060 install(
0061     FILES
0062         ${KNewStuffWidgets_CamelCase_HEADERS}
0063         ${KNewStuffWidgets_HEADERS}
0064         ${CMAKE_CURRENT_BINARY_DIR}/knewstuffwidgets_export.h
0065     DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KNewStuff3/KNSWidgets
0066     COMPONENT Devel
0067 )
0068 
0069 # Kept for backwards compatibility, in KF6 all headers will be installed in KNewStuff3/KNSWidgets only
0070 if(QT_MAJOR_VERSION STREQUAL "5")
0071     install(
0072         FILES
0073             ${KNewStuffWidgets_HEADERS}
0074             ${CMAKE_CURRENT_BINARY_DIR}/knewstuffwidgets_export.h
0075         DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF}/KNewStuff3/knswidgets
0076         COMPONENT Devel
0077     )
0078 endif()
0079 
0080 install(TARGETS KF5NewStuffWidgets EXPORT KF5NewStuffTargets ${KF_INSTALL_TARGETS_DEFAULT_ARGS})
0081 
0082 if (BUILD_DESIGNERPLUGIN)
0083     include(ECMAddQtDesignerPlugin)
0084     ecm_qtdesignerplugin_widget(KNSWidgets::Button
0085         INCLUDE_FILE "KNSWidgets/Button"
0086         TOOLTIP "KHotNewStuff push button that encapsulats most of the details involved in using KHotNewStuff in it."
0087         GROUP "Buttons (KF5)"
0088     )
0089 
0090     ecm_add_qtdesignerplugin(knewstuffwidgets
0091         NAME KNewStuffWidgets
0092         WIDGETS
0093             KNSWidgets::Button
0094         LINK_LIBRARIES
0095             KF5::NewStuffWidgets
0096         INSTALL_DESTINATION "${KDE_INSTALL_QTPLUGINDIR}/designer"
0097         COMPONENT Devel
0098     )
0099 endif()
0100 
0101 if(BUILD_QCH)
0102     ecm_add_qch(
0103         KF5NewStuffWidgets_QCH
0104         NAME KNewStuffWidgets
0105         BASE_NAME KF5NewStuffWidgets
0106         VERSION ${KF_VERSION}
0107         ORG_DOMAIN org.kde
0108         SOURCES ${KNewStuffWidgets_HEADERS}
0109         LINK_QCHS
0110             KF5NewStuffCore_QCH
0111             KF5NewStuff_QCH
0112         INCLUDE_DIRS
0113             ${CMAKE_CURRENT_BINARY_DIR}
0114             ${KNewStuff_BINARY_DIR}
0115         BLANK_MACROS
0116             KNEWSTUFFWIDGETS_EXPORT
0117             "KNEWSTUFFWIDGETS_DEPRECATED_VERSION(x, y, t)"
0118         TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0119         QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR}
0120         COMPONENT Devel
0121     )
0122 endif()
0123