blob: 3b8ac7705f90180ca04a537bab9612bac47b005b [file] [log] [blame]
We can't run the configure script on Windows, and the only thing lzma provides
for Windows are msbuild files which do not integrate well into our CMake build system,
so we create a Windows-specific CMakeLists.txt for the project.
diff -rupN orig/CMakeLists.txt patched/CMakeLists.txt
--- orig/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
+++ patched/CMakeLists.txt 2020-03-31 21:52:39.000000000 +0200
@@ -0,0 +1,114 @@
+cmake_minimum_required(VERSION 3.7)
+
+project(liblzma)
+
+set(SOURCES src/common/tuklib_cpucores.c
+ src/common/tuklib_physmem.c
+ src/liblzma/check/check.c
+ src/liblzma/check/crc32_fast.c
+ src/liblzma/check/crc32_table.c
+ src/liblzma/check/crc64_fast.c
+ src/liblzma/check/crc64_table.c
+ src/liblzma/check/sha256.c
+ src/liblzma/common/alone_decoder.c
+ src/liblzma/common/alone_encoder.c
+ src/liblzma/common/auto_decoder.c
+ src/liblzma/common/block_buffer_decoder.c
+ src/liblzma/common/block_buffer_encoder.c
+ src/liblzma/common/block_decoder.c
+ src/liblzma/common/block_encoder.c
+ src/liblzma/common/block_header_decoder.c
+ src/liblzma/common/block_header_encoder.c
+ src/liblzma/common/block_util.c
+ src/liblzma/common/common.c
+ src/liblzma/common/easy_buffer_encoder.c
+ src/liblzma/common/easy_decoder_memusage.c
+ src/liblzma/common/easy_encoder.c
+ src/liblzma/common/easy_encoder_memusage.c
+ src/liblzma/common/easy_preset.c
+ src/liblzma/common/filter_buffer_decoder.c
+ src/liblzma/common/filter_buffer_encoder.c
+ src/liblzma/common/filter_common.c
+ src/liblzma/common/filter_decoder.c
+ src/liblzma/common/filter_encoder.c
+ src/liblzma/common/filter_flags_decoder.c
+ src/liblzma/common/filter_flags_encoder.c
+ src/liblzma/common/hardware_cputhreads.c
+ src/liblzma/common/hardware_physmem.c
+ src/liblzma/common/index.c
+ src/liblzma/common/index_decoder.c
+ src/liblzma/common/index_encoder.c
+ src/liblzma/common/index_hash.c
+ src/liblzma/common/outqueue.c
+ src/liblzma/common/stream_buffer_decoder.c
+ src/liblzma/common/stream_buffer_encoder.c
+ src/liblzma/common/stream_decoder.c
+ src/liblzma/common/stream_encoder.c
+ src/liblzma/common/stream_encoder_mt.c
+ src/liblzma/common/stream_flags_common.c
+ src/liblzma/common/stream_flags_decoder.c
+ src/liblzma/common/stream_flags_encoder.c
+ src/liblzma/common/vli_decoder.c
+ src/liblzma/common/vli_encoder.c
+ src/liblzma/common/vli_size.c
+ src/liblzma/delta/delta_common.c
+ src/liblzma/delta/delta_decoder.c
+ src/liblzma/delta/delta_encoder.c
+ src/liblzma/lzma/fastpos_table.c
+ src/liblzma/lzma/lzma2_decoder.c
+ src/liblzma/lzma/lzma2_encoder.c
+ src/liblzma/lzma/lzma_decoder.c
+ src/liblzma/lzma/lzma_encoder.c
+ src/liblzma/lzma/lzma_encoder_optimum_fast.c
+ src/liblzma/lzma/lzma_encoder_optimum_normal.c
+ src/liblzma/lzma/lzma_encoder_presets.c
+ src/liblzma/lz/lz_decoder.c
+ src/liblzma/lz/lz_encoder.c
+ src/liblzma/lz/lz_encoder_mf.c
+ src/liblzma/rangecoder/price_table.c
+ src/liblzma/simple/arm.c
+ src/liblzma/simple/armthumb.c
+ src/liblzma/simple/ia64.c
+ src/liblzma/simple/powerpc.c
+ src/liblzma/simple/simple_coder.c
+ src/liblzma/simple/simple_decoder.c
+ src/liblzma/simple/simple_encoder.c
+ src/liblzma/simple/sparc.c
+ src/liblzma/simple/x86.c)
+
+if(WIN32)
+ configure_file(windows/vs2017/config.h config.h COPYONLY)
+endif()
+
+add_library(lzma STATIC ${SOURCES})
+
+set_property(TARGET lzma PROPERTY POSITION_INDEPENDENT_CODE ON)
+
+target_include_directories(lzma
+ PRIVATE
+ ${CMAKE_BINARY_DIR}
+ src/liblzma/common
+ src/common
+ src/liblzma/api
+ src/liblzma/check
+ src/liblzma/delta
+ src/liblzma/lz
+ src/liblzma/lzma
+ src/liblzma/rangecoder
+ src/liblzma/simple)
+
+if(WIN32)
+ target_compile_definitions(lzma
+ PRIVATE
+ WIN32
+ HAVE_CONFIG_H
+ NDEBUG
+ _LIB)
+endif()
+
+install(TARGETS lzma
+ ARCHIVE DESTINATION lib
+)
+
+install(DIRECTORY src/liblzma/api/ DESTINATION include
+ FILES_MATCHING PATTERN "*.h")