aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/lerc
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/lerc
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/lerc')
-rw-r--r--vcpkg/ports/lerc/create_package.patch23
-rw-r--r--vcpkg/ports/lerc/cxx-linkage-pkgconfig.patch31
-rw-r--r--vcpkg/ports/lerc/fix-climits-include.patch12
-rw-r--r--vcpkg/ports/lerc/portfile.cmake27
-rw-r--r--vcpkg/ports/lerc/vcpkg.json17
5 files changed, 110 insertions, 0 deletions
diff --git a/vcpkg/ports/lerc/create_package.patch b/vcpkg/ports/lerc/create_package.patch
new file mode 100644
index 0000000..86e24ec
--- /dev/null
+++ b/vcpkg/ports/lerc/create_package.patch
@@ -0,0 +1,23 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ab733f5..a52dc59 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -38,11 +38,18 @@ endif()
+
+ install(
+ TARGETS Lerc
++ EXPORT LercTargets
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ )
++target_include_directories(Lerc PUBLIC "$<INSTALL_INTERFACE:include>")
++install(EXPORT LercTargets
++ FILE unofficial-lerc-config.cmake
++ NAMESPACE unofficial::Lerc::
++ DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/unofficial-lerc"
++)
+
+ # Handle both absolute paths (e.g. NixOS) and relative for a relocatable package
+ if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
diff --git a/vcpkg/ports/lerc/cxx-linkage-pkgconfig.patch b/vcpkg/ports/lerc/cxx-linkage-pkgconfig.patch
new file mode 100644
index 0000000..3ee1de4
--- /dev/null
+++ b/vcpkg/ports/lerc/cxx-linkage-pkgconfig.patch
@@ -0,0 +1,31 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a52dc59..caacfa8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -64,6 +64,16 @@ else()
+ endif()
+
+ # Configure and install pkgconfig file
++set(FAKE_CXX_LINKAGE "")
++foreach(lib IN LISTS CMAKE_CXX_IMPLICIT_LINK_LIBRARIES)
++ if(lib IN_LIST CMAKE_C_IMPLICIT_LINK_LIBRARIES)
++ continue()
++ elseif(EXISTS "${lib}")
++ string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FILE_FLAG}${lib}")
++ else()
++ string(APPEND FAKE_CXX_LINKAGE " ${CMAKE_LINK_LIBRARY_FLAG}${lib}")
++ endif()
++endforeach()
+ configure_file(Lerc.pc.in ${CMAKE_CURRENT_BINARY_DIR}/Lerc.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/Lerc.pc
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+diff --git a/Lerc.pc.in b/Lerc.pc.in
+index ab20d1a..4d2a967 100644
+--- a/Lerc.pc.in
++++ b/Lerc.pc.in
+@@ -9,4 +9,4 @@ URL: @PROJECT_HOMEPAGE_URL@
+ Version: @PROJECT_VERSION@
+ Cflags: -I${includedir}
+ Cflags.private: -DLERC_STATIC
+-Libs: -L${libdir} -lLerc
++Libs: -L${libdir} -lLerc @FAKE_CXX_LINKAGE@
diff --git a/vcpkg/ports/lerc/fix-climits-include.patch b/vcpkg/ports/lerc/fix-climits-include.patch
new file mode 100644
index 0000000..84bebc3
--- /dev/null
+++ b/vcpkg/ports/lerc/fix-climits-include.patch
@@ -0,0 +1,12 @@
+diff --git a/src/LercLib/fpl_Compression.cpp b/src/LercLib/fpl_Compression.cpp
+index bea9483..2e18e3e 100644
+--- a/src/LercLib/fpl_Compression.cpp
++++ b/src/LercLib/fpl_Compression.cpp
+@@ -27,6 +27,7 @@ Original coding 2021 Yuriy Yakimenko
+ #include <assert.h>
+ #include <cmath>
+ #include <cstring>
++#include <climits>
+
+ USING_NAMESPACE_LERC
+
diff --git a/vcpkg/ports/lerc/portfile.cmake b/vcpkg/ports/lerc/portfile.cmake
new file mode 100644
index 0000000..b8e6a8e
--- /dev/null
+++ b/vcpkg/ports/lerc/portfile.cmake
@@ -0,0 +1,27 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Esri/lerc
+ REF "js_v${VERSION}"
+ SHA512 061558d3b29e2d0968d1169ac422795faa6e70dd3425945194c1c87f4522422e186878b0235a5fc42f037c47c54964bf070b7644f8d652f33dc19f692a6ba0af
+ HEAD_REF master
+ PATCHES
+ create_package.patch
+ cxx-linkage-pkgconfig.patch
+ fix-climits-include.patch
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+)
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-lerc)
+vcpkg_fixup_pkgconfig()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/Lerc_c_api.h" "defined(LERC_STATIC)" "1")
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(INSTALL "${SOURCE_PATH}/NOTICE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/vcpkg/ports/lerc/vcpkg.json b/vcpkg/ports/lerc/vcpkg.json
new file mode 100644
index 0000000..34eadc6
--- /dev/null
+++ b/vcpkg/ports/lerc/vcpkg.json
@@ -0,0 +1,17 @@
+{
+ "name": "lerc",
+ "version": "4.0.4",
+ "description": "An open-source image or raster format which supports rapid encoding and decoding for any pixel type",
+ "homepage": "https://github.com/Esri/lerc",
+ "license": "Apache-2.0",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ]
+}