mirror of
https://github.com/aaru-dps/Aaru.Compression.Native.git
synced 2025-12-16 19:24:31 +00:00
Link bzip2 directly instead of as a static library.
This commit is contained in:
2
3rdparty/CMakeLists.txt
vendored
2
3rdparty/CMakeLists.txt
vendored
@@ -1,5 +1,3 @@
|
||||
include(bzip2.cmake)
|
||||
|
||||
include(lzip.cmake)
|
||||
|
||||
include(lzfse.cmake)
|
||||
|
||||
47
3rdparty/bzip2.cmake
vendored
47
3rdparty/bzip2.cmake
vendored
@@ -1,22 +1,15 @@
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
project(bzip2
|
||||
VERSION 1.0.7
|
||||
DESCRIPTION "This Bzip2/libbz2 a program and library for lossless block-sorting data compression."
|
||||
LANGUAGES C)
|
||||
|
||||
set(LT_CURRENT 1)
|
||||
set(LT_REVISION 7)
|
||||
set(LT_AGE 0)
|
||||
|
||||
set(PROJECT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/bzip2/")
|
||||
set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/bzip2/")
|
||||
set(PROJECT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/3rdparty/bzip2/")
|
||||
set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/3rdparty/bzip2/")
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/bzip2/cmake")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/bzip2/cmake")
|
||||
include(Version)
|
||||
include(SymLink)
|
||||
|
||||
set(BZ_VERSION ${PROJECT_VERSION})
|
||||
set(BZ_VERSION ${LT_CURRENT}.${LT_AGE}.${LT_REVISION})
|
||||
configure_file (
|
||||
${PROJECT_SOURCE_DIR}/bz_version.h.in
|
||||
${PROJECT_BINARY_DIR}/bz_version.h
|
||||
@@ -25,11 +18,6 @@ include_directories(${PROJECT_BINARY_DIR})
|
||||
|
||||
message(STATUS "BZIP2 VERSION: ${BZ_VERSION}")
|
||||
|
||||
math(EXPR LT_SOVERSION "${LT_CURRENT} - ${LT_AGE}")
|
||||
set(LT_VERSION "${LT_SOVERSION}.${LT_AGE}.${LT_REVISION}")
|
||||
set(PACKAGE_VERSION ${PROJECT_VERSION})
|
||||
HexVersion(PACKAGE_VERSION_NUM ${PROJECT_VERSION_MAJOR} ${PROJECT_VERSION_MINOR} ${PROJECT_VERSION_PATCH})
|
||||
|
||||
# Do not disable assertions based on CMAKE_BUILD_TYPE.
|
||||
foreach(_build_type Release MinSizeRel RelWithDebInfo)
|
||||
foreach(_lang C)
|
||||
@@ -117,26 +105,15 @@ set(BZ2_SOURCES
|
||||
decompress.c
|
||||
bzlib.c)
|
||||
|
||||
list(TRANSFORM BZ2_SOURCES PREPEND "bzip2/")
|
||||
list(TRANSFORM BZ2_SOURCES PREPEND "3rdparty/bzip2/")
|
||||
|
||||
add_definitions(-DBZ_DEBUG=0)
|
||||
|
||||
#if(ENABLE_STATIC_LIB)
|
||||
# The libbz2 static library.
|
||||
add_library(bz2_static STATIC)
|
||||
target_sources(bz2_static
|
||||
PRIVATE ${BZ2_SOURCES}
|
||||
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/bzip2/bzlib_private.h
|
||||
INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/bzip2/bzlib.h)
|
||||
set_target_properties(bz2_static PROPERTIES
|
||||
COMPILE_FLAGS "${WARNCFLAGS}"
|
||||
VERSION ${LT_VERSION}
|
||||
SOVERSION ${LT_SOVERSION}
|
||||
ARCHIVE_OUTPUT_NAME bz2_static)
|
||||
target_compile_definitions(bz2_static PUBLIC BZ2_STATICLIB)
|
||||
# install(TARGETS bz2_static DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
# install(FILES bzlib.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
#endif()
|
||||
target_sources("Aaru.Compression.Native"
|
||||
PRIVATE ${BZ2_SOURCES}
|
||||
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/bzip2/bzlib_private.h
|
||||
INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/bzip2/bzlib.h)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC BZ2_STATICLIB)
|
||||
|
||||
set_property(TARGET bz2_static PROPERTY C_VISIBILITY_PRESET hidden)
|
||||
target_compile_definitions(bz2_static PUBLIC BZ_NO_STDIO)
|
||||
set_property(TARGET "Aaru.Compression.Native" PROPERTY C_VISIBILITY_PRESET hidden)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC BZ_NO_STDIO)
|
||||
@@ -95,6 +95,8 @@ add_subdirectory(3rdparty)
|
||||
|
||||
add_library("Aaru.Compression.Native" SHARED library.c apple_rle.c apple_rle.h adc.c adc.h lzip.c flac.c flac.h)
|
||||
|
||||
include(3rdparty/bzip2.cmake)
|
||||
|
||||
MACRO(TARGET_LINK_LIBRARIES_WHOLE_ARCHIVE target)
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "MSVC")
|
||||
FOREACH(arg IN LISTS ARGN)
|
||||
@@ -114,7 +116,7 @@ MACRO(TARGET_LINK_LIBRARIES_WHOLE_ARCHIVE target)
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
TARGET_LINK_LIBRARIES_WHOLE_ARCHIVE("Aaru.Compression.Native" bz2_static lzlib lzfse libzstd_static lzma m FLAC)
|
||||
TARGET_LINK_LIBRARIES_WHOLE_ARCHIVE("Aaru.Compression.Native" lzlib lzfse libzstd_static lzma m FLAC)
|
||||
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW" OR (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" AND NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64"))
|
||||
set_property(TARGET "Aaru.Compression.Native" PROPERTY POSITION_INDEPENDENT_CODE TRUE)
|
||||
|
||||
Reference in New Issue
Block a user