diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt index d734a2b..3543d87 100644 --- a/3rdparty/CMakeLists.txt +++ b/3rdparty/CMakeLists.txt @@ -1,5 +1,3 @@ -include(bzip2.cmake) - include(lzip.cmake) include(lzfse.cmake) diff --git a/3rdparty/bzip2.cmake b/3rdparty/bzip2.cmake index ff3eea5..8e097a0 100644 --- a/3rdparty/bzip2.cmake +++ b/3rdparty/bzip2.cmake @@ -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) \ No newline at end of file +set_property(TARGET "Aaru.Compression.Native" PROPERTY C_VISIBILITY_PRESET hidden) +target_compile_definitions("Aaru.Compression.Native" PUBLIC BZ_NO_STDIO) \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 6877b79..69c3f7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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)