#!/usr/bin/cmake cmake_minimum_required (VERSION 3.18) # ------------------------------------------------------------------------------------------------- project( LZMA-SDK VERSION 19.0.0 DESCRIPTION "Compression algorithm achieving very high compression ratios" ) include("../../BuildSystem/cmake/cplusplus.cmake") # ------------------------------------------------------------------------------------------------- if(NOT EXISTS ${PROJECT_SOURCE_DIR}/downloads/lzma1900.7z) message(STATUS "Downloading LZMA-SDK sources") file( DOWNLOAD https://www.7-zip.org/a/lzma1900.7z ${PROJECT_SOURCE_DIR}/downloads/lzma1900.7z SHOW_PROGRESS EXPECTED_HASH SHA256=00f569e624b3d9ed89cf8d40136662c4c5207eaceb92a70b1044c77f84234bad ) endif() # ------------------------------------------------------------------------------------------------- if(NOT EXISTS ${PROJECT_SOURCE_DIR}/build) message(STATUS "Extracting LZMA-SDK sources") file( ARCHIVE_EXTRACT INPUT ${PROJECT_SOURCE_DIR}/downloads/lzma1900.7z DESTINATION ${CMAKE_BINARY_DIR}/extract ) file( RENAME ${CMAKE_BINARY_DIR}/extract ${PROJECT_SOURCE_DIR}/build ) endif() # ------------------------------------------------------------------------------------------------- set( sourceFiles "build/C/Lzma2Dec.c" "build/C/Lzma2Enc.c" "build/C/Lzma86Dec.c" "build/C/Lzma86Enc.c" "build/C/LzmaDec.c" "build/C/LzmaEnc.c" "build/C/LzmaLib.c" "build/C/Ppmd7.c" "build/C/Ppmd7Dec.c" "build/C/Ppmd7Enc.c" "build/C/Sha256.c" "build/C/Xz.c" "build/C/XzCrc64.c" "build/C/XzCrc64Opt.c" "build/C/XzDec.c" "build/C/XzEnc.c" "build/C/XzIn.c" ) set( headerFiles "build/C/LzFindMt.h" "build/C/MtDec.h" "build/C/7z.h" "build/C/7zAlloc.h" "build/C/7zBuf.h" "build/C/7zCrc.h" "build/C/7zFile.h" "build/C/7zTypes.h" "build/C/7zVersion.h" "build/C/Aes.h" "build/C/Alloc.h" "build/C/Bcj2.h" "build/C/Bra.h" "build/C/Compiler.h" "build/C/CpuArch.h" "build/C/Delta.h" "build/C/DllSecur.h" "build/C/LzFind.h" "build/C/LzHash.h" "build/C/Lzma2Dec.h" "build/C/Lzma2DecMt.h" "build/C/Lzma2Enc.h" "build/C/Lzma86.h" "build/C/LzmaDec.h" "build/C/LzmaEnc.h" "build/C/LzmaLib.h" "build/C/MtCoder.h" "build/C/Ppmd.h" "build/C/Ppmd7.h" "build/C/Precomp.h" "build/C/RotateDefs.h" "build/C/Sha256.h" "build/C/Sort.h" "build/C/Threads.h" "build/C/Util/7z/Precomp.h" "build/C/Util/SfxSetup/Precomp.h" "build/C/Xz.h" "build/C/XzCrc64.h" "build/C/XzEnc.h" ) # ------------------------------------------------------------------------------------------------- add_library(LZMA-SDK STATIC) add_library(LZMA-SDK::Static ALIAS LZMA-SDK) target_compile_definitions( LZMA-SDK PUBLIC _7ZIP_ST ) if(WIN32) target_compile_definitions( LZMA-SDK PUBLIC _WIN32 ) endif() target_include_directories( LZMA-SDK PUBLIC "build/C" ) target_sources( LZMA-SDK PUBLIC ${headerFiles} PRIVATE ${sourceFiles} ) #set_target_properties(LZMA-SDK PROPERTIES PREFIX "") set_target_properties(LZMA-SDK PROPERTIES OUTPUT_NAME "lzma") # ------------------------------------------------------------------------------------------------- install( TARGETS LZMA-SDK ARCHIVE DESTINATION ${PROJECT_SOURCE_DIR}/bin/${CMAKE_COMPILER_TAG} ) # -------------------------------------------------------------------------------------------------