diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt index 70e4ba1..58fc65f 100644 --- a/3rdparty/CMakeLists.txt +++ b/3rdparty/CMakeLists.txt @@ -1,5 +1,3 @@ -include(lzfse.cmake) - include(lzma.cmake) include(zstd.cmake) diff --git a/3rdparty/lzfse.cmake b/3rdparty/lzfse.cmake index 97907f5..e58842b 100644 --- a/3rdparty/lzfse.cmake +++ b/3rdparty/lzfse.cmake @@ -29,28 +29,6 @@ if (CMAKE_VERSION VERSION_GREATER 3.9) cmake_policy (SET CMP0069 NEW) endif () -# Compiler flags -function(lzfse_add_compiler_flags target) - set (flags ${ARGV}) - list (REMOVE_AT flags 0) - - foreach (FLAG ${flags}) - if(CMAKE_C_COMPILER_ID STREQUAL GNU) - # Because https://gcc.gnu.org/wiki/FAQ#wnowarning - string(REGEX REPLACE "\\-Wno\\-(.+)" "-W\\1" flag_to_test "${FLAG}") - else() - set (flag_to_test ${FLAG}) - endif() - - string(REGEX REPLACE "[^a-zA-Z0-9]+" "_" test_name "CFLAG_${flag_to_test}") - - check_c_compiler_flag("${flag_to_test}" "${test_name}") - if(${${test_name}}) - set_property(TARGET "${target}" APPEND_STRING PROPERTY COMPILE_FLAGS " ${FLAG}") - endif() - endforeach() -endfunction() - if (ENABLE_SANITIZER) set(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS} -fsanitize=${ENABLE_SANITIZER}") set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -fsanitize=${ENABLE_SANITIZER}") @@ -66,25 +44,11 @@ set(LZFSE_SOURCES src/lzvn_decode_base.c src/lzvn_encode_base.c) -list(TRANSFORM LZFSE_SOURCES PREPEND "lzfse/") +list(TRANSFORM LZFSE_SOURCES PREPEND "3rdparty/lzfse/") -add_library(lzfse STATIC ${LZFSE_SOURCES}) -lzfse_add_compiler_flags(lzfse -Wall -Wno-unknown-pragmas -Wno-unused-variable) +target_sources("Aaru.Compression.Native" PRIVATE ${LZFSE_SOURCES}) -if(CMAKE_VERSION VERSION_LESS 3.1 OR CMAKE_C_COMPLIER_ID STREQUAL "Intel") - lzfse_add_compiler_flags(lzfse -std=c99) -else() - set_property(TARGET lzfse PROPERTY C_STANDARD 99) -endif() - -set_target_properties(lzfse PROPERTIES - C_VISIBILITY_PRESET hidden) - if(NOT AARU_MUSL AND (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")) - set_property(TARGET lzfse PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) -endif() - -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 lzfse PROPERTY POSITION_INDEPENDENT_CODE TRUE) + set_property(TARGET "Aaru.Compression.Native" PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) endif() \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 6198486..1e8ae21 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,7 +27,7 @@ project("Aaru.Compression.Native" C) if("${CMAKE_C_COMPILER_ID}" MATCHES "MSVC" AND "${CMAKE_C_COMPILER_ARCHITECTURE_ID}" MATCHES "ARMV7") set(CMAKE_C_STANDARD 11) else() - set(CMAKE_C_STANDARD 90) + set(CMAKE_C_STANDARD 99) endif() if("${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW") @@ -97,6 +97,7 @@ add_library("Aaru.Compression.Native" SHARED library.c apple_rle.c apple_rle.h a include(3rdparty/bzip2.cmake) include(3rdparty/flac.cmake) +include(3rdparty/lzfse.cmake) include(3rdparty/lzip.cmake) MACRO(TARGET_LINK_LIBRARIES_WHOLE_ARCHIVE target) @@ -118,7 +119,7 @@ MACRO(TARGET_LINK_LIBRARIES_WHOLE_ARCHIVE target) ENDIF() ENDMACRO() -TARGET_LINK_LIBRARIES_WHOLE_ARCHIVE("Aaru.Compression.Native" lzfse libzstd_static lzma m) +TARGET_LINK_LIBRARIES_WHOLE_ARCHIVE("Aaru.Compression.Native" libzstd_static lzma m) 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)