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"
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_QML_EXPORT "Exporting QSkinny to QML" ON)

View File

@ -36,27 +36,43 @@ function(qsk_add_library)
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)
qt6_add_library(${PLUGIN_NAME} SHARED ${HEADERS} ${SOURCES} ${OTHER_FILES})
qt6_add_library(${PLUGIN_NAME} SHARED )
else()
add_library(${PLUGIN_NAME} SHARED ${HEADERS} ${SOURCES} ${OTHER_FILES})
add_library(${PLUGIN_NAME} SHARED )
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)
set_target_properties(${PLUGIN_NAME} PROPERTIES FOLDER ${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
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/plugins/${TYPE}")
endfunction()
function(qsk_example EXAMPLE_NAME)
function(qsk_add_example EXAMPLE_NAME)
set(TARGET_NAME ${EXAMPLE_NAME})

View File

@ -1,4 +1,4 @@
list(APPEND HEADERS Box.h)
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 SOURCES main.cpp)
qsk_example(buttons)
qsk_add_example(buttons)

View File

@ -1,3 +1,3 @@
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 SOURCES Frame.cpp main.cpp)
qsk_example(frames)
qsk_add_example(frames)

View File

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

View File

@ -1,4 +1,4 @@
list(APPEND RESOURCES glabels.qrc)
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/RadialTickmarksNode.h)
qsk_example(iotdashboard)
qsk_add_example(iotdashboard)

View File

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

View File

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

View File

@ -1,3 +1,3 @@
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 SOURCES main.cpp)
qsk_example(messageboxQml)
qsk_add_example(messageboxQml)

View File

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

View File

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

View File

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

View File

@ -1,3 +1,3 @@
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 SOURCES QskInputContextPlugin.cpp)
list(APPEND OTHER_FILES metadata.json)
if(NOT LINUX AND ENABLE_HUNSPELL)
message(WARNING "Feature 'hunspell' only available for UNIX!")
@ -32,7 +31,7 @@ if(ENABLE_HUNSPELL)
${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.cpp)
endif()
qsk_plugin(qskinputcontext platforminputcontexts)
qsk_add_plugin(qskinputcontext platforminputcontexts QskInputContextPlugin)
if(ENABLE_PINYIN)
target_link_libraries(qskinputcontext PRIVATE pinyin Fcitx5::Utils)

View File

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

View File

@ -1,4 +1,4 @@
list(APPEND HEADERS Window.h)
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
main.cpp)
qsk_example(dials)
qsk_add_example(dials)

View File

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

View File

@ -15,6 +15,6 @@ list(APPEND SOURCES
TestBox.cpp
main.cpp)
qsk_example(grids)
qsk_add_example(grids)
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 SOURCES Image.cpp main.cpp)
qsk_example(images)
qsk_add_example(images)

View File

@ -1,3 +1,3 @@
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 SOURCES Callback.cpp Invoker.cpp main.cpp)
qsk_example(invoker)
qsk_add_example(invoker)
set_target_properties(invoker PROPERTIES AUTOMOC_MOC_OPTIONS --no-warnings)

View File

@ -1,4 +1,4 @@
list(APPEND HEADERS ShadowedBox.h)
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)
endif()
qsk_example(shapes)
qsk_add_example(shapes)
if( BUILD_QML_EXPORT )
target_compile_definitions(shapes PRIVATE NO_QML)

View File

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

View File

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

View File

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

View File

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