qskinny/examples/iot-dashboard/src/CMakeLists.txt

128 lines
4.1 KiB
CMake
Raw Normal View History

project(kirigami)
if (BUILD_SHARED_LIBS)
ecm_create_qm_loader(kirigami_QM_LOADER libkirigami2plugin_qt)
else()
set(KIRIGAMI_STATIC_FILES
libkirigami/basictheme.cpp
libkirigami/platformtheme.cpp
libkirigami/tabletmodewatcher.cpp
libkirigami/kirigamipluginfactory.cpp)
endif()
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/libkirigami ${CMAKE_CURRENT_BINARY_DIR}/libkirigami)
set(kirigami_SRCS
kirigamiplugin.cpp
columnview.cpp
enums.cpp
delegaterecycler.cpp
icon.cpp
settings.cpp
formlayoutattached.cpp
pagepool.cpp
imagecolors.cpp
scenepositionattached.cpp
mnemonicattached.cpp
wheelhandler.cpp
shadowedrectangle.cpp
shadowedtexture.cpp
colorutils.cpp
pagerouter.cpp
avatar.cpp
toolbarlayout.cpp
toolbarlayoutdelegate.cpp
sizegroup.cpp
scenegraph/managedtexturenode.cpp
scenegraph/shadowedrectanglenode.cpp
scenegraph/shadowedrectanglematerial.cpp
scenegraph/shadowedborderrectanglematerial.cpp
scenegraph/paintedrectangleitem.cpp
scenegraph/shadowedtexturenode.cpp
scenegraph/shadowedtexturematerial.cpp
scenegraph/shadowedbordertexturematerial.cpp
${kirigami_QM_LOADER}
${KIRIGAMI_STATIC_FILES}
)
qt5_add_resources(SHADERS scenegraph/shaders/shaders.qrc)
add_subdirectory(libkirigami)
if(NOT BUILD_SHARED_LIBS)
# `rcc` is a bit dumb and isn't designed to use auto generated files, to
# avoid poluting the source directory, use absolute paths
set(kirigami_QML_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../)
# First, pre-process the QRC to add the files associated with the right Qt
# version.
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/../kirigami.qrc.in
${CMAKE_CURRENT_BINARY_DIR}/../kirigami.qrc
@ONLY
)
# When using the static library, all QML files need to be shipped within the
# .a file.
qt5_add_resources(
RESOURCES ${CMAKE_CURRENT_BINARY_DIR}/../kirigami.qrc
)
if (UNIX AND NOT ANDROID AND NOT(APPLE) AND NOT(DISABLE_DBUS))
qt5_add_dbus_interface(kirigami_SRCS libkirigami/org.kde.KWin.TabletModeManager.xml tabletmodemanager_interface)
endif()
endif()
add_library(kirigamiplugin ${kirigami_SRCS} ${RESOURCES} ${SHADERS})
if(NOT BUILD_SHARED_LIBS)
SET_TARGET_PROPERTIES(kirigamiplugin PROPERTIES
AUTOMOC_MOC_OPTIONS -Muri=org.kde.kirigami)
if (UNIX AND NOT ANDROID AND NOT(APPLE) AND NOT(DISABLE_DBUS))
set(Kirigami_EXTRA_LIBS Qt5::DBus)
else()
set(Kirigami_EXTRA_LIBS "")
endif()
else()
set(Kirigami_EXTRA_LIBS KF5::Kirigami2)
endif()
target_link_libraries(kirigamiplugin
PUBLIC
Qt5::Core
PRIVATE
${Kirigami_EXTRA_LIBS} Qt5::Qml Qt5::Quick Qt5::QuickControls2 Qt5::Concurrent
)
if (BUILD_SHARED_LIBS)
add_custom_target(copy_to_bin ALL
COMMAND ${CMAKE_COMMAND} -E
make_directory ${CMAKE_BINARY_DIR}/bin/org/kde/kirigami.2/
COMMAND ${CMAKE_COMMAND} -E
copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/controls ${CMAKE_BINARY_DIR}/bin/org/kde/kirigami.2/
COMMAND ${CMAKE_COMMAND} -E
copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/styles ${CMAKE_BINARY_DIR}/bin/org/kde/kirigami.2/styles
COMMAND ${CMAKE_COMMAND} -E
copy $<TARGET_FILE:kirigamiplugin> ${CMAKE_BINARY_DIR}/bin/org/kde/kirigami.2/
)
install(DIRECTORY controls/ DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami.2)
if (DESKTOP_ENABLED)
install(DIRECTORY styles/org.kde.desktop DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami.2/styles)
endif()
install(DIRECTORY styles/Material DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami.2/styles)
install(FILES ${platformspecific} DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami.2)
include(ECMGeneratePriFile)
ecm_generate_pri_file(BASE_NAME Kirigami2 LIB_NAME KF5Kirigami2 DEPS "core qml quick svg" FILENAME_VAR PRI_FILENAME )
install(FILES ${PRI_FILENAME}
DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
endif()
install(TARGETS kirigamiplugin DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/kirigami.2)