mirror of
https://github.com/aaru-dps/Aaru.Compression.Native.git
synced 2025-12-16 11:14:30 +00:00
General refactor and cleanup.
This commit is contained in:
40
3rdparty/bzip2.cmake
vendored
40
3rdparty/bzip2.cmake
vendored
@@ -17,28 +17,28 @@ message(STATUS "BZIP2 VERSION: ${BZ_VERSION}")
|
||||
|
||||
# Do not disable assertions based on CMAKE_BUILD_TYPE.
|
||||
foreach(_build_type Release MinSizeRel RelWithDebInfo)
|
||||
foreach(_lang C)
|
||||
string(TOUPPER CMAKE_${_lang}_FLAGS_${_build_type} _var)
|
||||
string(REGEX REPLACE "(^|)[/-]D *NDEBUG($|)" " " ${_var} "${${_var}}")
|
||||
endforeach()
|
||||
foreach(_lang C)
|
||||
string(TOUPPER CMAKE_${_lang}_FLAGS_${_build_type} _var)
|
||||
string(REGEX REPLACE "(^|)[/-]D *NDEBUG($|)" " " ${_var} "${${_var}}")
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
# Support the latest c++ standard available.
|
||||
include(ExtractValidFlags)
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the build type" FORCE)
|
||||
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Choose the build type" FORCE)
|
||||
|
||||
# Include "None" as option to disable any additional (optimization) flags,
|
||||
# relying on just CMAKE_C_FLAGS and CMAKE_CXX_FLAGS (which are empty by
|
||||
# default). These strings are presented in cmake-gui.
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
|
||||
None Debug Release MinSizeRel RelWithDebInfo)
|
||||
# Include "None" as option to disable any additional (optimization) flags,
|
||||
# relying on just CMAKE_C_FLAGS and CMAKE_CXX_FLAGS (which are empty by
|
||||
# default). These strings are presented in cmake-gui.
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
|
||||
None Debug Release MinSizeRel RelWithDebInfo)
|
||||
endif()
|
||||
|
||||
# Always use '-fPIC'/'-fPIE' option, except when using MingW to compile for WoA.
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW" OR (NOT "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "aarch64" AND NOT "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm"))
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
|
||||
# Checks for header files.
|
||||
@@ -60,13 +60,13 @@ include(CheckTypeSize)
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
# AC_TYPE_SIZE_T
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW" OR (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" AND NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64"))
|
||||
check_type_size("ssize_t" SIZEOF_SSIZE_T)
|
||||
check_type_size("ssize_t" SIZEOF_SSIZE_T)
|
||||
endif()
|
||||
|
||||
if(NOT SIZEOF_SSIZE_T)
|
||||
# ssize_t is a signed type in POSIX storing at least -1.
|
||||
# Set it to "int" to match the behavior of AC_TYPE_SSIZE_T (autotools).
|
||||
set(ssize_t int)
|
||||
# ssize_t is a signed type in POSIX storing at least -1.
|
||||
# Set it to "int" to match the behavior of AC_TYPE_SSIZE_T (autotools).
|
||||
set(ssize_t int)
|
||||
endif()
|
||||
|
||||
include(CheckStructHasMember)
|
||||
@@ -82,11 +82,11 @@ include(CheckSymbolExists)
|
||||
# XXX does this correctly detect initgroups (un)availability on cygwin?
|
||||
check_symbol_exists(initgroups grp.h HAVE_DECL_INITGROUPS)
|
||||
if(NOT HAVE_DECL_INITGROUPS AND HAVE_UNISTD_H)
|
||||
# FreeBSD declares initgroups() in unistd.h
|
||||
check_symbol_exists(initgroups unistd.h HAVE_DECL_INITGROUPS2)
|
||||
if(HAVE_DECL_INITGROUPS2)
|
||||
set(HAVE_DECL_INITGROUPS 1)
|
||||
endif()
|
||||
# FreeBSD declares initgroups() in unistd.h
|
||||
check_symbol_exists(initgroups unistd.h HAVE_DECL_INITGROUPS2)
|
||||
if(HAVE_DECL_INITGROUPS2)
|
||||
set(HAVE_DECL_INITGROUPS 1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# The build targets.
|
||||
|
||||
62
3rdparty/flac.cmake
vendored
62
3rdparty/flac.cmake
vendored
@@ -51,13 +51,13 @@ check_include_file("arm_neon.h" FLAC__HAS_NEONINTRIN)
|
||||
check_include_file("semaphore.h" HAVE_SEMAPHORE_H)
|
||||
|
||||
if(NOT HAVE_STDINT_H OR NOT HAVE_STDBOOL_H)
|
||||
message(SEND_ERROR "Header stdint.h and/or stdbool.h not found")
|
||||
message(SEND_ERROR "Header stdint.h and/or stdbool.h not found")
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
check_include_file("intrin.h" FLAC__HAS_X86INTRIN)
|
||||
check_include_file("intrin.h" FLAC__HAS_X86INTRIN)
|
||||
else()
|
||||
check_include_file("x86intrin.h" FLAC__HAS_X86INTRIN)
|
||||
check_include_file("x86intrin.h" FLAC__HAS_X86INTRIN)
|
||||
endif()
|
||||
|
||||
check_function_exists(fseeko HAVE_FSEEKO)
|
||||
@@ -66,14 +66,14 @@ check_c_source_compiles("int main() { return __builtin_bswap16 (0) ; }" HAVE_BSW
|
||||
check_c_source_compiles("int main() { return __builtin_bswap32 (0) ; }" HAVE_BSWAP32)
|
||||
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW" OR (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" AND NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64"))
|
||||
test_big_endian(CPU_IS_BIG_ENDIAN)
|
||||
test_big_endian(CPU_IS_BIG_ENDIAN)
|
||||
endif()
|
||||
|
||||
check_c_compiler_flag(-mstackrealign HAVE_STACKREALIGN_FLAG)
|
||||
|
||||
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "i686" AND HAVE_STACKREALIGN_FLAG)
|
||||
add_compile_options(-mstackrealign)
|
||||
add_compile_options($<$<OR:$<COMPILE_LANGUAGE:C>,$<COMPILE_LANGUAGE:CXX>>:-mstackrealign>)
|
||||
add_compile_options(-mstackrealign)
|
||||
add_compile_options($<$<OR:$<COMPILE_LANGUAGE:C>,$<COMPILE_LANGUAGE:CXX>>:-mstackrealign>)
|
||||
endif()
|
||||
|
||||
include_directories("3rdparty/flac/include")
|
||||
@@ -82,9 +82,9 @@ include_directories("${CMAKE_CURRENT_BINARY_DIR}/3rdparty/flac")
|
||||
add_definitions(-DHAVE_CONFIG_H)
|
||||
|
||||
if(MSVC)
|
||||
add_definitions(
|
||||
-D_CRT_SECURE_NO_WARNINGS
|
||||
-D_USE_MATH_DEFINES)
|
||||
add_definitions(
|
||||
-D_CRT_SECURE_NO_WARNINGS
|
||||
-D_USE_MATH_DEFINES)
|
||||
endif()
|
||||
|
||||
option(WITH_ASM "Use any assembly optimization routines" ON)
|
||||
@@ -101,36 +101,36 @@ include(CheckA64NEON)
|
||||
|
||||
check_cpu_arch_x64(FLAC__CPU_X86_64)
|
||||
if(NOT FLAC__CPU_X86_64)
|
||||
check_cpu_arch_x86(FLAC__CPU_IA32)
|
||||
check_cpu_arch_x86(FLAC__CPU_IA32)
|
||||
endif()
|
||||
|
||||
if(FLAC__CPU_X86_64 OR FLAC__CPU_IA32)
|
||||
set(FLAC__ALIGN_MALLOC_DATA 1)
|
||||
option(WITH_AVX "Enable AVX, AVX2 optimizations (with runtime detection, resulting binary does not require AVX2, so only necessary when a compiler doesn't know about AVX)" ON)
|
||||
if(WITH_AVX AND MSVC)
|
||||
set_source_files_properties(fixed_intrin_avx2.c lpc_intrin_avx2.c stream_encoder_intrin_avx2.c PROPERTIES COMPILE_FLAGS /arch:AVX2)
|
||||
set_source_files_properties(lpc_intrin_fma.c PROPERTIES COMPILE_FLAGS "/arch:AVX2 /fp:fast")
|
||||
endif()
|
||||
if(WITH_AVX AND (CMAKE_C_COMPILER_ID MATCHES "Clang"))
|
||||
set_source_files_properties(lpc_intrin_fma.c PROPERTIES COMPILE_FLAGS "-ffast-math")
|
||||
endif()
|
||||
set(FLAC__ALIGN_MALLOC_DATA 1)
|
||||
option(WITH_AVX "Enable AVX, AVX2 optimizations (with runtime detection, resulting binary does not require AVX2, so only necessary when a compiler doesn't know about AVX)" ON)
|
||||
if(WITH_AVX AND MSVC)
|
||||
set_source_files_properties(fixed_intrin_avx2.c lpc_intrin_avx2.c stream_encoder_intrin_avx2.c PROPERTIES COMPILE_FLAGS /arch:AVX2)
|
||||
set_source_files_properties(lpc_intrin_fma.c PROPERTIES COMPILE_FLAGS "/arch:AVX2 /fp:fast")
|
||||
endif()
|
||||
if(WITH_AVX AND (CMAKE_C_COMPILER_ID MATCHES "Clang"))
|
||||
set_source_files_properties(lpc_intrin_fma.c PROPERTIES COMPILE_FLAGS "-ffast-math")
|
||||
endif()
|
||||
else()
|
||||
if(FLAC__CPU_ARM64)
|
||||
check_a64neon(FLAC__HAS_A64NEONINTRIN)
|
||||
endif()
|
||||
if(FLAC__CPU_ARM64)
|
||||
check_a64neon(FLAC__HAS_A64NEONINTRIN)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT WITH_ASM)
|
||||
add_definitions(-DFLAC__NO_ASM)
|
||||
add_definitions(-DFLAC__NO_ASM)
|
||||
endif()
|
||||
|
||||
if(HAVE_SEMAPHORE_H)
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
|
||||
find_package(Threads)
|
||||
if(CMAKE_USE_PTHREADS_INIT)
|
||||
set(HAVE_PTHREAD 1)
|
||||
endif()
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
|
||||
find_package(Threads)
|
||||
if(CMAKE_USE_PTHREADS_INIT)
|
||||
set(HAVE_PTHREAD 1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
include_directories("3rdparty/flac/src/libFLAC/include")
|
||||
@@ -177,13 +177,13 @@ target_compile_definitions("Aaru.Compression.Native" PUBLIC FLAC__NO_FILEIO)
|
||||
|
||||
# Disable fortify source when not-release or when cross-building with MingW for WoA
|
||||
if(CMAKE_BUILD_TYPE STREQUAL Debug OR CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo OR "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
||||
set(DODEFINE_FORTIFY_SOURCE 0)
|
||||
set(DODEFINE_FORTIFY_SOURCE 0)
|
||||
endif()
|
||||
|
||||
set_property(TARGET "Aaru.Compression.Native" PROPERTY C_VISIBILITY_PRESET hidden)
|
||||
|
||||
if(ARCHITECTURE_IS_64BIT)
|
||||
set(ENABLE_64_BIT_WORDS 1)
|
||||
set(ENABLE_64_BIT_WORDS 1)
|
||||
endif()
|
||||
|
||||
configure_file(3rdparty/flac/config.cmake.h.in 3rdparty/flac/config.h)
|
||||
|
||||
26
3rdparty/lzfse.cmake
vendored
26
3rdparty/lzfse.cmake
vendored
@@ -8,28 +8,28 @@ include(CheckCCompilerFlag)
|
||||
# set it to OFF in your project before you add_subdirectory(lzfse).
|
||||
get_directory_property(LZFSE_PARENT_DIRECTORY PARENT_DIRECTORY)
|
||||
if("${LZFSE_BUNDLE_MODE}" STREQUAL "")
|
||||
# Bundled mode hasn't been set one way or the other, set the default
|
||||
# depending on whether or not we are the top-level project.
|
||||
if(LZFSE_PARENT_DIRECTORY)
|
||||
set(LZFSE_BUNDLE_MODE ON)
|
||||
else()
|
||||
set(LZFSE_BUNDLE_MODE OFF)
|
||||
endif(LZFSE_PARENT_DIRECTORY)
|
||||
# Bundled mode hasn't been set one way or the other, set the default
|
||||
# depending on whether or not we are the top-level project.
|
||||
if(LZFSE_PARENT_DIRECTORY)
|
||||
set(LZFSE_BUNDLE_MODE ON)
|
||||
else()
|
||||
set(LZFSE_BUNDLE_MODE OFF)
|
||||
endif(LZFSE_PARENT_DIRECTORY)
|
||||
endif()
|
||||
mark_as_advanced(LZFSE_BUNDLE_MODE)
|
||||
|
||||
if(CMAKE_VERSION VERSION_GREATER 3.2)
|
||||
cmake_policy(SET CMP0063 NEW)
|
||||
cmake_policy(SET CMP0063 NEW)
|
||||
endif()
|
||||
|
||||
if(CMAKE_VERSION VERSION_GREATER 3.9)
|
||||
cmake_policy(SET CMP0069 NEW)
|
||||
cmake_policy(SET CMP0069 NEW)
|
||||
endif()
|
||||
|
||||
if(ENABLE_SANITIZER)
|
||||
set(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
|
||||
set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
|
||||
set(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
|
||||
set(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
|
||||
endif()
|
||||
|
||||
set(LZFSE_SOURCES
|
||||
@@ -47,5 +47,5 @@ target_sources("Aaru.Compression.Native" PRIVATE ${LZFSE_SOURCES})
|
||||
|
||||
|
||||
if(NOT AARU_MUSL AND (NOT ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm"))
|
||||
set_property(TARGET "Aaru.Compression.Native" PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
|
||||
set_property(TARGET "Aaru.Compression.Native" PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
|
||||
endif()
|
||||
64
3rdparty/lzma.cmake
vendored
64
3rdparty/lzma.cmake
vendored
@@ -11,29 +11,29 @@ target_compile_definitions("Aaru.Compression.Native" PUBLIC _7ZIP_ST)
|
||||
# All assembly for x86 and x64 disabled because it uses a custom, non GAS, non MASM, assembler
|
||||
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64")
|
||||
set(IS_X64 1)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC IS_X64)
|
||||
set(IS_X64 1)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC IS_X64)
|
||||
|
||||
# if(NOT "${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
# set(USE_ASM 1)
|
||||
# endif()
|
||||
# if(NOT "${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
# set(USE_ASM 1)
|
||||
# endif()
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "i686")
|
||||
set(IS_X86 1)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC IS_X86)
|
||||
# set(USE_ASM 1)
|
||||
set(IS_X86 1)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC IS_X86)
|
||||
# set(USE_ASM 1)
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
|
||||
set(IS_ARM64 1)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC IS_ARM64)
|
||||
set(USE_ASM 1)
|
||||
set(IS_ARM64 1)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC IS_ARM64)
|
||||
set(USE_ASM 1)
|
||||
endif()
|
||||
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang" OR "${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
|
||||
set(USE_CLANG 1)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC USE_CLANG)
|
||||
set(USE_CLANG 1)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC USE_CLANG)
|
||||
endif()
|
||||
|
||||
if(DEFINED AARU_MUSL)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC Z7_AFFINITY_DISABLE)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC Z7_AFFINITY_DISABLE)
|
||||
endif()
|
||||
|
||||
#target_compile_options(lzma PUBLIC -Wall)
|
||||
@@ -43,10 +43,10 @@ target_compile_definitions("Aaru.Compression.Native" PUBLIC $<$<COMPILE_LANGUAGE
|
||||
|
||||
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64")
|
||||
target_compile_options("Aaru.Compression.Native" PUBLIC $<$<COMPILE_LANGUAGE:ASM>:-elf64>)
|
||||
target_compile_options("Aaru.Compression.Native" PUBLIC $<$<COMPILE_LANGUAGE:ASM>:-elf64>)
|
||||
else()
|
||||
target_compile_options("Aaru.Compression.Native" PUBLIC $<$<COMPILE_LANGUAGE:ASM>:-elf>)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC $<$<COMPILE_LANGUAGE:ASM>:-DABI_CDECL>)
|
||||
target_compile_options("Aaru.Compression.Native" PUBLIC $<$<COMPILE_LANGUAGE:ASM>:-elf>)
|
||||
target_compile_definitions("Aaru.Compression.Native" PUBLIC $<$<COMPILE_LANGUAGE:ASM>:-DABI_CDECL>)
|
||||
endif()
|
||||
|
||||
#target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_C_DIRECTORY}/7zAlloc.c)
|
||||
@@ -104,9 +104,9 @@ target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_C_DIRECTORY}/LzmaLib.c)
|
||||
#target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_ASM_DIRECTORY}/x86/7zCrcOpt.asm)
|
||||
|
||||
if(USE_ASM)
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "i686" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64")
|
||||
set(USE_X86_ASM 1)
|
||||
endif()
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "i686" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64")
|
||||
set(USE_X86_ASM 1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
#if(USE_X86_ASM)
|
||||
@@ -124,21 +124,21 @@ endif()
|
||||
#endif()
|
||||
|
||||
if(USE_LZMA_DEC_ASM)
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64")
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_ASM_DIRECTORY}/x86/LzFindOpt.asm)
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_ASM_DIRECTORY}/x86/LzmaDecOpt.asm)
|
||||
endif()
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64")
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_ASM_DIRECTORY}/x86/LzFindOpt.asm)
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_ASM_DIRECTORY}/x86/LzmaDecOpt.asm)
|
||||
endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_ASM_DIRECTORY}/arm64/LzmaDecOpt.S)
|
||||
# target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_ASM_DIRECTORY}/arm64/7zAsm.S)
|
||||
endif()
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_ASM_DIRECTORY}/arm64/LzmaDecOpt.S)
|
||||
# target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_ASM_DIRECTORY}/arm64/7zAsm.S)
|
||||
endif()
|
||||
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_C_DIRECTORY}/LzFindOpt.c)
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_C_DIRECTORY}/LzmaDec.c)
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_C_DIRECTORY}/LzFindOpt.c)
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_C_DIRECTORY}/LzmaDec.c)
|
||||
else()
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_C_DIRECTORY}/LzFindOpt.c)
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_C_DIRECTORY}/LzmaDec.c)
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_C_DIRECTORY}/LzFindOpt.c)
|
||||
target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_C_DIRECTORY}/LzmaDec.c)
|
||||
endif()
|
||||
|
||||
#target_sources("Aaru.Compression.Native" PRIVATE ${LZMA_C_DIRECTORY}/XzDec.c)
|
||||
|
||||
256
3rdparty/zstd.cmake
vendored
256
3rdparty/zstd.cmake
vendored
@@ -14,12 +14,12 @@ cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
|
||||
set(ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION "3")
|
||||
set(ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION "13") #Policies never changed at PATCH level
|
||||
if("${CMAKE_MAJOR_VERSION}" LESS 3)
|
||||
set(ZSTD_CMAKE_POLICY_VERSION "${CMAKE_VERSION}")
|
||||
set(ZSTD_CMAKE_POLICY_VERSION "${CMAKE_VERSION}")
|
||||
elseif("${ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION}" EQUAL "${CMAKE_MAJOR_VERSION}" AND
|
||||
"${ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION}" GREATER "${CMAKE_MINOR_VERSION}")
|
||||
set(ZSTD_CMAKE_POLICY_VERSION "${CMAKE_VERSION}")
|
||||
set(ZSTD_CMAKE_POLICY_VERSION "${CMAKE_VERSION}")
|
||||
else()
|
||||
set(ZSTD_CMAKE_POLICY_VERSION "${ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION}.${ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION}.0")
|
||||
set(ZSTD_CMAKE_POLICY_VERSION "${ZSTD_MAX_VALIDATED_CMAKE_MAJOR_VERSION}.${ZSTD_MAX_VALIDATED_CMAKE_MINOR_VERSION}.0")
|
||||
endif()
|
||||
cmake_policy(VERSION ${ZSTD_CMAKE_POLICY_VERSION})
|
||||
|
||||
@@ -32,22 +32,22 @@ include(GetZstdLibraryVersion)
|
||||
getzstdlibraryversion(${LIBRARY_DIR}/zstd.h zstd_VERSION_MAJOR zstd_VERSION_MINOR zstd_VERSION_PATCH)
|
||||
|
||||
if(CMAKE_MAJOR_VERSION LESS 3)
|
||||
## Provide cmake 3+ behavior for older versions of cmake
|
||||
project(zstd)
|
||||
set(PROJECT_VERSION_MAJOR ${zstd_VERSION_MAJOR})
|
||||
set(PROJECT_VERSION_MINOR ${zstd_VERSION_MINOR})
|
||||
set(PROJECT_VERSION_PATCH ${zstd_VERSION_PATCH})
|
||||
set(PROJECT_VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}")
|
||||
enable_language(C) # Main library is in C
|
||||
enable_language(ASM) # And ASM
|
||||
enable_language(CXX) # Testing contributed code also utilizes CXX
|
||||
## Provide cmake 3+ behavior for older versions of cmake
|
||||
project(zstd)
|
||||
set(PROJECT_VERSION_MAJOR ${zstd_VERSION_MAJOR})
|
||||
set(PROJECT_VERSION_MINOR ${zstd_VERSION_MINOR})
|
||||
set(PROJECT_VERSION_PATCH ${zstd_VERSION_PATCH})
|
||||
set(PROJECT_VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}")
|
||||
enable_language(C) # Main library is in C
|
||||
enable_language(ASM) # And ASM
|
||||
enable_language(CXX) # Testing contributed code also utilizes CXX
|
||||
else()
|
||||
project(zstd
|
||||
VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}"
|
||||
LANGUAGES C # Main library is in C
|
||||
ASM # And ASM
|
||||
CXX # Testing contributed code also utilizes CXX
|
||||
)
|
||||
project(zstd
|
||||
VERSION "${zstd_VERSION_MAJOR}.${zstd_VERSION_MINOR}.${zstd_VERSION_PATCH}"
|
||||
LANGUAGES C # Main library is in C
|
||||
ASM # And ASM
|
||||
CXX # Testing contributed code also utilizes CXX
|
||||
)
|
||||
endif()
|
||||
|
||||
message(STATUS "ZSTD VERSION: ${zstd_VERSION}")
|
||||
@@ -56,10 +56,10 @@ set(zstd_DESCRIPTION "Zstandard is a real-time compression algorithm, providing
|
||||
|
||||
# Set a default build type if none was specified
|
||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||
message(STATUS "Setting build type to 'Release' as none was specified.")
|
||||
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
|
||||
# Set the possible values of build type for cmake-gui
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
||||
message(STATUS "Setting build type to 'Release' as none was specified.")
|
||||
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
|
||||
# Set the possible values of build type for cmake-gui
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
@@ -70,83 +70,83 @@ include(CheckCXXCompilerFlag)
|
||||
include(CheckCCompilerFlag)
|
||||
|
||||
function(enablecompilerflag _flag _C _CXX)
|
||||
string(REGEX REPLACE "\\+" "PLUS" varname "${_flag}")
|
||||
string(REGEX REPLACE "[^A-Za-z0-9]+" "_" varname "${varname}")
|
||||
string(REGEX REPLACE "^_+" "" varname "${varname}")
|
||||
string(TOUPPER "${varname}" varname)
|
||||
if(_C)
|
||||
check_c_compiler_flag(${_flag} C_FLAG_${varname})
|
||||
if(C_FLAG_${varname})
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_flag}" PARENT_SCOPE)
|
||||
endif()
|
||||
string(REGEX REPLACE "\\+" "PLUS" varname "${_flag}")
|
||||
string(REGEX REPLACE "[^A-Za-z0-9]+" "_" varname "${varname}")
|
||||
string(REGEX REPLACE "^_+" "" varname "${varname}")
|
||||
string(TOUPPER "${varname}" varname)
|
||||
if(_C)
|
||||
check_c_compiler_flag(${_flag} C_FLAG_${varname})
|
||||
if(C_FLAG_${varname})
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_flag}" PARENT_SCOPE)
|
||||
endif()
|
||||
if(_CXX)
|
||||
check_cxx_compiler_flag(${_flag} CXX_FLAG_${varname})
|
||||
if(CXX_FLAG_${varname})
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_flag}" PARENT_SCOPE)
|
||||
endif()
|
||||
endif()
|
||||
if(_CXX)
|
||||
check_cxx_compiler_flag(${_flag} CXX_FLAG_${varname})
|
||||
if(CXX_FLAG_${varname})
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_flag}" PARENT_SCOPE)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
macro(add_zstd_compilation_flags)
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" OR MINGW) #Not only UNIX but also WIN32 for MinGW
|
||||
#Set c++11 by default
|
||||
enablecompilerflag("-std=c++11" false true)
|
||||
#Set c99 by default
|
||||
enablecompilerflag("-std=c99" true false)
|
||||
# if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND MSVC)
|
||||
# # clang-cl normally maps -Wall to -Weverything.
|
||||
# EnableCompilerFlag("/clang:-Wall" true true)
|
||||
# else ()
|
||||
# EnableCompilerFlag("-Wall" true true)
|
||||
# endif ()
|
||||
# EnableCompilerFlag("-Wextra" true true)
|
||||
# EnableCompilerFlag("-Wundef" true true)
|
||||
# EnableCompilerFlag("-Wshadow" true true)
|
||||
# EnableCompilerFlag("-Wcast-align" true true)
|
||||
# EnableCompilerFlag("-Wcast-qual" true true)
|
||||
# EnableCompilerFlag("-Wstrict-prototypes" true false)
|
||||
# Enable asserts in Debug mode
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
enablecompilerflag("-DDEBUGLEVEL=1" true true)
|
||||
endif()
|
||||
elseif(MSVC) # Add specific compilation flags for Windows Visual
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" OR MINGW) #Not only UNIX but also WIN32 for MinGW
|
||||
#Set c++11 by default
|
||||
enablecompilerflag("-std=c++11" false true)
|
||||
#Set c99 by default
|
||||
enablecompilerflag("-std=c99" true false)
|
||||
# if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND MSVC)
|
||||
# # clang-cl normally maps -Wall to -Weverything.
|
||||
# EnableCompilerFlag("/clang:-Wall" true true)
|
||||
# else ()
|
||||
# EnableCompilerFlag("-Wall" true true)
|
||||
# endif ()
|
||||
# EnableCompilerFlag("-Wextra" true true)
|
||||
# EnableCompilerFlag("-Wundef" true true)
|
||||
# EnableCompilerFlag("-Wshadow" true true)
|
||||
# EnableCompilerFlag("-Wcast-align" true true)
|
||||
# EnableCompilerFlag("-Wcast-qual" true true)
|
||||
# EnableCompilerFlag("-Wstrict-prototypes" true false)
|
||||
# Enable asserts in Debug mode
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
enablecompilerflag("-DDEBUGLEVEL=1" true true)
|
||||
endif()
|
||||
elseif(MSVC) # Add specific compilation flags for Windows Visual
|
||||
|
||||
set(ACTIVATE_MULTITHREADED_COMPILATION "ON" CACHE BOOL "activate multi-threaded compilation (/MP flag)")
|
||||
if(CMAKE_GENERATOR MATCHES "Visual Studio" AND ACTIVATE_MULTITHREADED_COMPILATION)
|
||||
enablecompilerflag("/MP" true true)
|
||||
endif()
|
||||
|
||||
# UNICODE SUPPORT
|
||||
enablecompilerflag("/D_UNICODE" true true)
|
||||
enablecompilerflag("/DUNICODE" true true)
|
||||
# Enable asserts in Debug mode
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
enablecompilerflag("/DDEBUGLEVEL=1" true true)
|
||||
endif()
|
||||
set(ACTIVATE_MULTITHREADED_COMPILATION "ON" CACHE BOOL "activate multi-threaded compilation (/MP flag)")
|
||||
if(CMAKE_GENERATOR MATCHES "Visual Studio" AND ACTIVATE_MULTITHREADED_COMPILATION)
|
||||
enablecompilerflag("/MP" true true)
|
||||
endif()
|
||||
|
||||
# Remove duplicates compilation flags
|
||||
# UNICODE SUPPORT
|
||||
enablecompilerflag("/D_UNICODE" true true)
|
||||
enablecompilerflag("/DUNICODE" true true)
|
||||
# Enable asserts in Debug mode
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
enablecompilerflag("/DDEBUGLEVEL=1" true true)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Remove duplicates compilation flags
|
||||
foreach(flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
|
||||
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
|
||||
if(${flag_var})
|
||||
separate_arguments(${flag_var})
|
||||
string(REPLACE ";" " " ${flag_var} "${${flag_var}}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(MSVC AND ZSTD_USE_STATIC_RUNTIME)
|
||||
foreach(flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
|
||||
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
|
||||
if(${flag_var})
|
||||
separate_arguments(${flag_var})
|
||||
string(REPLACE ";" " " ${flag_var} "${${flag_var}}")
|
||||
endif()
|
||||
if(${flag_var})
|
||||
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(MSVC AND ZSTD_USE_STATIC_RUNTIME)
|
||||
foreach(flag_var CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
|
||||
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
|
||||
if(${flag_var})
|
||||
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
endmacro()
|
||||
|
||||
@@ -170,31 +170,31 @@ add_definitions(-DXXH_NAMESPACE=ZSTD_)
|
||||
option(ZSTD_LEGACY_SUPPORT "LEGACY SUPPORT" OFF)
|
||||
|
||||
if(ZSTD_LEGACY_SUPPORT)
|
||||
message(STATUS "ZSTD_LEGACY_SUPPORT defined!")
|
||||
add_definitions(-DZSTD_LEGACY_SUPPORT=5)
|
||||
message(STATUS "ZSTD_LEGACY_SUPPORT defined!")
|
||||
add_definitions(-DZSTD_LEGACY_SUPPORT=5)
|
||||
else()
|
||||
message(STATUS "ZSTD_LEGACY_SUPPORT not defined!")
|
||||
add_definitions(-DZSTD_LEGACY_SUPPORT=0)
|
||||
message(STATUS "ZSTD_LEGACY_SUPPORT not defined!")
|
||||
add_definitions(-DZSTD_LEGACY_SUPPORT=0)
|
||||
endif()
|
||||
|
||||
# Multi-threading support
|
||||
if(ANDROID)
|
||||
option(ZSTD_MULTITHREAD_SUPPORT "MULTITHREADING SUPPORT" OFF)
|
||||
option(ZSTD_MULTITHREAD_SUPPORT "MULTITHREADING SUPPORT" OFF)
|
||||
else()
|
||||
option(ZSTD_MULTITHREAD_SUPPORT "MULTITHREADING SUPPORT" ON)
|
||||
option(ZSTD_MULTITHREAD_SUPPORT "MULTITHREADING SUPPORT" ON)
|
||||
endif()
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# External dependencies
|
||||
#-----------------------------------------------------------------------------
|
||||
if(ZSTD_MULTITHREAD_SUPPORT AND UNIX)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
if(CMAKE_USE_PTHREADS_INIT)
|
||||
set(THREADS_LIBS "${CMAKE_THREAD_LIBS_INIT}")
|
||||
else()
|
||||
message(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads")
|
||||
endif()
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
if(CMAKE_USE_PTHREADS_INIT)
|
||||
set(THREADS_LIBS "${CMAKE_THREAD_LIBS_INIT}")
|
||||
else()
|
||||
message(SEND_ERROR "ZSTD currently does not support thread libraries other than pthreads")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
project(libzstd C)
|
||||
@@ -230,32 +230,32 @@ set(Headers
|
||||
${DictBuilderHeaders})
|
||||
|
||||
if(ZSTD_LEGACY_SUPPORT)
|
||||
set(LIBRARY_LEGACY_DIR ${LIBRARY_DIR}/legacy)
|
||||
include_directories(${LIBRARY_LEGACY_DIR})
|
||||
set(LIBRARY_LEGACY_DIR ${LIBRARY_DIR}/legacy)
|
||||
include_directories(${LIBRARY_LEGACY_DIR})
|
||||
|
||||
set(Sources ${Sources}
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v01.c
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v02.c
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v03.c
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v04.c
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v05.c
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v06.c
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v07.c)
|
||||
set(Sources ${Sources}
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v01.c
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v02.c
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v03.c
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v04.c
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v05.c
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v06.c
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v07.c)
|
||||
|
||||
set(Headers ${Headers}
|
||||
${LIBRARY_LEGACY_DIR}/zstd_legacy.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v01.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v02.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v03.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v04.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v05.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v06.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v07.h)
|
||||
set(Headers ${Headers}
|
||||
${LIBRARY_LEGACY_DIR}/zstd_legacy.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v01.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v02.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v03.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v04.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v05.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v06.h
|
||||
${LIBRARY_LEGACY_DIR}/zstd_v07.h)
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
set(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/libzstd-dll)
|
||||
set(PlatformDependResources ${MSVC_RESOURCE_DIR}/libzstd-dll.rc)
|
||||
set(MSVC_RESOURCE_DIR ${ZSTD_SOURCE_DIR}/build/VS2010/libzstd-dll)
|
||||
set(PlatformDependResources ${MSVC_RESOURCE_DIR}/libzstd-dll.rc)
|
||||
endif()
|
||||
|
||||
# Explicitly set the language to C for all files, including ASM files.
|
||||
@@ -270,23 +270,23 @@ set(library_targets)
|
||||
add_library(libzstd_static STATIC ${Sources} ${Headers})
|
||||
list(APPEND library_targets libzstd_static)
|
||||
if(ZSTD_MULTITHREAD_SUPPORT)
|
||||
set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD")
|
||||
if(UNIX)
|
||||
target_link_libraries(libzstd_static ${THREADS_LIBS})
|
||||
endif()
|
||||
set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_MULTITHREAD")
|
||||
if(UNIX)
|
||||
target_link_libraries(libzstd_static ${THREADS_LIBS})
|
||||
endif()
|
||||
endif()
|
||||
#endif ()
|
||||
|
||||
# Add specific compile definitions for MSVC project
|
||||
if(MSVC)
|
||||
set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_HEAPMODE=0;_CRT_SECURE_NO_WARNINGS")
|
||||
set_property(TARGET libzstd_static APPEND PROPERTY COMPILE_DEFINITIONS "ZSTD_HEAPMODE=0;_CRT_SECURE_NO_WARNINGS")
|
||||
endif()
|
||||
|
||||
# With MSVC static library needs to be renamed to avoid conflict with import library
|
||||
if(MSVC)
|
||||
set(STATIC_LIBRARY_BASE_NAME zstd_static)
|
||||
set(STATIC_LIBRARY_BASE_NAME zstd_static)
|
||||
else()
|
||||
set(STATIC_LIBRARY_BASE_NAME zstd)
|
||||
set(STATIC_LIBRARY_BASE_NAME zstd)
|
||||
endif()
|
||||
|
||||
# Define static and shared library names
|
||||
@@ -298,5 +298,5 @@ set_target_properties(
|
||||
#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 libzstd_static PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
set_property(TARGET libzstd_static PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
endif()
|
||||
|
||||
190
CMakeLists.txt
190
CMakeLists.txt
@@ -17,48 +17,48 @@ cmake_minimum_required(VERSION 3.15)
|
||||
# License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
if(APPLE)
|
||||
# Too early cmake has not yet set it
|
||||
if((NOT DEFINED CMAKE_SYSTEM_PROCESSOR) AND (NOT DEFINED AARU_MACOS_TARGET_ARCH))
|
||||
execute_process(COMMAND uname -m OUTPUT_VARIABLE AARU_MACOS_TARGET_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
endif()
|
||||
# Too early cmake has not yet set it
|
||||
if((NOT DEFINED CMAKE_SYSTEM_PROCESSOR) AND (NOT DEFINED AARU_MACOS_TARGET_ARCH))
|
||||
execute_process(COMMAND uname -m OUTPUT_VARIABLE AARU_MACOS_TARGET_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED AARU_MACOS_TARGET_ARCH)
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
|
||||
set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "Build architectures for macOS" FORCE)
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64")
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "Build architectures for macOS" FORCE)
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown system processor ${CMAKE_SYSTEM_PROCESSOR} for macOS")
|
||||
endif()
|
||||
elseif(AARU_MACOS_TARGET_ARCH STREQUAL "x86_64")
|
||||
set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "Build architectures for macOS" FORCE)
|
||||
elseif(AARU_MACOS_TARGET_ARCH STREQUAL "arm64")
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "Build architectures for macOS" FORCE)
|
||||
if(NOT DEFINED AARU_MACOS_TARGET_ARCH)
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
|
||||
set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "Build architectures for macOS" FORCE)
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm64")
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "Build architectures for macOS" FORCE)
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown Aaru target architecture ${AARU_MACOS_TARGET_ARCH} for macOS")
|
||||
message(FATAL_ERROR "Unknown system processor ${CMAKE_SYSTEM_PROCESSOR} for macOS")
|
||||
endif()
|
||||
elseif(AARU_MACOS_TARGET_ARCH STREQUAL "x86_64")
|
||||
set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "Build architectures for macOS" FORCE)
|
||||
elseif(AARU_MACOS_TARGET_ARCH STREQUAL "arm64")
|
||||
set(CMAKE_OSX_ARCHITECTURES "arm64" CACHE STRING "Build architectures for macOS" FORCE)
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown Aaru target architecture ${AARU_MACOS_TARGET_ARCH} for macOS")
|
||||
endif()
|
||||
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version")
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version")
|
||||
endif(APPLE)
|
||||
|
||||
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)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
else()
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
endif()
|
||||
|
||||
if("${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
||||
if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "aarch64" OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm")
|
||||
set(WIN32 TRUE)
|
||||
endif()
|
||||
if("${CMAKE_SYSTEM_PROCESSOR}" MATCHES "aarch64" OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "arm")
|
||||
set(WIN32 TRUE)
|
||||
endif()
|
||||
|
||||
add_link_options(-static-libgcc)
|
||||
add_link_options(-static-libgcc)
|
||||
endif()
|
||||
|
||||
if(DEFINED AARU_MACOS_TARGET_ARCH)
|
||||
message("Requested target architecture: ${AARU_MACOS_TARGET_ARCH}")
|
||||
message("Requested target architecture: ${AARU_MACOS_TARGET_ARCH}")
|
||||
endif()
|
||||
message("Detected system processor: ${CMAKE_SYSTEM_PROCESSOR}")
|
||||
message("Detected vs platform name: ${CMAKE_C_COMPILER_ARCHITECTURE_ID}")
|
||||
@@ -69,61 +69,61 @@ message("Size of (void*): ${CMAKE_SIZEOF_VOID_P}")
|
||||
|
||||
# Check if target is 64-bit
|
||||
if("${CMAKE_SIZEOF_VOID_P}" MATCHES "8" OR "${CMAKE_C_COMPILER_ARCHITECTURE_ID}" MATCHES "x64" OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "x86_64" OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "AMD64" OR "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "aarch64")
|
||||
set(ARCHITECTURE_IS_64BIT TRUE)
|
||||
set(ARCHITECTURE_IS_64BIT TRUE)
|
||||
endif()
|
||||
|
||||
if("${CMAKE_BUILD_TYPE}" MATCHES "Release" OR "${CMAKE_BUILD_TYPE}" MATCHES "RelWithDebInfo" OR "${CMAKE_BUILD_TYPE}" MATCHES "MinSizeRel")
|
||||
if("${CMAKE_BUILD_TYPE}" MATCHES "Release")
|
||||
add_compile_definitions(NDEBUG)
|
||||
if("${CMAKE_BUILD_TYPE}" MATCHES "Release")
|
||||
add_compile_definitions(NDEBUG)
|
||||
endif()
|
||||
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "MSVC")
|
||||
add_compile_options("/O2 /Ob2 /Oi /Ot /Oy /Og /fp:fast")
|
||||
if(${CMAKE_C_COMPILER_ARCHITECTURE_ID} MATCHES "X86")
|
||||
add_compile_options("/arch:SSE2")
|
||||
elseif(${CMAKE_C_COMPILER_ARCHITECTURE_ID} MATCHES "ARM")
|
||||
add_compile_options("/arch:VFPv4")
|
||||
endif()
|
||||
else()
|
||||
add_compile_options(-ffast-math -Ofast)
|
||||
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
if(${AARU_MACOS_TARGET_ARCH} MATCHES "x86_64")
|
||||
add_compile_options(-march=ivybridge -mtune=westmere -msse4.2)
|
||||
elseif(${AARU_MACOS_TARGET_ARCH} MATCHES "arm64")
|
||||
add_compile_options(-mcpu=apple-m1 -mtune=apple-m1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "MSVC")
|
||||
add_compile_options("/O2 /Ob2 /Oi /Ot /Oy /Og /fp:fast")
|
||||
if(${CMAKE_C_COMPILER_ARCHITECTURE_ID} MATCHES "X86")
|
||||
add_compile_options("/arch:SSE2")
|
||||
elseif(${CMAKE_C_COMPILER_ARCHITECTURE_ID} MATCHES "ARM")
|
||||
add_compile_options("/arch:VFPv4")
|
||||
endif()
|
||||
else()
|
||||
add_compile_options(-ffast-math -Ofast)
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "i686" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64")
|
||||
if(NOT "${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
add_compile_options(-march=westmere -mtune=skylake -mfpmath=sse)
|
||||
add_compile_options(-msse4.2)
|
||||
endif()
|
||||
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
if(${AARU_MACOS_TARGET_ARCH} MATCHES "x86_64")
|
||||
add_compile_options(-march=ivybridge -mtune=westmere -msse4.2)
|
||||
elseif(${AARU_MACOS_TARGET_ARCH} MATCHES "arm64")
|
||||
add_compile_options(-mcpu=apple-m1 -mtune=apple-m1)
|
||||
endif()
|
||||
endif()
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
||||
add_compile_options(-flto)
|
||||
endif()
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
|
||||
if(NOT "${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
add_compile_options(-mtune=cortex-a53)
|
||||
endif()
|
||||
|
||||
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "i686" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64")
|
||||
if(NOT "${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
add_compile_options(-march=westmere -mtune=skylake -mfpmath=sse)
|
||||
add_compile_options(-msse4.2)
|
||||
endif()
|
||||
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
||||
add_compile_options(-flto)
|
||||
endif()
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
|
||||
if(NOT "${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
add_compile_options(-mtune=cortex-a53)
|
||||
endif()
|
||||
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
||||
add_compile_options(-flto)
|
||||
endif()
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7l" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" AND NOT "${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
|
||||
add_compile_options(-mtune=cortex-a53 -mcpu=cortex-a7)
|
||||
else()
|
||||
add_compile_options(-mtune=cortex-a53 -march=armv7-a+neon-vfpv4)
|
||||
endif()
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "mips")
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
||||
add_compile_options(-flto)
|
||||
endif()
|
||||
endif()
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
||||
add_compile_options(-flto)
|
||||
endif()
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7l" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" AND NOT "${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
|
||||
add_compile_options(-mtune=cortex-a53 -mcpu=cortex-a7)
|
||||
else()
|
||||
add_compile_options(-mtune=cortex-a53 -march=armv7-a+neon-vfpv4)
|
||||
endif()
|
||||
elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "mips")
|
||||
if(NOT "${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW")
|
||||
add_compile_options(-flto)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_subdirectory(3rdparty)
|
||||
@@ -137,22 +137,22 @@ include(3rdparty/lzip.cmake)
|
||||
include(3rdparty/lzma.cmake)
|
||||
|
||||
macro(target_link_libraries_whole_archive target)
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "MSVC")
|
||||
foreach(arg IN LISTS ARGN)
|
||||
set_target_properties(
|
||||
${target} PROPERTIES LINK_FLAGS "/WHOLEARCHIVE:${lib}"
|
||||
)
|
||||
endforeach()
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "MSVC")
|
||||
foreach(arg IN LISTS ARGN)
|
||||
set_target_properties(
|
||||
${target} PROPERTIES LINK_FLAGS "/WHOLEARCHIVE:${lib}"
|
||||
)
|
||||
endforeach()
|
||||
else()
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
set(LINK_FLAGS "-Wl,-all_load")
|
||||
set(UNDO_FLAGS "-Wl")
|
||||
else()
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "AppleClang")
|
||||
set(LINK_FLAGS "-Wl,-all_load")
|
||||
set(UNDO_FLAGS "-Wl")
|
||||
else()
|
||||
set(LINK_FLAGS "-Wl,--whole-archive")
|
||||
set(UNDO_FLAGS "-Wl,--no-whole-archive")
|
||||
endif()
|
||||
target_link_libraries(${target} ${LINK_FLAGS} ${ARGN} ${UNDO_FLAGS})
|
||||
set(LINK_FLAGS "-Wl,--whole-archive")
|
||||
set(UNDO_FLAGS "-Wl,--no-whole-archive")
|
||||
endif()
|
||||
target_link_libraries(${target} ${LINK_FLAGS} ${ARGN} ${UNDO_FLAGS})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
target_link_libraries_whole_archive("Aaru.Compression.Native" libzstd_static m)
|
||||
@@ -160,22 +160,22 @@ target_link_libraries_whole_archive("Aaru.Compression.Native" libzstd_static m)
|
||||
check_include_file("semaphore.h" HAVE_SEMAPHORE_H)
|
||||
|
||||
if(HAVE_SEMAPHORE_H)
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
|
||||
find_package(Threads)
|
||||
if(CMAKE_USE_PTHREADS_INIT)
|
||||
set(HAVE_PTHREAD 1)
|
||||
endif()
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
|
||||
find_package(Threads)
|
||||
if(CMAKE_USE_PTHREADS_INIT)
|
||||
set(HAVE_PTHREAD 1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(HAVE_PTHREAD)
|
||||
target_link_libraries_whole_archive("Aaru.Compression.Native" Threads::Threads)
|
||||
target_link_libraries_whole_archive("Aaru.Compression.Native" Threads::Threads)
|
||||
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 "Aaru.Compression.Native" PROPERTY POSITION_INDEPENDENT_CODE TRUE)
|
||||
set_property(TARGET "Aaru.Compression.Native" PROPERTY POSITION_INDEPENDENT_CODE TRUE)
|
||||
else()
|
||||
set_property(TARGET "Aaru.Compression.Native" PROPERTY POSITION_INDEPENDENT_CODE FALSE)
|
||||
set_property(TARGET "Aaru.Compression.Native" PROPERTY POSITION_INDEPENDENT_CODE FALSE)
|
||||
endif()
|
||||
|
||||
add_subdirectory(tests)
|
||||
|
||||
@@ -4,11 +4,14 @@ This repository contains the Aaru.Compression.Native library for [Aaru](https://
|
||||
|
||||
The purpose of this library is to provide compression and de-compression algorithms for Aaru.
|
||||
|
||||
No archiver processing code should fall here, those go in [Aaru.Compression](https://github.com/aaru-dps/Aaru/tree/devel/Aaru.Compression).
|
||||
No archiver processing code should fall here, those go
|
||||
in [Aaru.Compression](https://github.com/aaru-dps/Aaru/tree/devel/Aaru.Compression).
|
||||
|
||||
To build you just need Docker on Linux and run `build.sh`, that will generate a NuGet package for use with Aaru.Compression.
|
||||
To build you just need Docker on Linux and run `build.sh`, that will generate a NuGet package for use with
|
||||
Aaru.Compression.
|
||||
|
||||
Currently implemented algorithms are:
|
||||
|
||||
- Apple Data Compression (RLE with sliding dictionary created for Apple Disk Copy's NDIF)
|
||||
- Apple RLE (Run Length Encoding created for Apple DART)
|
||||
- [BZIP2](https://gitlab.com/bzip2/bzip2.git)
|
||||
|
||||
30
adc.c
30
adc.c
@@ -19,10 +19,14 @@ FORCE_INLINE int GetChunkSize(uint8_t byt)
|
||||
{
|
||||
switch(GetChunkType(byt))
|
||||
{
|
||||
case ADC_PLAIN: return (byt & 0x7F) + 1;
|
||||
case ADC_TWO_BYTE: return ((byt & 0x3F) >> 2) + 3;
|
||||
case ADC_THREE_BYTE: return (byt & 0x3F) + 4;
|
||||
default: return -1;
|
||||
case ADC_PLAIN:
|
||||
return (byt & 0x7F) + 1;
|
||||
case ADC_TWO_BYTE:
|
||||
return ((byt & 0x3F) >> 2) + 3;
|
||||
case ADC_THREE_BYTE:
|
||||
return (byt & 0x3F) + 4;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,17 +34,19 @@ FORCE_INLINE int GetOffset(uint8_t chunk[])
|
||||
{
|
||||
switch(GetChunkType(chunk[0]))
|
||||
{
|
||||
case ADC_PLAIN: return 0;
|
||||
case ADC_TWO_BYTE: return ((chunk[0] & 0x03) << 8) + chunk[1];
|
||||
case ADC_THREE_BYTE: return (chunk[1] << 8) + chunk[2];
|
||||
default: return -1;
|
||||
case ADC_PLAIN:
|
||||
return 0;
|
||||
case ADC_TWO_BYTE:
|
||||
return ((chunk[0] & 0x03) << 8) + chunk[1];
|
||||
case ADC_THREE_BYTE:
|
||||
return (chunk[1] << 8) + chunk[2];
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_adc_decode_buffer(uint8_t* dst_buffer,
|
||||
int32_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
int32_t src_size)
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_adc_decode_buffer(uint8_t *dst_buffer, int32_t dst_size, const uint8_t *src_buffer,
|
||||
int32_t src_size)
|
||||
{
|
||||
int inputPosition = 0;
|
||||
int chunkSize;
|
||||
|
||||
6
adc.h
6
adc.h
@@ -5,8 +5,8 @@
|
||||
#ifndef AARU_COMPRESSION_NATIVE__ADC_H_
|
||||
#define AARU_COMPRESSION_NATIVE__ADC_H_
|
||||
|
||||
#define ADC_PLAIN 1
|
||||
#define ADC_TWO_BYTE 2
|
||||
#define ADC_PLAIN 1
|
||||
#define ADC_TWO_BYTE 2
|
||||
#define ADC_THREE_BYTE 3
|
||||
|
||||
#endif // AARU_COMPRESSION_NATIVE__ADC_H_
|
||||
#endif // AARU_COMPRESSION_NATIVE__ADC_H_
|
||||
|
||||
10
apple_rle.c
10
apple_rle.c
@@ -24,15 +24,13 @@
|
||||
#include "library.h"
|
||||
#include "apple_rle.h"
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_apple_rle_decode_buffer(uint8_t* dst_buffer,
|
||||
int32_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
int32_t src_size)
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_apple_rle_decode_buffer(uint8_t *dst_buffer, int32_t dst_size,
|
||||
const uint8_t *src_buffer, int32_t src_size)
|
||||
{
|
||||
static int32_t count = 0;
|
||||
static bool nextA = true; // true if A, false if B
|
||||
static bool nextA = true; // true if A, false if B
|
||||
static uint8_t repeatedByteA = 0, repeatedByteB = 0;
|
||||
static bool repeatMode = false; // true if we're repeating, false if we're just copying
|
||||
static bool repeatMode = false; // true if we're repeating, false if we're just copying
|
||||
int32_t in_pos = 0, out_pos = 0;
|
||||
|
||||
while(in_pos <= src_size && out_pos <= dst_size)
|
||||
|
||||
@@ -21,4 +21,4 @@
|
||||
|
||||
#define DART_CHUNK 20960
|
||||
|
||||
#endif // AARU_CHECKSUMS_NATIVE__APPLE_RLE_H_
|
||||
#endif // AARU_CHECKSUMS_NATIVE__APPLE_RLE_H_
|
||||
|
||||
106
flac.c
106
flac.c
@@ -12,23 +12,21 @@
|
||||
#include "3rdparty/flac/include/FLAC/stream_encoder.h"
|
||||
#include "flac.h"
|
||||
|
||||
static FLAC__StreamDecoderReadStatus
|
||||
read_callback(const FLAC__StreamDecoder* decoder, FLAC__byte buffer[], size_t* bytes, void* client_data);
|
||||
static FLAC__StreamDecoderWriteStatus write_callback(const FLAC__StreamDecoder* decoder,
|
||||
const FLAC__Frame* frame,
|
||||
const FLAC__int32* const buffer[],
|
||||
void* client_data);
|
||||
static void
|
||||
error_callback(const FLAC__StreamDecoder* decoder, FLAC__StreamDecoderErrorStatus status, void* client_data);
|
||||
static FLAC__StreamDecoderReadStatus read_callback(const FLAC__StreamDecoder *decoder, FLAC__byte buffer[],
|
||||
size_t *bytes, void *client_data);
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_flac_decode_redbook_buffer(uint8_t* dst_buffer,
|
||||
size_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
size_t src_size)
|
||||
static FLAC__StreamDecoderWriteStatus write_callback(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame,
|
||||
const FLAC__int32 const *buffer[], void *client_data);
|
||||
|
||||
static void error_callback(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status,
|
||||
void *client_data);
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_flac_decode_redbook_buffer(uint8_t *dst_buffer, size_t dst_size,
|
||||
const uint8_t *src_buffer, size_t src_size)
|
||||
{
|
||||
FLAC__StreamDecoder* decoder;
|
||||
FLAC__StreamDecoder *decoder;
|
||||
FLAC__StreamDecoderInitStatus init_status;
|
||||
aaru_flac_ctx* ctx = (aaru_flac_ctx*)malloc(sizeof(aaru_flac_ctx));
|
||||
aaru_flac_ctx *ctx = (aaru_flac_ctx *)malloc(sizeof(aaru_flac_ctx));
|
||||
size_t ret_size;
|
||||
|
||||
memset(ctx, 0, sizeof(aaru_flac_ctx));
|
||||
@@ -51,8 +49,8 @@ AARU_EXPORT size_t AARU_CALL AARU_flac_decode_redbook_buffer(uint8_t* dst_
|
||||
|
||||
FLAC__stream_decoder_set_md5_checking(decoder, false);
|
||||
|
||||
init_status = FLAC__stream_decoder_init_stream(
|
||||
decoder, read_callback, NULL, NULL, NULL, NULL, write_callback, NULL, error_callback, ctx);
|
||||
init_status = FLAC__stream_decoder_init_stream(decoder, read_callback, NULL, NULL, NULL, NULL, write_callback, NULL,
|
||||
error_callback, ctx);
|
||||
|
||||
if(init_status != FLAC__STREAM_DECODER_INIT_STATUS_OK)
|
||||
{
|
||||
@@ -72,10 +70,10 @@ AARU_EXPORT size_t AARU_CALL AARU_flac_decode_redbook_buffer(uint8_t* dst_
|
||||
return ret_size;
|
||||
}
|
||||
|
||||
static FLAC__StreamDecoderReadStatus
|
||||
read_callback(const FLAC__StreamDecoder* decoder, FLAC__byte buffer[], size_t* bytes, void* client_data)
|
||||
static FLAC__StreamDecoderReadStatus read_callback(const FLAC__StreamDecoder *decoder, FLAC__byte buffer[],
|
||||
size_t *bytes, void *client_data)
|
||||
{
|
||||
aaru_flac_ctx* ctx = (aaru_flac_ctx*)client_data;
|
||||
aaru_flac_ctx *ctx = (aaru_flac_ctx *)client_data;
|
||||
|
||||
if(ctx->src_len - ctx->src_pos < *bytes) *bytes = ctx->src_len - ctx->src_pos;
|
||||
|
||||
@@ -87,14 +85,12 @@ static FLAC__StreamDecoderReadStatus
|
||||
return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
static FLAC__StreamDecoderWriteStatus write_callback(const FLAC__StreamDecoder* decoder,
|
||||
const FLAC__Frame* frame,
|
||||
const FLAC__int32* const buffer[],
|
||||
void* client_data)
|
||||
static FLAC__StreamDecoderWriteStatus write_callback(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame,
|
||||
const FLAC__int32 const *buffer[], void *client_data)
|
||||
{
|
||||
aaru_flac_ctx* ctx = (aaru_flac_ctx*)client_data;
|
||||
aaru_flac_ctx *ctx = (aaru_flac_ctx *)client_data;
|
||||
size_t i;
|
||||
uint16_t* buffer16 = (uint16_t*)(ctx->dst_buffer + ctx->dst_pos);
|
||||
uint16_t *buffer16 = (uint16_t *)(ctx->dst_buffer + ctx->dst_pos);
|
||||
|
||||
// Why FLAC does not interleave the channels as PCM do, oh the mistery, we could use memcpy instead of looping
|
||||
for(i = 0; i < frame->header.blocksize && ctx->dst_pos < ctx->dst_len; i++)
|
||||
@@ -119,47 +115,34 @@ static FLAC__StreamDecoderWriteStatus write_callback(const FLAC__StreamDecoder*
|
||||
return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
static void error_callback(const FLAC__StreamDecoder* decoder, FLAC__StreamDecoderErrorStatus status, void* client_data)
|
||||
static void error_callback(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
|
||||
{
|
||||
aaru_flac_ctx* ctx = (aaru_flac_ctx*)client_data;
|
||||
aaru_flac_ctx *ctx = (aaru_flac_ctx *)client_data;
|
||||
|
||||
fprintf(stderr, "Got error callback: %s\n", FLAC__StreamDecoderErrorStatusString[status]);
|
||||
|
||||
ctx->error = 1;
|
||||
}
|
||||
|
||||
static FLAC__StreamEncoderWriteStatus encoder_write_callback(const FLAC__StreamEncoder* encoder,
|
||||
const FLAC__byte buffer[],
|
||||
size_t bytes,
|
||||
uint32_t samples,
|
||||
uint32_t current_frame,
|
||||
void* client_data);
|
||||
static FLAC__StreamEncoderWriteStatus encoder_write_callback(const FLAC__StreamEncoder *encoder,
|
||||
const FLAC__byte buffer[], size_t bytes, uint32_t samples,
|
||||
uint32_t current_frame, void *client_data);
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_flac_encode_redbook_buffer(uint8_t* dst_buffer,
|
||||
size_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
size_t src_size,
|
||||
uint32_t blocksize,
|
||||
int32_t do_mid_side_stereo,
|
||||
int32_t loose_mid_side_stereo,
|
||||
const char* apodization,
|
||||
uint32_t max_lpc_order,
|
||||
uint32_t qlp_coeff_precision,
|
||||
int32_t do_qlp_coeff_prec_search,
|
||||
int32_t do_exhaustive_model_search,
|
||||
uint32_t min_residual_partition_order,
|
||||
uint32_t max_residual_partition_order,
|
||||
const char* application_id,
|
||||
uint32_t application_id_len)
|
||||
AARU_EXPORT size_t AARU_CALL AARU_flac_encode_redbook_buffer(
|
||||
uint8_t *dst_buffer, size_t dst_size, const uint8_t *src_buffer, size_t src_size, uint32_t blocksize,
|
||||
int32_t do_mid_side_stereo, int32_t loose_mid_side_stereo, const char *apodization, uint32_t max_lpc_order,
|
||||
uint32_t qlp_coeff_precision, int32_t do_qlp_coeff_prec_search, int32_t do_exhaustive_model_search,
|
||||
uint32_t min_residual_partition_order, uint32_t max_residual_partition_order, const char *application_id,
|
||||
uint32_t application_id_len)
|
||||
{
|
||||
FLAC__StreamEncoder* encoder;
|
||||
aaru_flac_ctx* ctx = (aaru_flac_ctx*)malloc(sizeof(aaru_flac_ctx));
|
||||
FLAC__StreamEncoder *encoder;
|
||||
aaru_flac_ctx *ctx = (aaru_flac_ctx *)malloc(sizeof(aaru_flac_ctx));
|
||||
FLAC__StreamEncoderInitStatus init_status;
|
||||
size_t ret_size;
|
||||
FLAC__int32* pcm;
|
||||
FLAC__int32 *pcm;
|
||||
int i;
|
||||
int16_t* buffer16 = (int16_t*)src_buffer;
|
||||
FLAC__StreamMetadata* metadata[1];
|
||||
int16_t *buffer16 = (int16_t *)src_buffer;
|
||||
FLAC__StreamMetadata *metadata[1];
|
||||
|
||||
memset(ctx, 0, sizeof(aaru_flac_ctx));
|
||||
|
||||
@@ -213,8 +196,8 @@ AARU_EXPORT size_t AARU_CALL AARU_flac_encode_redbook_buffer(uint8_t* dst_
|
||||
|
||||
if(application_id_len > 0 && application_id != NULL)
|
||||
if((metadata[0] = FLAC__metadata_object_new(FLAC__METADATA_TYPE_APPLICATION)) != NULL)
|
||||
FLAC__metadata_object_application_set_data(
|
||||
metadata[0], (unsigned char*)application_id, application_id_len, true);
|
||||
FLAC__metadata_object_application_set_data(metadata[0], (unsigned char *)application_id, application_id_len,
|
||||
true);
|
||||
|
||||
FLAC__stream_encoder_set_metadata(encoder, metadata, 1);
|
||||
|
||||
@@ -245,14 +228,11 @@ AARU_EXPORT size_t AARU_CALL AARU_flac_encode_redbook_buffer(uint8_t* dst_
|
||||
return ret_size;
|
||||
}
|
||||
|
||||
static FLAC__StreamEncoderWriteStatus encoder_write_callback(const FLAC__StreamEncoder* encoder,
|
||||
const FLAC__byte buffer[],
|
||||
size_t bytes,
|
||||
uint32_t samples,
|
||||
uint32_t current_frame,
|
||||
void* client_data)
|
||||
static FLAC__StreamEncoderWriteStatus encoder_write_callback(const FLAC__StreamEncoder *encoder,
|
||||
const FLAC__byte buffer[], size_t bytes, uint32_t samples,
|
||||
uint32_t current_frame, void *client_data)
|
||||
{
|
||||
aaru_flac_ctx* ctx = (aaru_flac_ctx*)client_data;
|
||||
aaru_flac_ctx *ctx = (aaru_flac_ctx *)client_data;
|
||||
|
||||
if(bytes > ctx->dst_len - ctx->dst_pos) bytes = ctx->dst_len - ctx->dst_pos;
|
||||
|
||||
|
||||
6
flac.h
6
flac.h
@@ -7,13 +7,13 @@
|
||||
|
||||
typedef struct
|
||||
{
|
||||
const uint8_t* src_buffer;
|
||||
const uint8_t *src_buffer;
|
||||
size_t src_len;
|
||||
size_t src_pos;
|
||||
uint8_t* dst_buffer;
|
||||
uint8_t *dst_buffer;
|
||||
size_t dst_len;
|
||||
size_t dst_pos;
|
||||
uint8_t error;
|
||||
} aaru_flac_ctx;
|
||||
|
||||
#endif // AARU_COMPRESSION_NATIVE__FLAC_H_
|
||||
#endif // AARU_COMPRESSION_NATIVE__FLAC_H_
|
||||
|
||||
77
library.c
77
library.c
@@ -25,86 +25,59 @@
|
||||
#include "3rdparty/lzma/C/LzmaLib.h"
|
||||
#include "3rdparty/zstd/lib/zstd.h"
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_bzip2_decode_buffer(uint8_t* dst_buffer,
|
||||
uint32_t* dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
uint32_t src_size)
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_bzip2_decode_buffer(uint8_t *dst_buffer, uint32_t *dst_size,
|
||||
const uint8_t *src_buffer, uint32_t src_size)
|
||||
{
|
||||
return BZ2_bzBuffToBuffDecompress((char*)dst_buffer, dst_size, (char*)src_buffer, src_size, 0, 0);
|
||||
return BZ2_bzBuffToBuffDecompress((char *)dst_buffer, dst_size, (char *)src_buffer, src_size, 0, 0);
|
||||
}
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_bzip2_encode_buffer(uint8_t* dst_buffer,
|
||||
uint32_t* dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
uint32_t src_size,
|
||||
int32_t blockSize100k)
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_bzip2_encode_buffer(uint8_t *dst_buffer, uint32_t *dst_size,
|
||||
const uint8_t *src_buffer, uint32_t src_size,
|
||||
int32_t blockSize100k)
|
||||
{
|
||||
return BZ2_bzBuffToBuffCompress((char*)dst_buffer, dst_size, (char*)src_buffer, src_size, blockSize100k, 0, 0);
|
||||
return BZ2_bzBuffToBuffCompress((char *)dst_buffer, dst_size, (char *)src_buffer, src_size, blockSize100k, 0, 0);
|
||||
}
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_lzfse_decode_buffer(uint8_t* dst_buffer,
|
||||
size_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
size_t src_size,
|
||||
void* scratch_buffer)
|
||||
AARU_EXPORT size_t AARU_CALL AARU_lzfse_decode_buffer(uint8_t *dst_buffer, size_t dst_size, const uint8_t *src_buffer,
|
||||
size_t src_size, void *scratch_buffer)
|
||||
{
|
||||
return lzfse_decode_buffer(dst_buffer, dst_size, src_buffer, src_size, scratch_buffer);
|
||||
}
|
||||
AARU_EXPORT size_t AARU_CALL AARU_lzfse_encode_buffer(uint8_t* dst_buffer,
|
||||
size_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
size_t src_size,
|
||||
void* scratch_buffer)
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_lzfse_encode_buffer(uint8_t *dst_buffer, size_t dst_size, const uint8_t *src_buffer,
|
||||
size_t src_size, void *scratch_buffer)
|
||||
{
|
||||
return lzfse_encode_buffer(dst_buffer, dst_size, src_buffer, src_size, scratch_buffer);
|
||||
}
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzma_decode_buffer(uint8_t* dst_buffer,
|
||||
size_t* dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
size_t* srcLen,
|
||||
const uint8_t* props,
|
||||
size_t propsSize)
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzma_decode_buffer(uint8_t *dst_buffer, size_t *dst_size, const uint8_t *src_buffer,
|
||||
size_t *srcLen, const uint8_t *props, size_t propsSize)
|
||||
{
|
||||
return LzmaUncompress(dst_buffer, dst_size, src_buffer, srcLen, props, propsSize);
|
||||
}
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzma_encode_buffer(uint8_t* dst_buffer,
|
||||
size_t* dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
size_t srcLen,
|
||||
uint8_t* outProps,
|
||||
size_t* outPropsSize,
|
||||
int32_t level,
|
||||
uint32_t dictSize,
|
||||
int32_t lc,
|
||||
int32_t lp,
|
||||
int32_t pb,
|
||||
int32_t fb,
|
||||
int32_t numThreads)
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzma_encode_buffer(uint8_t *dst_buffer, size_t *dst_size, const uint8_t *src_buffer,
|
||||
size_t srcLen, uint8_t *outProps, size_t *outPropsSize,
|
||||
int32_t level, uint32_t dictSize, int32_t lc, int32_t lp,
|
||||
int32_t pb, int32_t fb, int32_t numThreads)
|
||||
{
|
||||
return LzmaCompress(
|
||||
dst_buffer, dst_size, src_buffer, srcLen, outProps, outPropsSize, level, dictSize, lc, lp, pb, fb, numThreads);
|
||||
return LzmaCompress(dst_buffer, dst_size, src_buffer, srcLen, outProps, outPropsSize, level, dictSize, lc, lp, pb,
|
||||
fb, numThreads);
|
||||
}
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_zstd_decode_buffer(void* dst_buffer,
|
||||
size_t dst_size,
|
||||
const void* src_buffer,
|
||||
size_t src_size)
|
||||
AARU_EXPORT size_t AARU_CALL AARU_zstd_decode_buffer(void *dst_buffer, size_t dst_size, const void *src_buffer,
|
||||
size_t src_size)
|
||||
{
|
||||
return ZSTD_decompress(dst_buffer, dst_size, src_buffer, src_size);
|
||||
}
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_zstd_encode_buffer(void* dst_buffer,
|
||||
size_t dst_size,
|
||||
const void* src_buffer,
|
||||
size_t src_size,
|
||||
int32_t compressionLevel)
|
||||
AARU_EXPORT size_t AARU_CALL AARU_zstd_encode_buffer(void *dst_buffer, size_t dst_size, const void *src_buffer,
|
||||
size_t src_size, int32_t compressionLevel)
|
||||
{
|
||||
return ZSTD_compress(dst_buffer, dst_size, src_buffer, src_size, compressionLevel);
|
||||
}
|
||||
|
||||
// This is required if BZ_NO_STDIO
|
||||
void bz_internal_error ( int errcode ) { }
|
||||
void bz_internal_error(int errcode) {}
|
||||
|
||||
AARU_EXPORT uint64_t AARU_CALL AARU_get_acn_version() { return AARU_CHECKUMS_NATIVE_VERSION; }
|
||||
129
library.h
129
library.h
@@ -26,7 +26,7 @@
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define AARU_CALL __stdcall
|
||||
#define AARU_CALL __stdcall
|
||||
#define AARU_EXPORT EXTERNC __declspec(dllexport)
|
||||
#define AARU_LOCAL
|
||||
#ifndef PATH_MAX
|
||||
@@ -36,11 +36,11 @@
|
||||
#define AARU_CALL
|
||||
#if defined(__APPLE__)
|
||||
#define AARU_EXPORT EXTERNC __attribute__((visibility("default")))
|
||||
#define AARU_LOCAL __attribute__((visibility("hidden")))
|
||||
#define AARU_LOCAL __attribute__((visibility("hidden")))
|
||||
#else
|
||||
#if __GNUC__ >= 4
|
||||
#define AARU_EXPORT EXTERNC __attribute__((visibility("default")))
|
||||
#define AARU_LOCAL __attribute__((visibility("hidden")))
|
||||
#define AARU_LOCAL __attribute__((visibility("hidden")))
|
||||
#else
|
||||
#define AARU_EXPORT EXTERNC
|
||||
#define AARU_LOCAL
|
||||
@@ -54,107 +54,58 @@
|
||||
#define FORCE_INLINE static inline __attribute__((always_inline))
|
||||
#endif
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_adc_decode_buffer(uint8_t* dst_buffer,
|
||||
int32_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
int32_t src_size);
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_adc_decode_buffer(uint8_t *dst_buffer, int32_t dst_size, const uint8_t *src_buffer,
|
||||
int32_t src_size);
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_apple_rle_decode_buffer(uint8_t* dst_buffer,
|
||||
int32_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
int32_t src_size);
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_apple_rle_decode_buffer(uint8_t *dst_buffer, int32_t dst_size,
|
||||
const uint8_t *src_buffer, int32_t src_size);
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_flac_decode_redbook_buffer(uint8_t* dst_buffer,
|
||||
size_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
size_t src_size);
|
||||
AARU_EXPORT size_t AARU_CALL AARU_flac_decode_redbook_buffer(uint8_t *dst_buffer, size_t dst_size,
|
||||
const uint8_t *src_buffer, size_t src_size);
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_flac_encode_redbook_buffer(uint8_t* dst_buffer,
|
||||
size_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
size_t src_size,
|
||||
uint32_t blocksize,
|
||||
int32_t do_mid_side_stereo,
|
||||
int32_t loose_mid_side_stereo,
|
||||
const char* apodization,
|
||||
uint32_t max_lpc_order,
|
||||
uint32_t qlp_coeff_precision,
|
||||
int32_t do_qlp_coeff_prec_search,
|
||||
int32_t do_exhaustive_model_search,
|
||||
uint32_t min_residual_partition_order,
|
||||
uint32_t max_residual_partition_order,
|
||||
const char* application_id,
|
||||
uint32_t application_id_len);
|
||||
AARU_EXPORT size_t AARU_CALL AARU_flac_encode_redbook_buffer(
|
||||
uint8_t *dst_buffer, size_t dst_size, const uint8_t *src_buffer, size_t src_size, uint32_t blocksize,
|
||||
int32_t do_mid_side_stereo, int32_t loose_mid_side_stereo, const char *apodization, uint32_t max_lpc_order,
|
||||
uint32_t qlp_coeff_precision, int32_t do_qlp_coeff_prec_search, int32_t do_exhaustive_model_search,
|
||||
uint32_t min_residual_partition_order, uint32_t max_residual_partition_order, const char *application_id,
|
||||
uint32_t application_id_len);
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzip_decode_buffer(uint8_t* dst_buffer,
|
||||
int32_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
int32_t src_size);
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzip_decode_buffer(uint8_t *dst_buffer, int32_t dst_size, const uint8_t *src_buffer,
|
||||
int32_t src_size);
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzip_encode_buffer(uint8_t* dst_buffer,
|
||||
int32_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
int32_t src_size,
|
||||
int32_t dictionary_size,
|
||||
int32_t match_len_limit);
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzip_encode_buffer(uint8_t *dst_buffer, int32_t dst_size, const uint8_t *src_buffer,
|
||||
int32_t src_size, int32_t dictionary_size,
|
||||
int32_t match_len_limit);
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_bzip2_decode_buffer(uint8_t* dst_buffer,
|
||||
uint32_t* dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
uint32_t src_size);
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_bzip2_decode_buffer(uint8_t *dst_buffer, uint32_t *dst_size,
|
||||
const uint8_t *src_buffer, uint32_t src_size);
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_bzip2_encode_buffer(uint8_t* dst_buffer,
|
||||
uint32_t* dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
uint32_t src_size,
|
||||
int32_t blockSize100k);
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_bzip2_encode_buffer(uint8_t *dst_buffer, uint32_t *dst_size,
|
||||
const uint8_t *src_buffer, uint32_t src_size,
|
||||
int32_t blockSize100k);
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_lzfse_decode_buffer(uint8_t* dst_buffer,
|
||||
size_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
size_t src_size,
|
||||
void* scratch_buffer);
|
||||
AARU_EXPORT size_t AARU_CALL AARU_lzfse_decode_buffer(uint8_t *dst_buffer, size_t dst_size, const uint8_t *src_buffer,
|
||||
size_t src_size, void *scratch_buffer);
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_lzfse_encode_buffer(uint8_t* dst_buffer,
|
||||
size_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
size_t src_size,
|
||||
void* scratch_buffer);
|
||||
AARU_EXPORT size_t AARU_CALL AARU_lzfse_encode_buffer(uint8_t *dst_buffer, size_t dst_size, const uint8_t *src_buffer,
|
||||
size_t src_size, void *scratch_buffer);
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzma_decode_buffer(uint8_t* dst_buffer,
|
||||
size_t* dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
size_t* src_size,
|
||||
const uint8_t* props,
|
||||
size_t propsSize);
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzma_decode_buffer(uint8_t *dst_buffer, size_t *dst_size, const uint8_t *src_buffer,
|
||||
size_t *src_size, const uint8_t *props, size_t propsSize);
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzma_encode_buffer(uint8_t* dst_buffer,
|
||||
size_t* dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
size_t src_size,
|
||||
uint8_t* outProps,
|
||||
size_t* outPropsSize,
|
||||
int32_t level,
|
||||
uint32_t dictSize,
|
||||
int32_t lc,
|
||||
int32_t lp,
|
||||
int32_t pb,
|
||||
int32_t fb,
|
||||
int32_t numThreads);
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzma_encode_buffer(uint8_t *dst_buffer, size_t *dst_size, const uint8_t *src_buffer,
|
||||
size_t src_size, uint8_t *outProps, size_t *outPropsSize,
|
||||
int32_t level, uint32_t dictSize, int32_t lc, int32_t lp,
|
||||
int32_t pb, int32_t fb, int32_t numThreads);
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_zstd_decode_buffer(void* dst_buffer,
|
||||
size_t dst_size,
|
||||
const void* src_buffer,
|
||||
size_t src_size);
|
||||
AARU_EXPORT size_t AARU_CALL AARU_zstd_decode_buffer(void *dst_buffer, size_t dst_size, const void *src_buffer,
|
||||
size_t src_size);
|
||||
|
||||
AARU_EXPORT size_t AARU_CALL AARU_zstd_encode_buffer(void* dst_buffer,
|
||||
size_t dst_size,
|
||||
const void* src_buffer,
|
||||
size_t src_size,
|
||||
int32_t compressionLevel);
|
||||
AARU_EXPORT size_t AARU_CALL AARU_zstd_encode_buffer(void *dst_buffer, size_t dst_size, const void *src_buffer,
|
||||
size_t src_size, int32_t compressionLevel);
|
||||
|
||||
#define AARU_CHECKUMS_NATIVE_VERSION 0x06000089
|
||||
|
||||
AARU_EXPORT uint64_t AARU_CALL AARU_get_acn_version();
|
||||
|
||||
#endif // AARU_COMPRESSION_NATIVE_LIBRARY_H
|
||||
#endif // AARU_COMPRESSION_NATIVE_LIBRARY_H
|
||||
|
||||
19
lzip.c
19
lzip.c
@@ -23,13 +23,11 @@
|
||||
#include "library.h"
|
||||
#include "3rdparty/lzlib/lzlib.h"
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzip_decode_buffer(uint8_t* dst_buffer,
|
||||
int32_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
int32_t src_size)
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzip_decode_buffer(uint8_t *dst_buffer, int32_t dst_size, const uint8_t *src_buffer,
|
||||
int32_t src_size)
|
||||
{
|
||||
int max_in_size;
|
||||
void* ctx;
|
||||
void *ctx;
|
||||
enum LZ_Errno lz_err;
|
||||
int32_t in_pos = 0, out_pos = 0, in_size;
|
||||
int rd;
|
||||
@@ -83,15 +81,12 @@ AARU_EXPORT int32_t AARU_CALL AARU_lzip_decode_buffer(uint8_t* dst_buffer,
|
||||
return out_pos;
|
||||
}
|
||||
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzip_encode_buffer(uint8_t* dst_buffer,
|
||||
int32_t dst_size,
|
||||
const uint8_t* src_buffer,
|
||||
int32_t src_size,
|
||||
int32_t dictionary_size,
|
||||
int32_t match_len_limit)
|
||||
AARU_EXPORT int32_t AARU_CALL AARU_lzip_encode_buffer(uint8_t *dst_buffer, int32_t dst_size, const uint8_t *src_buffer,
|
||||
int32_t src_size, int32_t dictionary_size,
|
||||
int32_t match_len_limit)
|
||||
{
|
||||
int max_in_size;
|
||||
void* ctx;
|
||||
void *ctx;
|
||||
enum LZ_Errno lz_err;
|
||||
int32_t in_pos = 0, out_pos = 0, in_size;
|
||||
int rd;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
if("${CMAKE_C_PLATFORM_ID}" MATCHES "MinGW" OR "${AARU_BUILD_PACKAGE}" MATCHES 1)
|
||||
return()
|
||||
return()
|
||||
endif()
|
||||
|
||||
# 'Google_test' is the subproject name
|
||||
|
||||
@@ -20,25 +20,25 @@
|
||||
#include <cstdint>
|
||||
#include <cstring>
|
||||
|
||||
#include "../adc.h"
|
||||
#include "../library.h"
|
||||
#include "../adc.h"
|
||||
#include "crc32.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#define EXPECTED_CRC32 0x5a5a7388
|
||||
|
||||
static const uint8_t* buffer;
|
||||
static const uint8_t *buffer;
|
||||
|
||||
class adcFixture : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
public:
|
||||
adcFixture()
|
||||
{
|
||||
// initialization;
|
||||
// can also be done in SetUp()
|
||||
}
|
||||
|
||||
protected:
|
||||
protected:
|
||||
void SetUp()
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
@@ -47,13 +47,13 @@ class adcFixture : public ::testing::Test
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/adc.bin", path);
|
||||
|
||||
FILE* file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t*)malloc(34367);
|
||||
fread((void*)buffer, 1, 34367, file);
|
||||
FILE *file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t *)malloc(34367);
|
||||
fread((void *)buffer, 1, 34367, file);
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
void TearDown() { free((void*)buffer); }
|
||||
void TearDown() { free((void *)buffer); }
|
||||
|
||||
~adcFixture()
|
||||
{
|
||||
@@ -65,7 +65,7 @@ class adcFixture : public ::testing::Test
|
||||
|
||||
TEST_F(adcFixture, adc)
|
||||
{
|
||||
auto* outBuf = (uint8_t*)malloc(327680);
|
||||
auto *outBuf = (uint8_t *)malloc(327680);
|
||||
|
||||
auto decoded = AARU_adc_decode_buffer(outBuf, 327680, buffer, 34367);
|
||||
|
||||
|
||||
@@ -20,25 +20,25 @@
|
||||
#include <cstdint>
|
||||
#include <cstring>
|
||||
|
||||
#include "../apple_rle.h"
|
||||
#include "../library.h"
|
||||
#include "../apple_rle.h"
|
||||
#include "crc32.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#define EXPECTED_CRC32 0x3525ef06
|
||||
|
||||
static const uint8_t* buffer;
|
||||
static const uint8_t *buffer;
|
||||
|
||||
class apple_rleFixture : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
public:
|
||||
apple_rleFixture()
|
||||
{
|
||||
// initialization;
|
||||
// can also be done in SetUp()
|
||||
}
|
||||
|
||||
protected:
|
||||
protected:
|
||||
void SetUp()
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
@@ -47,13 +47,13 @@ class apple_rleFixture : public ::testing::Test
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/apple_rle.bin", path);
|
||||
|
||||
FILE* file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t*)malloc(1102);
|
||||
fread((void*)buffer, 1, 1102, file);
|
||||
FILE *file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t *)malloc(1102);
|
||||
fread((void *)buffer, 1, 1102, file);
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
void TearDown() { free((void*)buffer); }
|
||||
void TearDown() { free((void *)buffer); }
|
||||
|
||||
~apple_rleFixture()
|
||||
{
|
||||
@@ -65,7 +65,7 @@ class apple_rleFixture : public ::testing::Test
|
||||
|
||||
TEST_F(apple_rleFixture, apple_rle)
|
||||
{
|
||||
auto* outBuf = (uint8_t*)malloc(32768);
|
||||
auto *outBuf = (uint8_t *)malloc(32768);
|
||||
|
||||
auto decoded = AARU_apple_rle_decode_buffer(outBuf, 32768, buffer, 1102);
|
||||
|
||||
|
||||
@@ -26,18 +26,18 @@
|
||||
|
||||
#define EXPECTED_CRC32 0xc64059c0
|
||||
|
||||
static const uint8_t* buffer;
|
||||
static const uint8_t *buffer;
|
||||
|
||||
class bzip2Fixture : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
public:
|
||||
bzip2Fixture()
|
||||
{
|
||||
// initialization;
|
||||
// can also be done in SetUp()
|
||||
}
|
||||
|
||||
protected:
|
||||
protected:
|
||||
void SetUp()
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
@@ -46,13 +46,13 @@ class bzip2Fixture : public ::testing::Test
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/bzip2.bz2", path);
|
||||
|
||||
FILE* file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t*)malloc(1053934);
|
||||
fread((void*)buffer, 1, 1053934, file);
|
||||
FILE *file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t *)malloc(1053934);
|
||||
fread((void *)buffer, 1, 1053934, file);
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
void TearDown() { free((void*)buffer); }
|
||||
void TearDown() { free((void *)buffer); }
|
||||
|
||||
~bzip2Fixture()
|
||||
{
|
||||
@@ -65,7 +65,7 @@ class bzip2Fixture : public ::testing::Test
|
||||
TEST_F(bzip2Fixture, bzip2)
|
||||
{
|
||||
uint real_size = 1048576;
|
||||
auto* outBuf = (uint8_t*)malloc(1048576);
|
||||
auto *outBuf = (uint8_t *)malloc(1048576);
|
||||
|
||||
auto bz_err = AARU_bzip2_decode_buffer(outBuf, &real_size, buffer, 1053934);
|
||||
|
||||
@@ -87,24 +87,24 @@ TEST_F(bzip2Fixture, bzip2Compress)
|
||||
uint decmp_len = original_len;
|
||||
char path[PATH_MAX];
|
||||
char filename[PATH_MAX * 2];
|
||||
FILE* file;
|
||||
FILE *file;
|
||||
uint32_t original_crc, decmp_crc;
|
||||
int bz_err;
|
||||
const uint8_t* original;
|
||||
uint8_t* cmp_buffer;
|
||||
uint8_t* decmp_buffer;
|
||||
const uint8_t *original;
|
||||
uint8_t *cmp_buffer;
|
||||
uint8_t *decmp_buffer;
|
||||
|
||||
// Allocate buffers
|
||||
original = (const uint8_t*)malloc(original_len);
|
||||
cmp_buffer = (uint8_t*)malloc(cmp_len);
|
||||
decmp_buffer = (uint8_t*)malloc(decmp_len);
|
||||
original = (const uint8_t *)malloc(original_len);
|
||||
cmp_buffer = (uint8_t *)malloc(cmp_len);
|
||||
decmp_buffer = (uint8_t *)malloc(decmp_len);
|
||||
|
||||
// Read the file
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/data.bin", path);
|
||||
|
||||
file = fopen(filename, "rb");
|
||||
fread((void*)original, 1, original_len, file);
|
||||
fread((void *)original, 1, original_len, file);
|
||||
fclose(file);
|
||||
|
||||
// Calculate the CRC
|
||||
@@ -125,7 +125,7 @@ TEST_F(bzip2Fixture, bzip2Compress)
|
||||
decmp_crc = crc32_data(decmp_buffer, decmp_len);
|
||||
|
||||
// Free buffers
|
||||
free((void*)original);
|
||||
free((void *)original);
|
||||
free(cmp_buffer);
|
||||
free(decmp_buffer);
|
||||
|
||||
|
||||
@@ -19,37 +19,38 @@
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define CRC32_ISO_POLY 0xEDB88320
|
||||
#define CRC32_ISO_SEED 0xFFFFFFFF
|
||||
|
||||
uint32_t crc32_data(const uint8_t *data, uint32_t len)
|
||||
{
|
||||
uint32_t localHashInt = CRC32_ISO_SEED;
|
||||
uint32_t localTable[256];
|
||||
int i, j;
|
||||
|
||||
for(i = 0; i < 256; i++)
|
||||
uint32_t crc32_data(const uint8_t *data, uint32_t len)
|
||||
{
|
||||
uint32_t entry = (uint32_t)i;
|
||||
uint32_t localHashInt = CRC32_ISO_SEED;
|
||||
uint32_t localTable[256];
|
||||
int i, j;
|
||||
|
||||
for(j = 0; j < 8; j++)
|
||||
if((entry & 1) == 1)
|
||||
entry = (entry >> 1) ^ CRC32_ISO_POLY;
|
||||
else
|
||||
entry >>= 1;
|
||||
for(i = 0; i < 256; i++)
|
||||
{
|
||||
uint32_t entry = (uint32_t)i;
|
||||
|
||||
localTable[i] = entry;
|
||||
for(j = 0; j < 8; j++)
|
||||
if((entry & 1) == 1)
|
||||
entry = (entry >> 1) ^ CRC32_ISO_POLY;
|
||||
else
|
||||
entry >>= 1;
|
||||
|
||||
localTable[i] = entry;
|
||||
}
|
||||
|
||||
for(i = 0; i < len; i++) localHashInt = (localHashInt >> 8) ^ localTable[data[i] ^ (localHashInt & 0xff)];
|
||||
|
||||
localHashInt ^= CRC32_ISO_SEED;
|
||||
|
||||
return localHashInt;
|
||||
}
|
||||
|
||||
for(i = 0; i < len; i++)
|
||||
localHashInt = (localHashInt >> 8) ^ localTable[data[i] ^ (localHashInt & 0xff)];
|
||||
|
||||
localHashInt ^= CRC32_ISO_SEED;
|
||||
|
||||
return localHashInt;
|
||||
}
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -23,8 +23,9 @@ extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
uint32_t crc32_data(const uint8_t* data, uint32_t len);
|
||||
uint32_t crc32_data(const uint8_t *data, uint32_t len);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif // AARU_CHECKSUMS_NATIVE_TESTS_CRC32_H_
|
||||
#endif // AARU_CHECKSUMS_NATIVE_TESTS_CRC32_H_
|
||||
|
||||
@@ -20,25 +20,25 @@
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
|
||||
#include "../flac.h"
|
||||
#include "../library.h"
|
||||
#include "../flac.h"
|
||||
#include "crc32.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#define EXPECTED_CRC32 0xdfbc99bb
|
||||
|
||||
static const uint8_t* buffer;
|
||||
static const uint8_t *buffer;
|
||||
|
||||
class flacFixture : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
public:
|
||||
flacFixture()
|
||||
{
|
||||
// initialization;
|
||||
// can also be done in SetUp()
|
||||
}
|
||||
|
||||
protected:
|
||||
protected:
|
||||
void SetUp()
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
@@ -47,13 +47,13 @@ class flacFixture : public ::testing::Test
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/flac.flac", path);
|
||||
|
||||
FILE* file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t*)malloc(6534197);
|
||||
fread((void*)buffer, 1, 6534197, file);
|
||||
FILE *file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t *)malloc(6534197);
|
||||
fread((void *)buffer, 1, 6534197, file);
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
void TearDown() { free((void*)buffer); }
|
||||
void TearDown() { free((void *)buffer); }
|
||||
|
||||
~flacFixture()
|
||||
{
|
||||
@@ -65,7 +65,7 @@ class flacFixture : public ::testing::Test
|
||||
|
||||
TEST_F(flacFixture, flac)
|
||||
{
|
||||
auto* outBuf = (uint8_t*)malloc(9633792);
|
||||
auto *outBuf = (uint8_t *)malloc(9633792);
|
||||
|
||||
auto decoded = AARU_flac_decode_redbook_buffer(outBuf, 9633792, buffer, 6534197);
|
||||
|
||||
@@ -85,46 +85,33 @@ TEST_F(flacFixture, flacCompress)
|
||||
uint decmp_len = original_len;
|
||||
char path[PATH_MAX];
|
||||
char filename[PATH_MAX * 2];
|
||||
FILE* file;
|
||||
FILE *file;
|
||||
uint32_t original_crc, decmp_crc;
|
||||
const uint8_t* original;
|
||||
uint8_t* cmp_buffer;
|
||||
uint8_t* decmp_buffer;
|
||||
const uint8_t *original;
|
||||
uint8_t *cmp_buffer;
|
||||
uint8_t *decmp_buffer;
|
||||
size_t newSize;
|
||||
|
||||
// Allocate buffers
|
||||
original = (const uint8_t*)malloc(original_len);
|
||||
cmp_buffer = (uint8_t*)malloc(cmp_len);
|
||||
decmp_buffer = (uint8_t*)malloc(decmp_len);
|
||||
original = (const uint8_t *)malloc(original_len);
|
||||
cmp_buffer = (uint8_t *)malloc(cmp_len);
|
||||
decmp_buffer = (uint8_t *)malloc(decmp_len);
|
||||
|
||||
// Read the file
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/audio.bin", path);
|
||||
|
||||
file = fopen(filename, "rb");
|
||||
fread((void*)original, 1, original_len, file);
|
||||
fread((void *)original, 1, original_len, file);
|
||||
fclose(file);
|
||||
|
||||
// Calculate the CRC
|
||||
original_crc = crc32_data(original, original_len);
|
||||
|
||||
// Compress
|
||||
newSize = AARU_flac_encode_redbook_buffer(cmp_buffer,
|
||||
cmp_len,
|
||||
original,
|
||||
original_len,
|
||||
4608,
|
||||
1,
|
||||
0,
|
||||
"partial_tukey(0/1.0/1.0)",
|
||||
12,
|
||||
0,
|
||||
1,
|
||||
false,
|
||||
0,
|
||||
8,
|
||||
"Aaru.Compression.Native.Tests",
|
||||
strlen("Aaru.Compression.Native.Tests"));
|
||||
newSize = AARU_flac_encode_redbook_buffer(cmp_buffer, cmp_len, original, original_len, 4608, 1, 0,
|
||||
"partial_tukey(0/1.0/1.0)", 12, 0, 1, false, 0, 8,
|
||||
"Aaru.Compression.Native.Tests", strlen("Aaru.Compression.Native.Tests"));
|
||||
cmp_len = newSize;
|
||||
|
||||
// Decompress
|
||||
@@ -136,7 +123,7 @@ TEST_F(flacFixture, flacCompress)
|
||||
decmp_crc = crc32_data(decmp_buffer, decmp_len);
|
||||
|
||||
// Free buffers
|
||||
free((void*)original);
|
||||
free((void *)original);
|
||||
free(cmp_buffer);
|
||||
free(decmp_buffer);
|
||||
|
||||
|
||||
@@ -26,18 +26,18 @@
|
||||
|
||||
#define EXPECTED_CRC32 0xc64059c0
|
||||
|
||||
static const uint8_t* buffer;
|
||||
static const uint8_t *buffer;
|
||||
|
||||
class lzfseFixture : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
public:
|
||||
lzfseFixture()
|
||||
{
|
||||
// initialization;
|
||||
// can also be done in SetUp()
|
||||
}
|
||||
|
||||
protected:
|
||||
protected:
|
||||
void SetUp()
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
@@ -46,13 +46,13 @@ class lzfseFixture : public ::testing::Test
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/lzfse.bin", path);
|
||||
|
||||
FILE* file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t*)malloc(1059299);
|
||||
fread((void*)buffer, 1, 1059299, file);
|
||||
FILE *file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t *)malloc(1059299);
|
||||
fread((void *)buffer, 1, 1059299, file);
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
void TearDown() { free((void*)buffer); }
|
||||
void TearDown() { free((void *)buffer); }
|
||||
|
||||
~lzfseFixture()
|
||||
{
|
||||
@@ -64,7 +64,7 @@ class lzfseFixture : public ::testing::Test
|
||||
|
||||
TEST_F(lzfseFixture, lzfse)
|
||||
{
|
||||
auto* outBuf = (uint8_t*)malloc(1048576);
|
||||
auto *outBuf = (uint8_t *)malloc(1048576);
|
||||
|
||||
auto decoded = AARU_lzfse_decode_buffer(outBuf, 1048576, buffer, 1059299, nullptr);
|
||||
|
||||
@@ -84,24 +84,24 @@ TEST_F(lzfseFixture, lzfseCompress)
|
||||
uint decmp_len = original_len;
|
||||
char path[PATH_MAX];
|
||||
char filename[PATH_MAX * 2];
|
||||
FILE* file;
|
||||
FILE *file;
|
||||
uint32_t original_crc, decmp_crc;
|
||||
const uint8_t* original;
|
||||
uint8_t* cmp_buffer;
|
||||
uint8_t* decmp_buffer;
|
||||
const uint8_t *original;
|
||||
uint8_t *cmp_buffer;
|
||||
uint8_t *decmp_buffer;
|
||||
size_t newSize;
|
||||
|
||||
// Allocate buffers
|
||||
original = (const uint8_t*)malloc(original_len);
|
||||
cmp_buffer = (uint8_t*)malloc(cmp_len);
|
||||
decmp_buffer = (uint8_t*)malloc(decmp_len);
|
||||
original = (const uint8_t *)malloc(original_len);
|
||||
cmp_buffer = (uint8_t *)malloc(cmp_len);
|
||||
decmp_buffer = (uint8_t *)malloc(decmp_len);
|
||||
|
||||
// Read the file
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/data.bin", path);
|
||||
|
||||
file = fopen(filename, "rb");
|
||||
fread((void*)original, 1, original_len, file);
|
||||
fread((void *)original, 1, original_len, file);
|
||||
fclose(file);
|
||||
|
||||
// Calculate the CRC
|
||||
@@ -120,7 +120,7 @@ TEST_F(lzfseFixture, lzfseCompress)
|
||||
decmp_crc = crc32_data(decmp_buffer, decmp_len);
|
||||
|
||||
// Free buffers
|
||||
free((void*)original);
|
||||
free((void *)original);
|
||||
free(cmp_buffer);
|
||||
free(decmp_buffer);
|
||||
|
||||
|
||||
@@ -26,18 +26,18 @@
|
||||
|
||||
#define EXPECTED_CRC32 0xc64059c0
|
||||
|
||||
static const uint8_t* buffer;
|
||||
static const uint8_t *buffer;
|
||||
|
||||
class lzipFixture : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
public:
|
||||
lzipFixture()
|
||||
{
|
||||
// initialization;
|
||||
// can also be done in SetUp()
|
||||
}
|
||||
|
||||
protected:
|
||||
protected:
|
||||
void SetUp()
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
@@ -46,13 +46,13 @@ class lzipFixture : public ::testing::Test
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/lzip.lz", path);
|
||||
|
||||
FILE* file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t*)malloc(1062874);
|
||||
fread((void*)buffer, 1, 1062874, file);
|
||||
FILE *file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t *)malloc(1062874);
|
||||
fread((void *)buffer, 1, 1062874, file);
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
void TearDown() { free((void*)buffer); }
|
||||
void TearDown() { free((void *)buffer); }
|
||||
|
||||
~lzipFixture()
|
||||
{
|
||||
@@ -64,7 +64,7 @@ class lzipFixture : public ::testing::Test
|
||||
|
||||
TEST_F(lzipFixture, lzip)
|
||||
{
|
||||
auto* outBuf = (uint8_t*)malloc(1048576);
|
||||
auto *outBuf = (uint8_t *)malloc(1048576);
|
||||
|
||||
auto decoded = AARU_lzip_decode_buffer(outBuf, 1048576, buffer, 1062874);
|
||||
|
||||
@@ -84,24 +84,24 @@ TEST_F(lzipFixture, lzipCompress)
|
||||
int32_t decmp_len = original_len;
|
||||
char path[PATH_MAX];
|
||||
char filename[PATH_MAX * 2];
|
||||
FILE* file;
|
||||
FILE *file;
|
||||
uint32_t original_crc, decmp_crc;
|
||||
const uint8_t* original;
|
||||
uint8_t* cmp_buffer;
|
||||
uint8_t* decmp_buffer;
|
||||
const uint8_t *original;
|
||||
uint8_t *cmp_buffer;
|
||||
uint8_t *decmp_buffer;
|
||||
int32_t newSize;
|
||||
|
||||
// Allocate buffers
|
||||
original = (const uint8_t*)malloc(original_len);
|
||||
cmp_buffer = (uint8_t*)malloc(cmp_len);
|
||||
decmp_buffer = (uint8_t*)malloc(decmp_len);
|
||||
original = (const uint8_t *)malloc(original_len);
|
||||
cmp_buffer = (uint8_t *)malloc(cmp_len);
|
||||
decmp_buffer = (uint8_t *)malloc(decmp_len);
|
||||
|
||||
// Read the file
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/data.bin", path);
|
||||
|
||||
file = fopen(filename, "rb");
|
||||
fread((void*)original, 1, original_len, file);
|
||||
fread((void *)original, 1, original_len, file);
|
||||
fclose(file);
|
||||
|
||||
// Calculate the CRC
|
||||
@@ -120,7 +120,7 @@ TEST_F(lzipFixture, lzipCompress)
|
||||
decmp_crc = crc32_data(decmp_buffer, decmp_len);
|
||||
|
||||
// Free buffers
|
||||
free((void*)original);
|
||||
free((void *)original);
|
||||
free(cmp_buffer);
|
||||
free(decmp_buffer);
|
||||
|
||||
|
||||
@@ -26,18 +26,18 @@
|
||||
|
||||
#define EXPECTED_CRC32 0x954bf76e
|
||||
|
||||
static const uint8_t* buffer;
|
||||
static const uint8_t *buffer;
|
||||
|
||||
class lzmaFixture : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
public:
|
||||
lzmaFixture()
|
||||
{
|
||||
// initialization;
|
||||
// can also be done in SetUp()
|
||||
}
|
||||
|
||||
protected:
|
||||
protected:
|
||||
void SetUp()
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
@@ -46,13 +46,13 @@ class lzmaFixture : public ::testing::Test
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/lzma.bin", path);
|
||||
|
||||
FILE* file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t*)malloc(1200275);
|
||||
fread((void*)buffer, 1, 1200275, file);
|
||||
FILE *file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t *)malloc(1200275);
|
||||
fread((void *)buffer, 1, 1200275, file);
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
void TearDown() { free((void*)buffer); }
|
||||
void TearDown() { free((void *)buffer); }
|
||||
|
||||
~lzmaFixture()
|
||||
{
|
||||
@@ -67,7 +67,7 @@ TEST_F(lzmaFixture, lzma)
|
||||
uint8_t params[] = {0x5D, 0x00, 0x00, 0x00, 0x02};
|
||||
size_t destLen = 8388608;
|
||||
size_t srcLen = 1200275;
|
||||
auto* outBuf = (uint8_t*)malloc(8388608);
|
||||
auto *outBuf = (uint8_t *)malloc(8388608);
|
||||
|
||||
auto err = AARU_lzma_decode_buffer(outBuf, &destLen, buffer, &srcLen, params, 5);
|
||||
|
||||
@@ -88,34 +88,34 @@ TEST_F(lzmaFixture, lzmaCompress)
|
||||
size_t decmp_len = original_len;
|
||||
char path[PATH_MAX];
|
||||
char filename[PATH_MAX * 2];
|
||||
FILE* file;
|
||||
FILE *file;
|
||||
uint32_t original_crc, decmp_crc;
|
||||
const uint8_t* original;
|
||||
uint8_t* cmp_buffer;
|
||||
uint8_t* decmp_buffer;
|
||||
const uint8_t *original;
|
||||
uint8_t *cmp_buffer;
|
||||
uint8_t *decmp_buffer;
|
||||
int err;
|
||||
uint8_t props[5];
|
||||
size_t props_len = 5;
|
||||
|
||||
// Allocate buffers
|
||||
original = (const uint8_t*)malloc(original_len);
|
||||
cmp_buffer = (uint8_t*)malloc(cmp_len);
|
||||
decmp_buffer = (uint8_t*)malloc(decmp_len);
|
||||
original = (const uint8_t *)malloc(original_len);
|
||||
cmp_buffer = (uint8_t *)malloc(cmp_len);
|
||||
decmp_buffer = (uint8_t *)malloc(decmp_len);
|
||||
|
||||
// Read the file
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/data.bin", path);
|
||||
|
||||
file = fopen(filename, "rb");
|
||||
fread((void*)original, 1, original_len, file);
|
||||
fread((void *)original, 1, original_len, file);
|
||||
fclose(file);
|
||||
|
||||
// Calculate the CRC
|
||||
original_crc = crc32_data(original, original_len);
|
||||
|
||||
// Compress
|
||||
err = AARU_lzma_encode_buffer(
|
||||
cmp_buffer, &cmp_len, original, original_len, props, &props_len, 9, 1048576, 3, 0, 2, 273, 2);
|
||||
err = AARU_lzma_encode_buffer(cmp_buffer, &cmp_len, original, original_len, props, &props_len, 9, 1048576, 3, 0, 2,
|
||||
273, 2);
|
||||
EXPECT_EQ(err, 0);
|
||||
|
||||
// Decompress
|
||||
@@ -127,7 +127,7 @@ TEST_F(lzmaFixture, lzmaCompress)
|
||||
decmp_crc = crc32_data(decmp_buffer, decmp_len);
|
||||
|
||||
// Free buffers
|
||||
free((void*)original);
|
||||
free((void *)original);
|
||||
free(cmp_buffer);
|
||||
free(decmp_buffer);
|
||||
|
||||
|
||||
@@ -26,18 +26,18 @@
|
||||
|
||||
#define EXPECTED_CRC32 0xc64059c0
|
||||
|
||||
static const uint8_t* buffer;
|
||||
static const uint8_t *buffer;
|
||||
|
||||
class zstdFixture : public ::testing::Test
|
||||
{
|
||||
public:
|
||||
public:
|
||||
zstdFixture()
|
||||
{
|
||||
// initialization;
|
||||
// can also be done in SetUp()
|
||||
}
|
||||
|
||||
protected:
|
||||
protected:
|
||||
void SetUp()
|
||||
{
|
||||
char path[PATH_MAX];
|
||||
@@ -46,13 +46,13 @@ class zstdFixture : public ::testing::Test
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/zstd.zst", path);
|
||||
|
||||
FILE* file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t*)malloc(1048613);
|
||||
fread((void*)buffer, 1, 1048613, file);
|
||||
FILE *file = fopen(filename, "rb");
|
||||
buffer = (const uint8_t *)malloc(1048613);
|
||||
fread((void *)buffer, 1, 1048613, file);
|
||||
fclose(file);
|
||||
}
|
||||
|
||||
void TearDown() { free((void*)buffer); }
|
||||
void TearDown() { free((void *)buffer); }
|
||||
|
||||
~zstdFixture()
|
||||
{
|
||||
@@ -64,7 +64,7 @@ class zstdFixture : public ::testing::Test
|
||||
|
||||
TEST_F(zstdFixture, zstd)
|
||||
{
|
||||
auto* outBuf = (uint8_t*)malloc(1048576);
|
||||
auto *outBuf = (uint8_t *)malloc(1048576);
|
||||
|
||||
auto decoded = AARU_zstd_decode_buffer(outBuf, 1048576, buffer, 1048613);
|
||||
|
||||
@@ -84,24 +84,24 @@ TEST_F(zstdFixture, zstdCompress)
|
||||
uint decmp_len = original_len;
|
||||
char path[PATH_MAX];
|
||||
char filename[PATH_MAX * 2];
|
||||
FILE* file;
|
||||
FILE *file;
|
||||
uint32_t original_crc, decmp_crc;
|
||||
const uint8_t* original;
|
||||
uint8_t* cmp_buffer;
|
||||
uint8_t* decmp_buffer;
|
||||
const uint8_t *original;
|
||||
uint8_t *cmp_buffer;
|
||||
uint8_t *decmp_buffer;
|
||||
size_t newSize;
|
||||
|
||||
// Allocate buffers
|
||||
original = (const uint8_t*)malloc(original_len);
|
||||
cmp_buffer = (uint8_t*)malloc(cmp_len);
|
||||
decmp_buffer = (uint8_t*)malloc(decmp_len);
|
||||
original = (const uint8_t *)malloc(original_len);
|
||||
cmp_buffer = (uint8_t *)malloc(cmp_len);
|
||||
decmp_buffer = (uint8_t *)malloc(decmp_len);
|
||||
|
||||
// Read the file
|
||||
getcwd(path, PATH_MAX);
|
||||
snprintf(filename, PATH_MAX, "%s/data/data.bin", path);
|
||||
|
||||
file = fopen(filename, "rb");
|
||||
fread((void*)original, 1, original_len, file);
|
||||
fread((void *)original, 1, original_len, file);
|
||||
fclose(file);
|
||||
|
||||
// Calculate the CRC
|
||||
@@ -120,7 +120,7 @@ TEST_F(zstdFixture, zstdCompress)
|
||||
decmp_crc = crc32_data(decmp_buffer, decmp_len);
|
||||
|
||||
// Free buffers
|
||||
free((void*)original);
|
||||
free((void *)original);
|
||||
free(cmp_buffer);
|
||||
free(decmp_buffer);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user