summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2024-04-08 23:28:37 +0200
committerGitHub <noreply@github.com>2024-04-08 23:28:37 +0200
commitb8aa68a080f98661c19e7c820fb24342492f9377 (patch)
tree6940deff2ea2c2eee41686164e6bee6da04d8ff4
parent8b9ed34eaa3e6ad24254cb7e058fb9150f66b865 (diff)
CMake: Allow linking draco statically if ASSIMP_BUILD_DRACO_STATIC is set. (#5535)
* CMake: Mark draco as a private dependency since assimp does not publicly expose its interface. * CMake: Allow linking draco statically if ASSIMP_BUILD_DRACO_STATIC is set.
-rw-r--r--CMakeLists.txt25
-rw-r--r--code/CMakeLists.txt2
2 files changed, 19 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 31c5e6615..670f29f86 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -621,6 +621,10 @@ ELSE ()
ADD_DEFINITIONS( -DASSIMP_BUILD_NO_C4D_IMPORTER )
ENDIF ()
+if(ASSIMP_BUILD_DRACO_STATIC)
+ set(ASSIMP_BUILD_DRACO ON)
+endif()
+
# Draco requires cmake 3.12
IF (DEFINED CMAKE_VERSION AND "${CMAKE_VERSION}" VERSION_LESS "3.12")
message(NOTICE "draco requires cmake 3.12 or newer, cmake is ${CMAKE_VERSION} . Draco is disabled")
@@ -656,22 +660,29 @@ ELSE()
"-Wno-sign-compare"
"-Wno-unused-local-typedefs"
)
- # Draco 1.4.1 does not explicitly export any symbols under GCC/clang
- list(APPEND DRACO_CXX_FLAGS
- "-fvisibility=default"
- )
+
+ if(NOT ASSIMP_BUILD_DRACO_STATIC)
+ # Draco 1.4.1 does not explicitly export any symbols under GCC/clang
+ list(APPEND DRACO_CXX_FLAGS
+ "-fvisibility=default"
+ )
+ endif()
ENDIF()
# Don't build or install all of Draco by default
ADD_SUBDIRECTORY( "contrib/draco" EXCLUDE_FROM_ALL )
+ if(ASSIMP_BUILD_DRACO_STATIC)
+ set_property(DIRECTORY "contrib/draco" PROPERTY BUILD_SHARED_LIBS OFF)
+ endif()
+
if(MSVC OR WIN32)
set(draco_LIBRARIES "draco")
else()
- if(BUILD_SHARED_LIBS)
- set(draco_LIBRARIES "draco_shared")
- else()
+ if(ASSIMP_BUILD_DRACO_STATIC)
set(draco_LIBRARIES "draco_static")
+ else()
+ set(draco_LIBRARIES "draco_shared")
endif()
endif()
diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt
index 0a7be6247..a521c9fb8 100644
--- a/code/CMakeLists.txt
+++ b/code/CMakeLists.txt
@@ -1286,7 +1286,7 @@ IF(ASSIMP_HUNTER_ENABLED)
endif()
if (ASSIMP_BUILD_DRACO)
- target_link_libraries(assimp PUBLIC ${draco_LIBRARIES})
+ target_link_libraries(assimp PRIVATE ${draco_LIBRARIES})
endif()
ELSE()
TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES} ${OPENDDL_PARSER_LIBRARIES})