diff options
Diffstat (limited to 'vcpkg/ports/liblzf')
| -rw-r--r-- | vcpkg/ports/liblzf/0001-add-extern-c.patch | 23 | ||||
| -rw-r--r-- | vcpkg/ports/liblzf/0002-fix-macro-expansion-ub.patch | 15 | ||||
| -rw-r--r-- | vcpkg/ports/liblzf/CMakeLists.txt | 46 | ||||
| -rw-r--r-- | vcpkg/ports/liblzf/liblzf.def | 3 | ||||
| -rw-r--r-- | vcpkg/ports/liblzf/portfile.cmake | 31 | ||||
| -rw-r--r-- | vcpkg/ports/liblzf/vcpkg.json | 18 |
6 files changed, 136 insertions, 0 deletions
diff --git a/vcpkg/ports/liblzf/0001-add-extern-c.patch b/vcpkg/ports/liblzf/0001-add-extern-c.patch new file mode 100644 index 0000000..903705a --- /dev/null +++ b/vcpkg/ports/liblzf/0001-add-extern-c.patch @@ -0,0 +1,23 @@ +--- a/lzf.h ++++ b/lzf.h +@@ -48,6 +48,10 @@ + + #define LZF_VERSION 0x0105 /* 1.5, API version */ + ++#ifdef __cplusplus ++extern "C" { ++#endif ++ + /* + * Compress in_len bytes stored at the memory block starting at + * in_data and write the result to out_data, up to a maximum length +@@ -96,5 +100,9 @@ unsigned int + lzf_decompress (const void *const in_data, unsigned int in_len, + void *out_data, unsigned int out_len); + ++#ifdef __cplusplus ++} ++#endif ++ + #endif + diff --git a/vcpkg/ports/liblzf/0002-fix-macro-expansion-ub.patch b/vcpkg/ports/liblzf/0002-fix-macro-expansion-ub.patch new file mode 100644 index 0000000..018c4e6 --- /dev/null +++ b/vcpkg/ports/liblzf/0002-fix-macro-expansion-ub.patch @@ -0,0 +1,15 @@ +--- a/lzfP.h ++++ b/lzfP.h +@@ -79,7 +79,11 @@ + * Unconditionally aligning does not cost very much, so do it if unsure + */ + #ifndef STRICT_ALIGN +-# define STRICT_ALIGN !(defined(__i386) || defined (__amd64)) ++# if !(defined(__i386) || defined (__amd64)) ++# define STRICT_ALIGN 1 ++# else ++# define STRICT_ALIGN 0 ++# endif + #endif + + /* diff --git a/vcpkg/ports/liblzf/CMakeLists.txt b/vcpkg/ports/liblzf/CMakeLists.txt new file mode 100644 index 0000000..91292e2 --- /dev/null +++ b/vcpkg/ports/liblzf/CMakeLists.txt @@ -0,0 +1,46 @@ +# Based on http://cvs.schmorp.de/liblzf/Makefile.in?view=markup +cmake_minimum_required(VERSION 3.15) +project(liblzf LANGUAGES C) + +## Build ## + +add_library(liblzf + lzf_c.c + lzf_d.c + liblzf.def +) +set_target_properties(liblzf PROPERTIES OUTPUT_NAME lzf) +target_include_directories(liblzf INTERFACE $<INSTALL_INTERFACE:include>) +if(MINGW) + target_compile_definitions(liblzf PRIVATE "_int64=long long") +endif() + +## Install ## + +include(GNUInstallDirs) +install(TARGETS liblzf + EXPORT unofficial-liblzf-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +) +install(FILES lzf.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + +## Write config ## + +set(LIBLZF_SHARE_DIR share/unofficial-liblzf) +install(EXPORT unofficial-liblzf-targets + FILE unofficial-liblzf-config.cmake + NAMESPACE unofficial::liblzf:: + DESTINATION ${LIBLZF_SHARE_DIR} +) +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-liblzf-config-version.cmake" + VERSION ${VERSION} + COMPATIBILITY SameMajorVersion +) +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/unofficial-liblzf-config-version.cmake" + DESTINATION ${LIBLZF_SHARE_DIR} +) diff --git a/vcpkg/ports/liblzf/liblzf.def b/vcpkg/ports/liblzf/liblzf.def new file mode 100644 index 0000000..2d8efa4 --- /dev/null +++ b/vcpkg/ports/liblzf/liblzf.def @@ -0,0 +1,3 @@ +EXPORTS + lzf_compress + lzf_decompress diff --git a/vcpkg/ports/liblzf/portfile.cmake b/vcpkg/ports/liblzf/portfile.cmake new file mode 100644 index 0000000..9841c2b --- /dev/null +++ b/vcpkg/ports/liblzf/portfile.cmake @@ -0,0 +1,31 @@ +vcpkg_download_distfile(ARCHIVE + URLS "http://dist.schmorp.de/liblzf/liblzf-${VERSION}.tar.gz" + FILENAME "liblzf-${VERSION}.tar.gz" + SHA512 701f70245a11e7cf3412b14ed26bf7b1464512d5b0cf3f913e70ebfdfe20574b8ebbae5a78f4b56ac0034d54830380309cac3057ca00a8028edbde3d091141f5 +) + +vcpkg_extract_source_archive(SOURCE_PATH + ARCHIVE "${ARCHIVE}" + PATCHES + 0001-add-extern-c.patch + 0002-fix-macro-expansion-ub.patch +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") +file(COPY "${CMAKE_CURRENT_LIST_DIR}/liblzf.def" DESTINATION "${SOURCE_PATH}") + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DVERSION=${VERSION} +) + +vcpkg_cmake_install() + +vcpkg_cmake_config_fixup(PACKAGE_NAME "unofficial-liblzf") + +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/vcpkg/ports/liblzf/vcpkg.json b/vcpkg/ports/liblzf/vcpkg.json new file mode 100644 index 0000000..b7a6fd4 --- /dev/null +++ b/vcpkg/ports/liblzf/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "liblzf", + "version": "3.6", + "port-version": 1, + "description": "LZF is an extremely fast compression algorithm. It is ideal for applications where you want to save some space but not at the cost of speed.", + "homepage": "http://software.schmorp.de/pkg/liblzf.html", + "license": "BSD-2-Clause OR GPL-2.0-or-later", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |