From 7ecf688cca944629a8cf09eaf1276b7dc69c1021 Mon Sep 17 00:00:00 2001 From: codicodi Date: Sun, 25 Dec 2016 14:34:01 +0100 Subject: [PATCH] add liblzma --- ports/liblzma/CMakeLists.txt | 104 ++++++++++++++++++ ports/liblzma/CONTROL | 3 + .../liblzma/auto-define-lzma-api-static.patch | 14 +++ ports/liblzma/portfile.cmake | 29 +++++ 4 files changed, 150 insertions(+) create mode 100644 ports/liblzma/CMakeLists.txt create mode 100644 ports/liblzma/CONTROL create mode 100644 ports/liblzma/auto-define-lzma-api-static.patch create mode 100644 ports/liblzma/portfile.cmake diff --git a/ports/liblzma/CMakeLists.txt b/ports/liblzma/CMakeLists.txt new file mode 100644 index 000000000..5bf723c2f --- /dev/null +++ b/ports/liblzma/CMakeLists.txt @@ -0,0 +1,104 @@ +cmake_minimum_required(VERSION 3.0) +project(liblzma) + +add_definitions(-DHAVE_CONFIG_H) +if(BUILD_SHARED_LIBS) + add_definitions(-DLIBLZMADLL_EXPORTS) + add_definitions(-DDLL_EXPORT) +endif() + +include_directories(windows) +include_directories(src/liblzma/common) +include_directories(src/common) +include_directories(src/liblzma/api) +include_directories(src/liblzma/check) +include_directories(src/liblzma/delta) +include_directories(src/liblzma/lz) +include_directories(src/liblzma/lzma) +include_directories(src/liblzma/rangecoder) +include_directories(src/liblzma/simple) + +add_library(liblzma + 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) + +install(TARGETS liblzma + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib) + +if(NOT LIBLZMA_SKIP_HEADERS) + install(DIRECTORY ${PROJECT_SOURCE_DIR}/src/liblzma/api/lzma DESTINATION include) + install(FILES ${PROJECT_SOURCE_DIR}/src/liblzma/api/lzma.h DESTINATION include) +endif() diff --git a/ports/liblzma/CONTROL b/ports/liblzma/CONTROL new file mode 100644 index 000000000..648316130 --- /dev/null +++ b/ports/liblzma/CONTROL @@ -0,0 +1,3 @@ +Source: liblzma +Version: 5.2.2 +Description: Compression library with an API similar to that of zlib. diff --git a/ports/liblzma/auto-define-lzma-api-static.patch b/ports/liblzma/auto-define-lzma-api-static.patch new file mode 100644 index 000000000..b2643fe6a --- /dev/null +++ b/ports/liblzma/auto-define-lzma-api-static.patch @@ -0,0 +1,14 @@ +diff --git a/lzma.h b/lzma.h +index ce675a7..ac0fc98 100644 +--- a/lzma.h ++++ b/lzma.h +@@ -187,6 +187,9 @@ + * need to worry about LZMA_API_STATIC. Also the calling convention is + * omitted on Cygwin but not on MinGW. + */ ++ ++#define LZMA_API_STATIC ++ + #ifndef LZMA_API_IMPORT + # if !defined(LZMA_API_STATIC) && defined(_WIN32) && !defined(__GNUC__) + # define LZMA_API_IMPORT __declspec(dllimport) diff --git a/ports/liblzma/portfile.cmake b/ports/liblzma/portfile.cmake new file mode 100644 index 000000000..bb2b6e083 --- /dev/null +++ b/ports/liblzma/portfile.cmake @@ -0,0 +1,29 @@ + +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/xz-5.2.2) +vcpkg_download_distfile(ARCHIVE + URLS "http://tukaani.org/xz/xz-5.2.2.tar.gz" + FILENAME "xz-5.2.2.tar.gz" + SHA512 8d6249f93c5c43e1c8eeb21f93b22330fd54575e20bbb4af3d06721192d9f0ca3351878964c9640238ac410b7dd9f16329793c7be7355c7ca0db92c6db6ab813) + +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS_DEBUG + -DLIBLZMA_SKIP_HEADERS=ON) + +vcpkg_install_cmake() +vcpkg_copy_pdbs() + +if(VCPKG_LIBRARY_LINKAGE STREQUAL static) + vcpkg_apply_patches( + SOURCE_PATH ${CURRENT_PACKAGES_DIR}/include + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/auto-define-lzma-api-static.patch) +endif() + +file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/liblzma) +file(RENAME ${CURRENT_PACKAGES_DIR}/share/liblzma/COPYING ${CURRENT_PACKAGES_DIR}/share/liblzma/copyright)