Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authortamasmeszaros <meszaros.q@gmail.com>2019-12-17 18:26:06 +0300
committertamasmeszaros <meszaros.q@gmail.com>2019-12-17 18:26:06 +0300
commit17de6ff51a7a1cab9cb90ec877f57ea44729fe80 (patch)
tree4dd95be66d40a3f0b08c0d563c40fc63168cb9f0 /cmake
parent39fbb31db2d23e6383a1602f515a7feb9191e05e (diff)
Fix linking of OpenVDB in debug mode on multi conf generators.
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/FindOpenVDB.cmake50
1 files changed, 42 insertions, 8 deletions
diff --git a/cmake/modules/FindOpenVDB.cmake b/cmake/modules/FindOpenVDB.cmake
index 3400fa786..e000b05dd 100644
--- a/cmake/modules/FindOpenVDB.cmake
+++ b/cmake/modules/FindOpenVDB.cmake
@@ -215,20 +215,44 @@ if(UNIX AND OPENVDB_USE_STATIC_LIBS)
endif()
set(OpenVDB_LIB_COMPONENTS "")
+set(OpenVDB_DEBUG_SUFFIX "d" CACHE STRING "Suffix for the debug libraries")
+
+get_property(_is_multi GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
foreach(COMPONENT ${OpenVDB_FIND_COMPONENTS})
set(LIB_NAME ${COMPONENT})
- find_library(OpenVDB_${COMPONENT}_LIBRARY ${LIB_NAME} lib${LIB_NAME}
+
+ find_library(OpenVDB_${COMPONENT}_LIBRARY_RELEASE ${LIB_NAME} lib${LIB_NAME}
PATHS ${_OPENVDB_LIBRARYDIR_SEARCH_DIRS}
PATH_SUFFIXES ${OPENVDB_PATH_SUFFIXES}
)
- list(APPEND OpenVDB_LIB_COMPONENTS ${OpenVDB_${COMPONENT}_LIBRARY})
- if(OpenVDB_${COMPONENT}_LIBRARY)
- set(OpenVDB_${COMPONENT}_FOUND TRUE)
- else()
- set(OpenVDB_${COMPONENT}_FOUND FALSE)
- endif()
+ find_library(OpenVDB_${COMPONENT}_LIBRARY_DEBUG ${LIB_NAME}${OpenVDB_DEBUG_SUFFIX} lib${LIB_NAME}${OpenVDB_DEBUG_SUFFIX}
+ PATHS ${_OPENVDB_LIBRARYDIR_SEARCH_DIRS}
+ PATH_SUFFIXES ${OPENVDB_PATH_SUFFIXES}
+ )
+
+ if (_is_multi)
+ list(APPEND OpenVDB_LIB_COMPONENTS ${OpenVDB_${COMPONENT}_LIBRARY_RELEASE} ${OpenVDB_${COMPONENT}_LIBRARY_DEBUG})
+
+ if(OpenVDB_${COMPONENT}_LIBRARY_RELEASE AND ${OpenVDB_${COMPONENT}_LIBRARY_DEBUG})
+ set(OpenVDB_${COMPONENT}_FOUND TRUE)
+ else()
+ set(OpenVDB_${COMPONENT}_FOUND FALSE)
+ endif()
+ else ()
+ string(TOUPPER "${CMAKE_BUILD_TYPE}" _BUILD_TYPE)
+
+ set(OpenVDB_${COMPONENT}_LIBRARY ${OpenVDB_${COMPONENT}_LIBRARY_${_BUILD_TYPE}})
+
+ list(APPEND OpenVDB_LIB_COMPONENTS ${OpenVDB_${COMPONENT}_LIBRARY})
+
+ if(OpenVDB_${COMPONENT}_LIBRARY)
+ set(OpenVDB_${COMPONENT}_FOUND TRUE)
+ else()
+ set(OpenVDB_${COMPONENT}_FOUND FALSE)
+ endif()
+ endif ()
endforeach()
if(UNIX AND OPENVDB_USE_STATIC_LIBS)
@@ -487,7 +511,6 @@ foreach(COMPONENT ${OpenVDB_FIND_COMPONENTS})
if(NOT TARGET OpenVDB::${COMPONENT})
add_library(OpenVDB::${COMPONENT} UNKNOWN IMPORTED)
set_target_properties(OpenVDB::${COMPONENT} PROPERTIES
- IMPORTED_LOCATION "${OpenVDB_${COMPONENT}_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${OpenVDB_DEFINITIONS}"
INTERFACE_INCLUDE_DIRECTORIES "${OpenVDB_INCLUDE_DIR}"
IMPORTED_LINK_DEPENDENT_LIBRARIES "${_OPENVDB_HIDDEN_DEPENDENCIES}" # non visible deps
@@ -495,6 +518,17 @@ foreach(COMPONENT ${OpenVDB_FIND_COMPONENTS})
INTERFACE_COMPILE_FEATURES cxx_std_11
)
+ if (_is_multi)
+ set_target_properties(OpenVDB::${COMPONENT} PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${OpenVDB_${COMPONENT}_LIBRARY_RELEASE}"
+ IMPORTED_LOCATION_DEBUG "${OpenVDB_${COMPONENT}_LIBRARY_DEBUG}"
+ )
+ else ()
+ set_target_properties(OpenVDB::${COMPONENT} PROPERTIES
+ IMPORTED_LOCATION "${OpenVDB_${COMPONENT}_LIBRARY}"
+ )
+ endif ()
+
if (OPENVDB_USE_STATIC_LIBS)
set_target_properties(OpenVDB::${COMPONENT} PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "OPENVDB_STATICLIB;OPENVDB_OPENEXR_STATICLIB"