plugins fixed

This commit is contained in:
Uwe Rathmann 2023-04-01 13:58:56 +02:00
parent bf4ab34ad8
commit 0a6a1057ba
32 changed files with 61 additions and 59 deletions

View File

@ -5,10 +5,6 @@ project(QSkinny
HOMEPAGE_URL "https://github.com/uwerat/qskinny" HOMEPAGE_URL "https://github.com/uwerat/qskinny"
VERSION 999.99.9) VERSION 999.99.9)
# Useful unsupported scenarios:
# - When cross compiling we might want to build the tools only
# - Suppressing
option(BUILD_QSKDLL "Build libs ( not plugins ) as shared library" ON) option(BUILD_QSKDLL "Build libs ( not plugins ) as shared library" ON)
option(BUILD_QML_EXPORT "Exporting QSkinny to QML" ON) option(BUILD_QML_EXPORT "Exporting QSkinny to QML" ON)

View File

@ -36,27 +36,43 @@ function(qsk_add_library)
endfunction() endfunction()
function(qsk_plugin PLUGIN_NAME TYPE) function(qsk_add_plugin PLUGIN_NAME TYPE CLASS_NAME)
# qt6_add_plugin calls add_library as MODULE - even when SHARED
# is requested. In general this ould be the correct type for plugins -
# however we also want to link the plugin when ENABLE_ENSURE_SKINS
# is enabled.
# Probably the correct solution would be to put the implemetation of
# the skins into a regular lib and the plugins would contain
# the factories only. TODO ...
# So for the moment better don't do:
# qt6_add_plugin(${PLUGIN_NAME} SHARED ${CLASS_NAME} )
if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6) if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6)
qt6_add_library(${PLUGIN_NAME} SHARED ${HEADERS} ${SOURCES} ${OTHER_FILES}) qt6_add_library(${PLUGIN_NAME} SHARED )
else() else()
add_library(${PLUGIN_NAME} SHARED ${HEADERS} ${SOURCES} ${OTHER_FILES}) add_library(${PLUGIN_NAME} SHARED )
endif() endif()
set_target_properties(${PLUGIN_NAME} PROPERTIES
QT_PLUGIN_CLASS_NAME ${CLASS_NAME} )
target_compile_definitions(${PLUGIN_NAME} PRIVATE QT_PLUGIN )
target_sources( ${PLUGIN_NAME} PRIVATE ${HEADERS} ${SOURCES} )
target_link_libraries(${PLUGIN_NAME} PRIVATE qskinny) target_link_libraries(${PLUGIN_NAME} PRIVATE qskinny)
set_target_properties(${PLUGIN_NAME} PROPERTIES FOLDER ${TYPE}) set_target_properties(${PLUGIN_NAME} PROPERTIES FOLDER ${TYPE})
# the plugin has to go to .../plugins/${TYPE}/ # the plugin has to go to .../plugins/${TYPE}/
# otherwise it can't be loaded at runtime ... # otherwise it won't be found at runtime ...
set_target_properties( ${PLUGIN_NAME} PROPERTIES set_target_properties( ${PLUGIN_NAME} PROPERTIES
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/plugins/${TYPE}") LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/plugins/${TYPE}")
endfunction() endfunction()
function(qsk_example EXAMPLE_NAME) function(qsk_add_example EXAMPLE_NAME)
set(TARGET_NAME ${EXAMPLE_NAME}) set(TARGET_NAME ${EXAMPLE_NAME})

View File

@ -1,4 +1,4 @@
list(APPEND HEADERS Box.h) list(APPEND HEADERS Box.h)
list(APPEND SOURCES Box.cpp main.cpp) list(APPEND SOURCES Box.cpp main.cpp)
qsk_example(boxes) qsk_add_example(boxes)

View File

@ -1,4 +1,4 @@
list(APPEND RESOURCES buttons.qrc) list(APPEND RESOURCES buttons.qrc)
list(APPEND SOURCES main.cpp) list(APPEND SOURCES main.cpp)
qsk_example(buttons) qsk_add_example(buttons)

View File

@ -1,3 +1,3 @@
list(APPEND SOURCES main.cpp) list(APPEND SOURCES main.cpp)
qsk_example(desktop) qsk_add_example(desktop)

View File

@ -2,5 +2,5 @@ list(APPEND RESOURCES frames.qrc)
list(APPEND HEADERS Frame.h) list(APPEND HEADERS Frame.h)
list(APPEND SOURCES Frame.cpp main.cpp) list(APPEND SOURCES Frame.cpp main.cpp)
qsk_example(frames) qsk_add_example(frames)

View File

@ -19,4 +19,4 @@ list(APPEND SOURCES
Page.cpp Page.cpp
main.cpp) main.cpp)
qsk_example(gallery) qsk_add_example(gallery)

View File

@ -1,4 +1,4 @@
list(APPEND RESOURCES glabels.qrc) list(APPEND RESOURCES glabels.qrc)
list(APPEND SOURCES main.cpp) list(APPEND SOURCES main.cpp)
qsk_example(glabels) qsk_add_example(glabels)

View File

@ -75,4 +75,4 @@ list(APPEND HEADERS
nodes/DiagramSegmentsNode.h nodes/DiagramSegmentsNode.h
nodes/RadialTickmarksNode.h) nodes/RadialTickmarksNode.h)
qsk_example(iotdashboard) qsk_add_example(iotdashboard)

View File

@ -19,4 +19,4 @@ list(APPEND SOURCES
StackLayoutPage.cpp StackLayoutPage.cpp
main.cpp) main.cpp)
qsk_example(layouts) qsk_add_example(layouts)

View File

@ -1,3 +1,3 @@
list(APPEND SOURCES main.cpp) list(APPEND SOURCES main.cpp)
qsk_example(listbox) qsk_add_example(listbox)

View File

@ -1,3 +1,3 @@
list(APPEND SOURCES main.cpp) list(APPEND SOURCES main.cpp)
qsk_example(messagebox) qsk_add_example(messagebox)

View File

@ -1,4 +1,4 @@
list(APPEND RESSOURCES messagebox.qrc) list(APPEND RESSOURCES messagebox.qrc)
list(APPEND SOURCES main.cpp) list(APPEND SOURCES main.cpp)
qsk_example(messageboxQml) qsk_add_example(messageboxQml)

View File

@ -9,4 +9,4 @@ list(APPEND HEADERS
MyToggleButtonSkinlet.h MyToggleButtonSkinlet.h
MySkin.h) MySkin.h)
qsk_example(mycontrols) qsk_add_example(mycontrols)

View File

@ -8,4 +8,4 @@ list(APPEND SOURCES
list(APPEND RESOURCES list(APPEND RESOURCES
qvgviewer.qrc) qvgviewer.qrc)
qsk_example(qvgviewer) qsk_add_example(qvgviewer)

View File

@ -9,4 +9,4 @@ list(APPEND SOURCES
OtherSlider.cpp OtherSlider.cpp
main.cpp) main.cpp)
qsk_example(tabview) qsk_add_example(tabview)

View File

@ -1,3 +1,3 @@
list(APPEND SOURCES main.cpp) list(APPEND SOURCES main.cpp)
qsk_example(thumbnails) qsk_add_example(thumbnails)

View File

@ -2,7 +2,6 @@ set(TARGET_NAME qskinputcontext)
list(APPEND HEADERS QskInputContextGlobal.h) list(APPEND HEADERS QskInputContextGlobal.h)
list(APPEND SOURCES QskInputContextPlugin.cpp) list(APPEND SOURCES QskInputContextPlugin.cpp)
list(APPEND OTHER_FILES metadata.json)
if(NOT LINUX AND ENABLE_HUNSPELL) if(NOT LINUX AND ENABLE_HUNSPELL)
message(WARNING "Feature 'hunspell' only available for UNIX!") message(WARNING "Feature 'hunspell' only available for UNIX!")
@ -32,7 +31,7 @@ if(ENABLE_HUNSPELL)
${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.cpp) ${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.cpp)
endif() endif()
qsk_plugin(qskinputcontext platforminputcontexts) qsk_add_plugin(qskinputcontext platforminputcontexts QskInputContextPlugin)
if(ENABLE_PINYIN) if(ENABLE_PINYIN)
target_link_libraries(qskinputcontext PRIVATE pinyin Fcitx5::Utils) target_link_libraries(qskinputcontext PRIVATE pinyin Fcitx5::Utils)

View File

@ -18,4 +18,4 @@ list(APPEND SOURCES
AnchorBox.cpp AnchorBox.cpp
main.cpp) main.cpp)
qsk_example(anchors) qsk_add_example(anchors)

View File

@ -1,4 +1,4 @@
list(APPEND HEADERS Window.h) list(APPEND HEADERS Window.h)
list(APPEND SOURCES Window.cpp main.cpp) list(APPEND SOURCES Window.cpp main.cpp)
qsk_example(dialogbuttons) qsk_add_example(dialogbuttons)

View File

@ -13,4 +13,4 @@ list(APPEND SOURCES
Dashboard.cpp Dashboard.cpp
main.cpp) main.cpp)
qsk_example(dials) qsk_add_example(dials)

View File

@ -8,7 +8,7 @@ if(TARGET quickshapes_private)
endif() endif()
qsk_example(gradients) qsk_add_example(gradients)
if(TARGET quickshapes_private) if(TARGET quickshapes_private)
target_compile_definitions(gradients PRIVATE SHAPE_GRADIENT) target_compile_definitions(gradients PRIVATE SHAPE_GRADIENT)

View File

@ -15,6 +15,6 @@ list(APPEND SOURCES
TestBox.cpp TestBox.cpp
main.cpp) main.cpp)
qsk_example(grids) qsk_add_example(grids)
target_link_libraries(grids PRIVATE Qt::QuickWidgets) target_link_libraries(grids PRIVATE Qt::QuickWidgets)

View File

@ -2,4 +2,4 @@ list(APPEND RESOURCES images.qrc)
list(APPEND HEADERS Image.h) list(APPEND HEADERS Image.h)
list(APPEND SOURCES Image.cpp main.cpp) list(APPEND SOURCES Image.cpp main.cpp)
qsk_example(images) qsk_add_example(images)

View File

@ -1,3 +1,3 @@
list(APPEND SOURCES main.cpp) list(APPEND SOURCES main.cpp)
qsk_example(inputpanel) qsk_add_example(inputpanel)

View File

@ -1,6 +1,6 @@
list(APPEND HEADERS Callback.h Invoker.h) list(APPEND HEADERS Callback.h Invoker.h)
list(APPEND SOURCES Callback.cpp Invoker.cpp main.cpp) list(APPEND SOURCES Callback.cpp Invoker.cpp main.cpp)
qsk_example(invoker) qsk_add_example(invoker)
set_target_properties(invoker PROPERTIES AUTOMOC_MOC_OPTIONS --no-warnings) set_target_properties(invoker PROPERTIES AUTOMOC_MOC_OPTIONS --no-warnings)

View File

@ -1,4 +1,4 @@
list(APPEND HEADERS ShadowedBox.h) list(APPEND HEADERS ShadowedBox.h)
list(APPEND SOURCES ShadowedBox.cpp main.cpp) list(APPEND SOURCES ShadowedBox.cpp main.cpp)
qsk_example(shadows) qsk_add_example(shadows)

View File

@ -15,7 +15,7 @@ if( BUILD_QML_EXPORT )
list(APPEND RESOURCES shapes.qrc) list(APPEND RESOURCES shapes.qrc)
endif() endif()
qsk_example(shapes) qsk_add_example(shapes)
if( BUILD_QML_EXPORT ) if( BUILD_QML_EXPORT )
target_compile_definitions(shapes PRIVATE NO_QML) target_compile_definitions(shapes PRIVATE NO_QML)

View File

@ -1,6 +1,6 @@
list(APPEND SOURCES main.cpp) list(APPEND SOURCES main.cpp)
qsk_example(webview) qsk_add_example(webview)
if (QT_VERSION_MAJOR VERSION_GREATER "5") if (QT_VERSION_MAJOR VERSION_GREATER "5")
target_link_libraries(webview PRIVATE Qt::WebEngineQuick Qt::WebEngineQuickPrivate) target_link_libraries(webview PRIVATE Qt::WebEngineQuick Qt::WebEngineQuickPrivate)

View File

@ -9,9 +9,7 @@ list(APPEND SOURCES
QskMaterial3Skin.cpp QskMaterial3Skin.cpp
QskMaterial3SkinFactory.cpp) QskMaterial3SkinFactory.cpp)
list(APPEND RESSOURCES list(APPEND RESSOURCES icons.qrc )
icons.qrc )
list(APPEND OTHER_FILES metadata.json) qsk_add_plugin(material3skin skins QskMaterial3SkinFactory)
target_compile_definitions(material3skin PRIVATE QSK_MATERIAL3_MAKEDLL)
qsk_plugin(material3skin skins)

View File

@ -9,7 +9,5 @@ list(APPEND SOURCES
QskSquiekSkin.cpp QskSquiekSkin.cpp
QskSquiekSkinFactory.cpp) QskSquiekSkinFactory.cpp)
list(APPEND OTHER_FILES metadata.json) qsk_add_plugin(squiekskin skins QskSquiekSkinFactory)
qsk_plugin(squiekskin skins)
target_compile_definitions(squiekskin PRIVATE QSK_SQUIEK_MAKEDLL) target_compile_definitions(squiekskin PRIVATE QSK_SQUIEK_MAKEDLL)

View File

@ -43,32 +43,27 @@ if(HACK_FONT_CONFIG)
FONTCONFIG_FILE=${QSK_FONTCONF_FILE}) FONTCONFIG_FILE=${QSK_FONTCONF_FILE})
endif() endif()
target_link_libraries(${TARGET_NAME} target_link_libraries(${TARGET_NAME} PUBLIC qskinny)
PUBLIC
qskinny)
if (BUILD_QSKDLL) if (BUILD_QSKDLL)
target_compile_definitions(${TARGET_NAME} target_compile_definitions(${TARGET_NAME} PRIVATE SKINNY_MAKEDLL)
PRIVATE
SKINNY_MAKEDLL)
endif() endif()
target_compile_definitions(${TARGET_NAME} target_compile_definitions(${TARGET_NAME}
PRIVATE PRIVATE PLUGIN_PATH=${CMAKE_BINARY_DIR}/plugins)
PLUGIN_PATH=${CMAKE_INSTALL_PREFIX}/skins)
target_include_directories(${TARGET_NAME} target_include_directories(${TARGET_NAME} PUBLIC ${CMAKE_CURRENT_LIST_DIR})
PUBLIC
${CMAKE_CURRENT_LIST_DIR}) if(ENABLE_ENSURE_SKINS)
#set( ENABLE_ENSURE_SKINS OFF )
endif()
if(ENABLE_ENSURE_SKINS) if(ENABLE_ENSURE_SKINS)
target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/skins) target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/skins)
target_compile_definitions(${TARGET_NAME} PRIVATE ENSURE_SKINS) target_compile_definitions(${TARGET_NAME} PRIVATE ENSURE_SKINS)
target_link_libraries(${TARGET_NAME} target_link_libraries(${TARGET_NAME}
PRIVATE PRIVATE squiekskin material3skin)
squiekskin
material3skin)
endif() endif()
install(TARGETS ${TARGET_NAME} DESTINATION ${QSK_INSTALL_LIBS}) install(TARGETS ${TARGET_NAME} DESTINATION ${QSK_INSTALL_LIBS})