From 290c7a7e84050c6d7d5d18a543e0245f77295557 Mon Sep 17 00:00:00 2001 From: "FeRD (Frank Dana)" Date: Thu, 9 Jan 2020 01:59:26 -0500 Subject: [PATCH] Fix FindRESVG for Windows --- cmake/Modules/FindRESVG.cmake | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/cmake/Modules/FindRESVG.cmake b/cmake/Modules/FindRESVG.cmake index c70b2e885..f49ad1f2a 100644 --- a/cmake/Modules/FindRESVG.cmake +++ b/cmake/Modules/FindRESVG.cmake @@ -94,18 +94,28 @@ find_package_handle_standard_args(RESVG # Export target if(RESVG_FOUND AND NOT TARGET RESVG::resvg) message(STATUS "Creating IMPORTED target RESVG::resvg") - add_library(RESVG::resvg SHARED IMPORTED) + if (WIN32) + # Windows mis-links SHARED library targets + add_library(RESVG::resvg UNKNOWN IMPORTED) + message(STATUS " UNKNOWN IMPORTED target for Win32") + else() + # Linux needs SHARED to link because libresvg has no SONAME + add_library(RESVG::resvg SHARED IMPORTED) + set_property(TARGET RESVG::resvg APPEND PROPERTY + IMPORTED_NO_SONAME TRUE) + message(STATUS " SHARED IMPORTED target with IMPORTED_NO_SONAME") + endif() + + message(STATUS " INCLUDE_DIRECTORIES: ${RESVG_INCLUDE_DIRS}") + message(STATUS " COMPILE_DEFINITIONS: ${RESVG_DEFINITIONS}") + message(STATUS " IMPORTED_LOCATION: ${RESVG_LIBRARIES}") - set_target_properties(RESVG::resvg PROPERTIES + set_property(TARGET RESVG::resvg APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${RESVG_INCLUDE_DIRS}") set_property(TARGET RESVG::resvg APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS "${RESVG_DEFINITIONS}") - # libresvg.so doesn't have a SONAME - set_property(TARGET RESVG::resvg APPEND PROPERTY - IMPORTED_NO_SONAME TRUE) - set_property(TARGET RESVG::resvg APPEND PROPERTY IMPORTED_LOCATION "${RESVG_LIBRARIES}") endif()