mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-18 23:07:07 -05:00
Build zstd v1.5.7 and ZArchive from source as static, position-independent libraries that are not part of the default target set. Their symbols stay out of the dynamic export table of the library that links them.
26 lines
1.2 KiB
CMake
26 lines
1.2 KiB
CMake
enable_language(C)
|
|
|
|
set(ZSTD_BUILD_PROGRAMS OFF CACHE BOOL "" FORCE)
|
|
set(ZSTD_BUILD_TESTS OFF CACHE BOOL "" FORCE)
|
|
set(ZSTD_BUILD_CONTRIB OFF CACHE BOOL "" FORCE)
|
|
set(ZSTD_BUILD_SHARED OFF CACHE BOOL "" FORCE)
|
|
set(ZSTD_BUILD_STATIC ON CACHE BOOL "" FORCE)
|
|
set(ZSTD_LEGACY_SUPPORT OFF CACHE BOOL "" FORCE)
|
|
set(ZSTD_MULTITHREAD_SUPPORT OFF CACHE BOOL "" FORCE)
|
|
add_subdirectory(${CMAKE_SOURCE_DIR}/3rdparty/zstd/build/cmake ${CMAKE_BINARY_DIR}/3rdparty/zstd EXCLUDE_FROM_ALL)
|
|
set_target_properties(libzstd_static PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
|
|
|
set(ZARCHIVE_SOURCE_DIR ${CMAKE_SOURCE_DIR}/3rdparty/ZArchive)
|
|
add_library(zarchive STATIC EXCLUDE_FROM_ALL
|
|
${ZARCHIVE_SOURCE_DIR}/src/zarchivereader.cpp
|
|
${ZARCHIVE_SOURCE_DIR}/src/zarchivewriter.cpp
|
|
${ZARCHIVE_SOURCE_DIR}/src/sha_256.c
|
|
)
|
|
target_include_directories(zarchive SYSTEM PUBLIC ${ZARCHIVE_SOURCE_DIR}/include)
|
|
target_compile_features(zarchive PUBLIC cxx_std_20)
|
|
target_link_libraries(zarchive PRIVATE libzstd_static)
|
|
set_target_properties(zarchive PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
target_link_options(zarchive INTERFACE LINKER:--exclude-libs,libzarchive.a:libzstd.a)
|
|
endif()
|