resolve qt svg location

This commit is contained in:
Vogel, Rick 2024-01-19 16:03:23 +01:00 committed by uwerat
parent f1f935e359
commit 5038f086a9
4 changed files with 44 additions and 2 deletions

View File

@ -1,3 +1,4 @@
include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTargets.cmake") include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTargets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTools.cmake" OPTIONAL) include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyTools.cmake" OPTIONAL)
include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyToolsTargets.cmake" OPTIONAL)
include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyQmlExportTargets.cmake" OPTIONAL) include("${CMAKE_CURRENT_LIST_DIR}/QSkinnyQmlExportTargets.cmake" OPTIONAL)

View File

@ -8,11 +8,18 @@
function(qsk_svg2qvg SVG_FILENAME QVG_FILENAME) function(qsk_svg2qvg SVG_FILENAME QVG_FILENAME)
get_filename_component(QVG_FILENAME ${QVG_FILENAME} ABSOLUTE) get_filename_component(QVG_FILENAME ${QVG_FILENAME} ABSOLUTE)
get_filename_component(SVG_FILENAME ${SVG_FILENAME} ABSOLUTE) get_filename_component(SVG_FILENAME ${SVG_FILENAME} ABSOLUTE)
if(TARGET Qt6::Svg)
set(QtSvgTarget Qt6::Svg)
elseif(TARGET Qt5::Svg)
set(QtSvgTarget Qt5::Svg)
endif()
add_custom_command( add_custom_command(
COMMAND svg2qvg ${SVG_FILENAME} ${QVG_FILENAME} COMMAND Qsk::Svg2Qvg ${SVG_FILENAME} ${QVG_FILENAME}
OUTPUT ${QVG_FILENAME} OUTPUT ${QVG_FILENAME}
DEPENDS ${SVG_FILENAME} DEPENDS ${SVG_FILENAME}
WORKING_DIRECTORY $<TARGET_FILE_DIR:Qt${QT_VERSION_MAJOR}::Svg> WORKING_DIRECTORY $<TARGET_FILE_DIR:${QtSvgTarget}>
COMMENT "Compiling ${SVG_FILENAME} to ${QVG_FILENAME}") COMMENT "Compiling ${SVG_FILENAME} to ${QVG_FILENAME}")
endfunction() endfunction()

View File

@ -45,3 +45,13 @@ add_subdirectory(../iotdashboard ${CMAKE_CURRENT_BINARY_DIR}/../iotdashboard)
get_target_property(iotdashboard_COMPILE_DEFINITIONS iotdashboard COMPILE_DEFINITIONS) get_target_property(iotdashboard_COMPILE_DEFINITIONS iotdashboard COMPILE_DEFINITIONS)
list(FILTER iotdashboard_COMPILE_DEFINITIONS EXCLUDE REGEX [[^USE_SHORTCUTS=1$]]) list(FILTER iotdashboard_COMPILE_DEFINITIONS EXCLUDE REGEX [[^USE_SHORTCUTS=1$]])
set_property(TARGET iotdashboard PROPERTY COMPILE_DEFINITIONS ${iotdashboard_COMPILE_DEFINITIONS}) set_property(TARGET iotdashboard PROPERTY COMPILE_DEFINITIONS ${iotdashboard_COMPILE_DEFINITIONS})
# generate qvg consuming dummy target
qsk_svg2qvg(
../iotdashboard/images/ac.svg
${CMAKE_CURRENT_BINARY_DIR}/ac.qvg)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/main.cpp "int main(){}")
add_executable(test_svg_qgv
${CMAKE_CURRENT_BINARY_DIR}/main.cpp
${CMAKE_CURRENT_BINARY_DIR}/ac.qvg)

View File

@ -46,3 +46,27 @@ target_link_libraries(${target} PRIVATE Qt::Svg)
set_target_properties(${target} PROPERTIES FOLDER tools) set_target_properties(${target} PROPERTIES FOLDER tools)
install(TARGETS ${target}) install(TARGETS ${target})
# packaging
set(PACKAGE_TARGET_FILENAME QSkinnyToolsTargets.cmake)
set_target_properties(${target} PROPERTIES EXPORT_NAME Svg2Qvg)
install(TARGETS ${target} EXPORT ${PACKAGE_TARGET_FILENAME})
export(EXPORT ${PACKAGE_TARGET_FILENAME}
NAMESPACE ${PACKAGE_NAMESPACE})
install(EXPORT ${PACKAGE_TARGET_FILENAME}
FILE
${PACKAGE_TARGET_FILENAME}
NAMESPACE
${PACKAGE_NAMESPACE}
DESTINATION
${PACKAGE_LOCATION})
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
install(FILES $<TARGET_PDB_FILE:${target}>
DESTINATION
${CMAKE_INSTALL_BINDIR} OPTIONAL)
endif()