Unify zstd dependency for basisu (#9493)

This commit is contained in:
Doris Wu
2025-12-09 09:00:38 +08:00
committed by GitHub
parent 2e31dc20e4
commit 37610dc8f3
2 changed files with 15 additions and 8 deletions

View File

@@ -872,7 +872,9 @@ add_subdirectory(${LIBRARIES}/utils)
add_subdirectory(${LIBRARIES}/viewer)
add_subdirectory(${FILAMENT}/shaders)
add_subdirectory(${EXTERNAL}/abseil/tnt)
add_subdirectory(${EXTERNAL}/basisu/tnt)
# Add zstd before basisu to force it to use the external zstd target,
# preventing a duplicate symbol conflict with its bundled version.
add_subdirectory(${EXTERNAL}/zstd/tnt)
add_subdirectory(${EXTERNAL}/civetweb/tnt)
add_subdirectory(${EXTERNAL}/imgui/tnt)
add_subdirectory(${EXTERNAL}/robin-map/tnt)
@@ -886,7 +888,7 @@ add_subdirectory(${EXTERNAL}/jsmn/tnt)
add_subdirectory(${EXTERNAL}/stb/tnt)
add_subdirectory(${EXTERNAL}/getopt)
add_subdirectory(${EXTERNAL}/perfetto/tnt)
add_subdirectory(${EXTERNAL}/zstd/tnt)
add_subdirectory(${EXTERNAL}/basisu/tnt)
# Note that this has to be placed after mikktspace in order for combine_static_libs to work.

View File

@@ -2,8 +2,6 @@ project(basisu)
cmake_minimum_required(VERSION 3.19)
set(ZSTD zstd-basisu)
set(TRANSCODER_SRC
../transcoder/basisu_transcoder.cpp
)
@@ -52,21 +50,28 @@ else()
set (BASIS_CONFIG ${BASIS_CONFIG} BASISD_SUPPORT_DXT5A=0 BASISD_SUPPORT_DXT1=0)
endif()
add_library(${ZSTD} ../zstd/zstd.c)
# If an external zstd target exists, use it.
if(NOT TARGET zstd)
add_library(zstd-basisu ../zstd/zstd.c)
target_include_directories(zstd-basisu PUBLIC ../zstd)
set_target_properties(zstd-basisu PROPERTIES FOLDER ThirdParty)
set(ZSTD_TARGET zstd-basisu)
else()
set(ZSTD_TARGET zstd)
endif()
add_library(basis_encoder ${ENCODER_SRC})
add_library(basis_transcoder ${TRANSCODER_SRC})
target_link_libraries(basis_transcoder PRIVATE ${ZSTD})
target_link_libraries(basis_transcoder PRIVATE ${ZSTD_TARGET})
target_link_libraries(basis_encoder basis_transcoder)
target_include_directories(${ZSTD} PUBLIC ../zstd)
target_include_directories(basis_encoder PUBLIC ../encoder)
target_include_directories(basis_transcoder PUBLIC ../transcoder)
target_compile_definitions(basis_encoder PRIVATE ${BASIS_CONFIG})
target_compile_definitions(basis_transcoder PRIVATE ${BASIS_CONFIG})
set_target_properties(${ZSTD} PROPERTIES FOLDER ThirdParty)
set_target_properties(basis_encoder PROPERTIES FOLDER ThirdParty)
set_target_properties(basis_transcoder PROPERTIES FOLDER ThirdParty)