45 lines
1.8 KiB
CMake
45 lines
1.8 KiB
CMake
############################################################################
|
|
# QSkinny - Copyright (C) The authors
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
############################################################################
|
|
|
|
## @param SVG_FILENAME absolute filename to the svg
|
|
## @param QVG_FILENAME absolute filename to the qvg
|
|
function(qsk_svg2qvg SVG_FILENAME QVG_FILENAME)
|
|
get_filename_component(QVG_FILENAME ${QVG_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()
|
|
|
|
# find svg2qvg target location
|
|
get_target_property(Svg2QvgLocation Qsk::Svg2Qvg LOCATION)
|
|
get_filename_component(Svg2QvgDirectory ${Svg2QvgLocation} DIRECTORY)
|
|
|
|
# find svg2qvg target location
|
|
get_target_property(QtSvgTargetLocation ${QtSvgTarget} LOCATION)
|
|
get_filename_component(QtSvgTargetDirectory ${QtSvgTargetLocation} DIRECTORY)
|
|
|
|
# construct a platform specific command
|
|
set(cmd "${Svg2QvgBinary} ${SVG_FILENAME} ${QVG_FILENAME}")
|
|
if (CMAKE_SYSTEM_NAME MATCHES "Windows")
|
|
set(cmd "set PATH=\%PATH\%;${QtSvgTargetDirectory} && ${cmd}")
|
|
elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|
set(cmd "DYLD_LIBRARY_PATH=\$DYLD_LIBRARY_PATH:${QtSvgTargetDirectory} ${cmd}")
|
|
elseif (CMAKE_SYSTEM_NAME MATCHES "Linux")
|
|
set(cmd "LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${QtSvgTargetDirectory} ${cmd}")
|
|
else()
|
|
message(FATAL "Unsupported operating system")
|
|
endif()
|
|
|
|
add_custom_command(
|
|
COMMAND ${cmd}
|
|
OUTPUT ${QVG_FILENAME}
|
|
DEPENDS ${SVG_FILENAME}
|
|
COMMENT "Compiling ${SVG_FILENAME} to ${QVG_FILENAME}")
|
|
endfunction()
|
|
|