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(lzip.cmake)
|
||||||
|
|
||||||
include(lzfse.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_CURRENT 1)
|
||||||
set(LT_REVISION 7)
|
set(LT_REVISION 7)
|
||||||
set(LT_AGE 0)
|
set(LT_AGE 0)
|
||||||
|
|
||||||
set(PROJECT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/bzip2/")
|
set(PROJECT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/3rdparty/bzip2/")
|
||||||
set(PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/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(Version)
|
||||||
include(SymLink)
|
include(SymLink)
|
||||||
|
|
||||||
set(BZ_VERSION ${PROJECT_VERSION})
|
set(BZ_VERSION ${LT_CURRENT}.${LT_AGE}.${LT_REVISION})
|
||||||
configure_file (
|
configure_file (
|
||||||
${PROJECT_SOURCE_DIR}/bz_version.h.in
|
${PROJECT_SOURCE_DIR}/bz_version.h.in
|
||||||
${PROJECT_BINARY_DIR}/bz_version.h
|
${PROJECT_BINARY_DIR}/bz_version.h
|
||||||
@@ -25,11 +18,6 @@ include_directories(${PROJECT_BINARY_DIR})
|
|||||||
|
|
||||||
message(STATUS "BZIP2 VERSION: ${BZ_VERSION}")
|
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.
|
# Do not disable assertions based on CMAKE_BUILD_TYPE.
|
||||||
foreach(_build_type Release MinSizeRel RelWithDebInfo)
|
foreach(_build_type Release MinSizeRel RelWithDebInfo)
|
||||||
foreach(_lang C)
|
foreach(_lang C)
|
||||||
@@ -117,26 +105,15 @@ set(BZ2_SOURCES
|
|||||||
decompress.c
|
decompress.c
|
||||||
bzlib.c)
|
bzlib.c)
|
||||||
|
|
||||||
list(TRANSFORM BZ2_SOURCES PREPEND "bzip2/")
|
list(TRANSFORM BZ2_SOURCES PREPEND "3rdparty/bzip2/")
|
||||||
|
|
||||||
add_definitions(-DBZ_DEBUG=0)
|
add_definitions(-DBZ_DEBUG=0)
|
||||||
|
|
||||||
#if(ENABLE_STATIC_LIB)
|
target_sources("Aaru.Compression.Native"
|
||||||
# The libbz2 static library.
|
PRIVATE ${BZ2_SOURCES}
|
||||||
add_library(bz2_static STATIC)
|
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/bzip2/bzlib_private.h
|
||||||
target_sources(bz2_static
|
INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/bzip2/bzlib.h)
|
||||||
PRIVATE ${BZ2_SOURCES}
|
target_compile_definitions("Aaru.Compression.Native" PUBLIC BZ2_STATICLIB)
|
||||||
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()
|
|
||||||
|
|
||||||
set_property(TARGET bz2_static PROPERTY C_VISIBILITY_PRESET hidden)
|
set_property(TARGET "Aaru.Compression.Native" PROPERTY C_VISIBILITY_PRESET hidden)
|
||||||
target_compile_definitions(bz2_static PUBLIC BZ_NO_STDIO)
|
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)
|
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)
|
MACRO(TARGET_LINK_LIBRARIES_WHOLE_ARCHIVE target)
|
||||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "MSVC")
|
if("${CMAKE_C_COMPILER_ID}" MATCHES "MSVC")
|
||||||
FOREACH(arg IN LISTS ARGN)
|
FOREACH(arg IN LISTS ARGN)
|
||||||
@@ -114,7 +116,7 @@ MACRO(TARGET_LINK_LIBRARIES_WHOLE_ARCHIVE target)
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
ENDMACRO()
|
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"))
|
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)
|
set_property(TARGET "Aaru.Compression.Native" PROPERTY POSITION_INDEPENDENT_CODE TRUE)
|
||||||
|
|||||||
Reference in New Issue
Block a user