Merge branch 'master' into features/effectnode

This commit is contained in:
Uwe Rathmann 2023-12-21 18:38:57 +01:00
commit ec5bb05f4a
10 changed files with 134 additions and 27 deletions

View File

@ -104,7 +104,7 @@ jobs:
cc: "gcc",
cxx: "g++",
archiver: "7z a",
generators: "Ninja",
generators: "Ninja Multi-Config",
env: { DISPLAY: ":1" },
cmake:
{
@ -431,22 +431,22 @@ jobs:
killall iotdashboard
killall Xvfb
#- name: Configure ( CMake Integration Test )
# shell: bash
# run: |
# mkdir qskinny_build_test
# cmake \
# -S qskinny_source/examples/iotdashboard_smoketest \
# -B qskinny_build_test \
# -G "${{ matrix.config.generators }}" \
# -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \
# -DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \
# -D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \
# -DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny
#
#- name: Build ( CMake Integration Test )
# shell: bash
# run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }}
- name: Configure ( CMake Integration Test )
shell: bash
run: |
mkdir qskinny_build_test
cmake \
-S qskinny_source/examples/iotdashboard_smoketest \
-B qskinny_build_test \
-G "${{ matrix.config.generators }}" \
-DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} \
-DCMAKE_PREFIX_PATH:PATH="${{ matrix.config.cmake.qtprefixpath }}" \
-D${{ matrix.config.cmake.qtdirkey }}:PATH="${{ matrix.config.cmake.qtdirvalue }}" \
-DQSkinny_DIR:PATH=$GITHUB_WORKSPACE/qskinny_install/lib/cmake/QSkinny
- name: Build ( CMake Integration Test )
shell: bash
run: cmake --build qskinny_build_test --config ${{ matrix.config.build_type }}
# - name: Pack
# shell: bash

View File

@ -62,8 +62,8 @@ macro(qsk_setup_build)
endmacro()
macro(qsk_setup_install)
# we have to provide and install a QSkinnyConfig.cmake
# TODO ...
set(QSK_INSTALL_HEADERS include)
set(QSK_INSTALL_LIBS lib)
endmacro()
############################################################################
@ -75,6 +75,8 @@ project(QSkinny
HOMEPAGE_URL "https://github.com/uwerat/qskinny"
VERSION 0.8.0)
set(QSK_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR})
qsk_setup_options()
include(GNUInstallDirs)
@ -116,3 +118,48 @@ endif()
if(BUILD_PLAYGROUND)
add_subdirectory(playground)
endif()
# packaging
set(PACKAGE_NAME ${PROJECT_NAME})
set(PACKAGE_VERSION ${CMAKE_PROJECT_VERSION})
set(PACKAGE_NAMESPACE Qsk)
set(PACKAGE_LOCATION ${QSK_INSTALL_LIBS}/cmake/${PROJECT_NAME})
install(TARGETS qskinny EXPORT ${PACKAGE_NAME}Targets
LIBRARY DESTINATION ${QSK_INSTALL_LIBS}
ARCHIVE DESTINATION ${QSK_INSTALL_LIBS}
RUNTIME DESTINATION ${QSK_INSTALL_LIBS}
INCLUDES DESTINATION ${QSK_INSTALL_HEADERS}
PUBLIC_HEADER DESTINATION ${QSK_INSTALL_HEADERS})
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake
VERSION ${PACKAGE_VERSION}
COMPATIBILITY AnyNewerVersion)
export(EXPORT ${PACKAGE_NAME}Targets
FILE ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Targets.cmake
NAMESPACE ${PACKAGE_NAMESPACE}::)
configure_file(cmake/${PACKAGE_NAME}Config.cmake
${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}Config.cmake
COPYONLY)
install(EXPORT ${PACKAGE_NAME}Targets
FILE
${PACKAGE_NAME}Targets.cmake
NAMESPACE
${PACKAGE_NAMESPACE}::
DESTINATION
${PACKAGE_LOCATION})
install(
FILES
cmake/${PACKAGE_NAME}Config.cmake
cmake/QskTools.cmake
${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}ConfigVersion.cmake
DESTINATION
${PACKAGE_LOCATION}
COMPONENT
Devel)

View File

@ -0,0 +1,2 @@
include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/QskTools.cmake")

View File

@ -118,6 +118,7 @@ macro(qsk_initialize_build_flags)
add_compile_options( -Wall -Wextra )
else()
# add_compile_options(/W4 /WX)
add_compile_options(/MP)
endif()
endmacro()

View File

@ -0,0 +1,2 @@
build
iotdashboard

View File

@ -0,0 +1,47 @@
cmake_minimum_required(VERSION 3.18)
project(iotdashboard_smoketest)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC OFF)
set(CMAKE_GLOBAL_AUTOGEN_TARGET OFF)
find_package(QSkinny REQUIRED)
# TODO we don't delivery the qsk macros
function(qsk_add_executable target)
if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6)
qt6_add_executable(${ARGV})
else()
add_executable(${ARGV})
endif()
endfunction()
# TODO we don't delivery the qsk macros
function(qsk_add_example target)
cmake_parse_arguments(PARSE_ARGV 1 arg "MANUAL_FINALIZATION" "" "")
add_executable(${target} WIN32 MACOSX_BUNDLE ${arg_UNPARSED_ARGUMENTS} )
target_link_libraries(${target} PRIVATE Qsk::qskinny )
target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_LIST_DIR})
endfunction()
find_package(Qt6 COMPONENTS Core QUIET)
if (NOT Qt6_FOUND)
find_package(Qt5 5.15 REQUIRED COMPONENTS Core Gui OpenGL Quick Svg Widgets)
find_package(Qt5 5.15 OPTIONAL_COMPONENTS QuickWidgets WebEngine WebEngineCore)
function(qt_add_executable)
add_executable(${ARGV})
endfunction(qt_add_executable)
else()
find_package(Qt6 REQUIRED COMPONENTS Core Gui OpenGL Quick QuickWidgets Svg Widgets)
find_package(Qt6 OPTIONAL_COMPONENTS QuickWidgets WebEngineCore WebEngineQuick)
endif()
add_subdirectory(../iotdashboard ${CMAKE_CURRENT_BINARY_DIR}/../iotdashboard)
# TODO we don't delivery the support library
get_target_property(iotdashboard_COMPILE_DEFINITIONS iotdashboard COMPILE_DEFINITIONS)
list(FILTER iotdashboard_COMPILE_DEFINITIONS EXCLUDE REGEX [[^USE_SHORTCUTS=1$]])
set_property(TARGET iotdashboard PROPERTY COMPILE_DEFINITIONS ${iotdashboard_COMPILE_DEFINITIONS})

View File

@ -19,8 +19,8 @@ if(ENABLE_PINYIN)
qsk_setup_Pinyin()
list(APPEND SOURCES
${CMAKE_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.h
${CMAKE_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.cpp
${QSK_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.h
${QSK_SOURCE_DIR}/src/inputpanel/QskPinyinTextPredictor.cpp
)
endif()
@ -28,8 +28,8 @@ if(ENABLE_HUNSPELL)
qsk_setup_Hunspell()
list(APPEND SOURCES
${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.h
${CMAKE_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.cpp
${QSK_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.h
${QSK_SOURCE_DIR}/src/inputpanel/QskHunspellTextPredictor.cpp
)
endif()

View File

@ -480,6 +480,10 @@ target_include_directories(${target} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/layouts>
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/nodes>)
target_include_directories(${target}
INTERFACE
$<INSTALL_INTERFACE:${QSK_INSTALL_HEADERS}>)
target_link_libraries(${target}
PUBLIC Qt::Core Qt::CorePrivate Qt::Quick Qt::QuickPrivate)
@ -496,7 +500,7 @@ if(ENABLE_PINYIN)
target_link_libraries(${target} PRIVATE pinyin Fcitx5::Utils)
target_include_directories(${target}
PUBLIC $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/inputcontext>)
PUBLIC $<BUILD_INTERFACE:${QSK_SOURCE_DIR}/inputcontext>)
endif()
set_target_properties(${target} PROPERTIES FOLDER libs)

View File

@ -31,7 +31,7 @@ target_compile_definitions(${target}
target_include_directories(${target} PUBLIC ${CMAKE_CURRENT_LIST_DIR})
if(ENABLE_ENSURE_SKINS)
target_include_directories(${target} PRIVATE ${CMAKE_SOURCE_DIR}/skins)
target_include_directories(${target} PRIVATE ${QSK_SOURCE_DIR}/skins)
target_compile_definitions(${target} PRIVATE ENSURE_SKINS)
target_link_libraries(${target} PRIVATE squiekskin material3skin fluent2skin)
endif()

View File

@ -22,14 +22,18 @@ if(BUILD_SVG2QVG_STANDALONE)
# TODO fix multi configuration generators
if(CMAKE_GENERATOR MATCHES "Visual Studio.*")
add_definitions("/I${qskinny_AUTOGEN_DIR}/include_\$(Configuration)")
elseif(CMAKE_GENERATOR MATCHES "Ninja Multi.*")
target_include_directories(${target}
PRIVATE
${qskinny_AUTOGEN_DIR}/include_$<CONFIG>)
else()
target_include_directories(${target} PRIVATE ${qskinny_AUTOGEN_DIR}/include)
endif()
target_include_directories(${target}
PRIVATE
${CMAKE_SOURCE_DIR}/src/common
${CMAKE_SOURCE_DIR}/src/graphic)
${QSK_SOURCE_DIR}/src/common
${QSK_SOURCE_DIR}/src/graphic)
target_compile_definitions(${target} PRIVATE QSK_STANDALONE)
target_link_libraries(${target} PRIVATE Qt::Gui Qt::GuiPrivate)