qskinny/tools/svg2qvg/CMakeLists.txt

73 lines
2.5 KiB
CMake
Raw Normal View History

2023-04-05 17:47:15 +02:00
############################################################################
2024-01-17 14:31:45 +01:00
# QSkinny - Copyright (C) The authors
2023-04-06 09:23:37 +02:00
# SPDX-License-Identifier: BSD-3-Clause
2023-04-05 17:47:15 +02:00
############################################################################
set(target svg2qvg)
qsk_add_executable(${target} main.cpp)
if(BUILD_SVG2QVG_STANDALONE)
# NOTE: when building standalone some moc files are transitively required.
# These files are being created by the qskinny build, hence we add an explicit dependency.
# E.g. main.cpp -> #include <QskGraphic.cpp> -> #include "moc_QskGraphic.cpp"
add_dependencies(${target} qskinny)
# TODO hack for standalone qvg2svg
get_target_property(qskinny_AUTOGEN_DIR qskinny AUTOGEN_BUILD_DIR)
if (${qskinny_AUTOGEN_DIR} STREQUAL "")
message(FATAL_ERROR "Directory '${qskinny_AUTOGEN_DIR}' doesn't exist")
endif()
# TODO fix multi configuration generators
if(CMAKE_GENERATOR MATCHES "Visual Studio.*")
add_definitions("/I${qskinny_AUTOGEN_DIR}/include_\$(Configuration)")
2023-12-21 16:32:49 +01:00
elseif(CMAKE_GENERATOR MATCHES "Ninja Multi.*")
target_include_directories(${target}
PRIVATE
${qskinny_AUTOGEN_DIR}/include_$<CONFIG>)
2023-04-05 17:47:15 +02:00
else()
target_include_directories(${target} PRIVATE ${qskinny_AUTOGEN_DIR}/include)
endif()
target_include_directories(${target}
PRIVATE
2023-12-04 18:52:41 +01:00
${QSK_SOURCE_DIR}/src/common
${QSK_SOURCE_DIR}/src/graphic)
2023-04-05 17:47:15 +02:00
target_compile_definitions(${target} PRIVATE QSK_STANDALONE)
target_link_libraries(${target} PRIVATE Qt::Gui Qt::GuiPrivate)
else()
target_link_libraries(${target} PRIVATE qskinny)
endif()
target_link_libraries(${target} PRIVATE Qt::Svg)
set_target_properties(${target} PROPERTIES FOLDER tools)
install(TARGETS ${target})
2024-01-19 16:03:23 +01:00
# packaging
set(PACKAGE_TARGET_FILENAME QSkinnyToolsTargets.cmake)
set_target_properties(${target} PROPERTIES EXPORT_NAME Svg2Qvg)
2024-01-22 16:00:44 +01:00
set_target_properties(${target} PROPERTIES INSTALL_RPATH_USE_LINK_PATH TRUE)
2024-01-19 16:03:23 +01:00
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()