2022-10-27 17:01:10 +00:00
|
|
|
if(TARGET ${Qt}::Svg)
|
2022-09-29 19:26:29 +00:00
|
|
|
## @param SVG_FILENAME absolute filename to the svg
|
|
|
|
## @param QVG_FILENAME absolute filename to the qvg
|
2022-11-01 15:51:26 +00:00
|
|
|
function(qsk_svg2qvg SVG_FILENAME QVG_FILENAME)
|
2022-09-29 19:34:04 +00:00
|
|
|
get_filename_component(QVG_FILENAME ${QVG_FILENAME} ABSOLUTE)
|
2022-09-29 19:26:29 +00:00
|
|
|
get_filename_component(SVG_FILENAME ${SVG_FILENAME} ABSOLUTE)
|
|
|
|
add_custom_command(
|
|
|
|
COMMAND svg2qvg ${SVG_FILENAME} ${QVG_FILENAME}
|
|
|
|
OUTPUT ${QVG_FILENAME}
|
|
|
|
DEPENDS ${SVG_FILENAME}
|
2022-10-27 17:01:10 +00:00
|
|
|
WORKING_DIRECTORY $<TARGET_FILE_DIR:${Qt}::Svg>
|
2022-09-29 19:26:29 +00:00
|
|
|
COMMENT "Compiling ${SVG_FILENAME} to ${QVG_FILENAME}")
|
|
|
|
endfunction()
|
2023-03-29 15:49:17 +00:00
|
|
|
endif()
|
|
|
|
|
2023-03-30 15:56:14 +00:00
|
|
|
function(qsk_add_executable)
|
|
|
|
|
2023-03-31 09:08:29 +00:00
|
|
|
if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6)
|
2023-03-30 15:56:14 +00:00
|
|
|
qt6_add_executable(${ARGV})
|
2023-03-31 09:08:29 +00:00
|
|
|
else()
|
|
|
|
add_executable(${ARGV})
|
2023-03-30 15:56:14 +00:00
|
|
|
endif()
|
|
|
|
|
|
|
|
endfunction()
|
|
|
|
|
|
|
|
function(qsk_add_library)
|
|
|
|
|
2023-03-31 09:08:29 +00:00
|
|
|
if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6)
|
2023-03-30 15:56:14 +00:00
|
|
|
qt6_add_library(${ARGV})
|
2023-03-31 09:08:29 +00:00
|
|
|
else()
|
|
|
|
add_library(${ARGV})
|
2023-03-30 15:56:14 +00:00
|
|
|
endif()
|
|
|
|
|
|
|
|
set_target_properties(${TARGET_NAME} PROPERTIES
|
|
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" )
|
|
|
|
|
|
|
|
endfunction()
|
|
|
|
|
|
|
|
function(qsk_plugin PLUGIN_NAME TYPE)
|
|
|
|
|
2023-03-31 09:08:29 +00:00
|
|
|
if(QT_VERSION_MAJOR VERSION_GREATER_EQUAL 6)
|
2023-03-30 15:56:14 +00:00
|
|
|
qt6_add_library(${PLUGIN_NAME} SHARED ${HEADERS} ${SOURCES} ${OTHER_FILES})
|
2023-03-31 09:08:29 +00:00
|
|
|
else()
|
|
|
|
add_library(${PLUGIN_NAME} SHARED ${HEADERS} ${SOURCES} ${OTHER_FILES})
|
2023-03-30 15:56:14 +00:00
|
|
|
endif()
|
|
|
|
|
|
|
|
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 ...
|
|
|
|
|
|
|
|
set_target_properties( ${PLUGIN_NAME} PROPERTIES
|
|
|
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/plugins/${TYPE}")
|
|
|
|
|
|
|
|
endfunction()
|
|
|
|
|
2023-03-29 15:49:17 +00:00
|
|
|
function(qsk_example EXAMPLE_NAME)
|
|
|
|
|
|
|
|
set(TARGET_NAME ${EXAMPLE_NAME})
|
|
|
|
|
2023-03-30 15:56:14 +00:00
|
|
|
qsk_add_executable(${TARGET_NAME} WIN32 MACOSX_BUNDLE
|
2023-03-29 15:49:17 +00:00
|
|
|
${SOURCES} ${HEADERS} ${RESOURCES})
|
|
|
|
|
2023-03-30 12:03:59 +00:00
|
|
|
set_target_properties(${TARGET_NAME} PROPERTIES FOLDER examples)
|
|
|
|
|
2023-03-29 15:49:17 +00:00
|
|
|
set_target_properties(${TARGET_NAME} PROPERTIES
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../bin )
|
|
|
|
|
|
|
|
target_link_libraries(${TARGET_NAME} PRIVATE qskinny )
|
|
|
|
|
|
|
|
# not all examples need this one. TODO ...
|
|
|
|
target_link_libraries(${TARGET_NAME} PRIVATE qsktestsupport)
|
|
|
|
|
2023-03-31 16:12:38 +00:00
|
|
|
if( BUILD_QML_EXPORT )
|
|
|
|
# Only needed, when having QML files. Autodetections is possible
|
|
|
|
# by looking into all '*.qrc' files ( rcc --list *.qrc ) for *.qml
|
|
|
|
# entries TODO ...
|
|
|
|
|
|
|
|
target_link_libraries(${TARGET_NAME} PRIVATE qskqmlexport)
|
|
|
|
endif()
|
2023-03-29 15:49:17 +00:00
|
|
|
|
|
|
|
# for examples with subdirectories
|
|
|
|
target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_CURRENT_LIST_DIR})
|
|
|
|
|
|
|
|
endfunction()
|