Fix linking of OpenVDB in debug mode on multi conf generators.
This commit is contained in:
parent
39fbb31db2
commit
17de6ff51a
@ -215,20 +215,44 @@ if(UNIX AND OPENVDB_USE_STATIC_LIBS)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(OpenVDB_LIB_COMPONENTS "")
|
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})
|
foreach(COMPONENT ${OpenVDB_FIND_COMPONENTS})
|
||||||
set(LIB_NAME ${COMPONENT})
|
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}
|
PATHS ${_OPENVDB_LIBRARYDIR_SEARCH_DIRS}
|
||||||
PATH_SUFFIXES ${OPENVDB_PATH_SUFFIXES}
|
PATH_SUFFIXES ${OPENVDB_PATH_SUFFIXES}
|
||||||
)
|
)
|
||||||
list(APPEND OpenVDB_LIB_COMPONENTS ${OpenVDB_${COMPONENT}_LIBRARY})
|
|
||||||
|
|
||||||
if(OpenVDB_${COMPONENT}_LIBRARY)
|
find_library(OpenVDB_${COMPONENT}_LIBRARY_DEBUG ${LIB_NAME}${OpenVDB_DEBUG_SUFFIX} lib${LIB_NAME}${OpenVDB_DEBUG_SUFFIX}
|
||||||
set(OpenVDB_${COMPONENT}_FOUND TRUE)
|
PATHS ${_OPENVDB_LIBRARYDIR_SEARCH_DIRS}
|
||||||
else()
|
PATH_SUFFIXES ${OPENVDB_PATH_SUFFIXES}
|
||||||
set(OpenVDB_${COMPONENT}_FOUND FALSE)
|
)
|
||||||
endif()
|
|
||||||
|
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()
|
endforeach()
|
||||||
|
|
||||||
if(UNIX AND OPENVDB_USE_STATIC_LIBS)
|
if(UNIX AND OPENVDB_USE_STATIC_LIBS)
|
||||||
@ -487,7 +511,6 @@ foreach(COMPONENT ${OpenVDB_FIND_COMPONENTS})
|
|||||||
if(NOT TARGET OpenVDB::${COMPONENT})
|
if(NOT TARGET OpenVDB::${COMPONENT})
|
||||||
add_library(OpenVDB::${COMPONENT} UNKNOWN IMPORTED)
|
add_library(OpenVDB::${COMPONENT} UNKNOWN IMPORTED)
|
||||||
set_target_properties(OpenVDB::${COMPONENT} PROPERTIES
|
set_target_properties(OpenVDB::${COMPONENT} PROPERTIES
|
||||||
IMPORTED_LOCATION "${OpenVDB_${COMPONENT}_LIBRARY}"
|
|
||||||
INTERFACE_COMPILE_OPTIONS "${OpenVDB_DEFINITIONS}"
|
INTERFACE_COMPILE_OPTIONS "${OpenVDB_DEFINITIONS}"
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "${OpenVDB_INCLUDE_DIR}"
|
INTERFACE_INCLUDE_DIRECTORIES "${OpenVDB_INCLUDE_DIR}"
|
||||||
IMPORTED_LINK_DEPENDENT_LIBRARIES "${_OPENVDB_HIDDEN_DEPENDENCIES}" # non visible deps
|
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
|
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)
|
if (OPENVDB_USE_STATIC_LIBS)
|
||||||
set_target_properties(OpenVDB::${COMPONENT} PROPERTIES
|
set_target_properties(OpenVDB::${COMPONENT} PROPERTIES
|
||||||
INTERFACE_COMPILE_DEFINITIONS "OPENVDB_STATICLIB;OPENVDB_OPENEXR_STATICLIB"
|
INTERFACE_COMPILE_DEFINITIONS "OPENVDB_STATICLIB;OPENVDB_OPENEXR_STATICLIB"
|
||||||
|
1
deps/CMakeLists.txt
vendored
1
deps/CMakeLists.txt
vendored
@ -47,6 +47,7 @@ message(STATUS "PrusaSlicer deps debug build: ${DEP_DEBUG}")
|
|||||||
|
|
||||||
find_package(Git REQUIRED)
|
find_package(Git REQUIRED)
|
||||||
|
|
||||||
|
get_property(_is_multi GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||||
|
|
||||||
function(prusaslicer_add_cmake_project projectname)
|
function(prusaslicer_add_cmake_project projectname)
|
||||||
cmake_parse_arguments(P_ARGS "" "INSTALL_DIR;BUILD_COMMAND;INSTALL_COMMAND" "CMAKE_ARGS" ${ARGN})
|
cmake_parse_arguments(P_ARGS "" "INSTALL_DIR;BUILD_COMMAND;INSTALL_COMMAND" "CMAKE_ARGS" ${ARGN})
|
||||||
|
Loading…
Reference in New Issue
Block a user