aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/leveldb
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/leveldb
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/leveldb')
-rw-r--r--vcpkg/ports/leveldb/fix-dependencies.patch34
-rw-r--r--vcpkg/ports/leveldb/fix-util-install.patch16
-rw-r--r--vcpkg/ports/leveldb/leveldbConfig.cmake.in13
-rw-r--r--vcpkg/ports/leveldb/portfile.cmake40
-rw-r--r--vcpkg/ports/leveldb/vcpkg.json32
5 files changed, 135 insertions, 0 deletions
diff --git a/vcpkg/ports/leveldb/fix-dependencies.patch b/vcpkg/ports/leveldb/fix-dependencies.patch
new file mode 100644
index 0000000..5efc638
--- /dev/null
+++ b/vcpkg/ports/leveldb/fix-dependencies.patch
@@ -0,0 +1,34 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f8285b8..39536fc 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -38,8 +38,14 @@ include(CheckIncludeFile)
+ check_include_file("unistd.h" HAVE_UNISTD_H)
+
+ include(CheckLibraryExists)
+-check_library_exists(crc32c crc32c_value "" HAVE_CRC32C)
+-check_library_exists(snappy snappy_compress "" HAVE_SNAPPY)
++if (WITH_CRC32C)
++ find_package(Crc32c CONFIG REQUIRED)
++ set(HAVE_CRC32C 1)
++endif()
++if (WITH_SNAPPY)
++ find_package(Snappy CONFIG REQUIRED)
++ set(HAVE_SNAPPY 1)
++endif()
+ check_library_exists(tcmalloc malloc "" HAVE_TCMALLOC)
+
+ include(CheckCXXSymbolExists)
+@@ -268,10 +274,10 @@ if(HAVE_CLANG_THREAD_SAFETY)
+ endif(HAVE_CLANG_THREAD_SAFETY)
+
+ if(HAVE_CRC32C)
+- target_link_libraries(leveldb crc32c)
++ target_link_libraries(leveldb Crc32c::crc32c)
+ endif(HAVE_CRC32C)
+ if(HAVE_SNAPPY)
+- target_link_libraries(leveldb snappy)
++ target_link_libraries(leveldb Snappy::snappy)
+ endif(HAVE_SNAPPY)
+ if(HAVE_TCMALLOC)
+ target_link_libraries(leveldb tcmalloc)
diff --git a/vcpkg/ports/leveldb/fix-util-install.patch b/vcpkg/ports/leveldb/fix-util-install.patch
new file mode 100644
index 0000000..fb65023
--- /dev/null
+++ b/vcpkg/ports/leveldb/fix-util-install.patch
@@ -0,0 +1,16 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 39536fc..648de6d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -477,6 +477,11 @@ if(LEVELDB_INSTALL)
+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/leveldb"
+ )
+
++ file(GLOB HEADER_UTIL "${PROJECT_SOURCE_DIR}/util/*.h" )
++ file(GLOB HEADER_TABLE "${PROJECT_SOURCE_DIR}/table/*.h" )
++ install(FILES ${HEADER_UTIL} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/leveldb/util)
++ install(FILES ${HEADER_TABLE} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/leveldb/table)
++
+ include(CMakePackageConfigHelpers)
+ configure_package_config_file(
+ "cmake/${PROJECT_NAME}Config.cmake.in"
diff --git a/vcpkg/ports/leveldb/leveldbConfig.cmake.in b/vcpkg/ports/leveldb/leveldbConfig.cmake.in
new file mode 100644
index 0000000..4097fac
--- /dev/null
+++ b/vcpkg/ports/leveldb/leveldbConfig.cmake.in
@@ -0,0 +1,13 @@
+@PACKAGE_INIT@
+include(CMakeFindDependencyMacro)
+
+find_dependency(Threads)
+
+if (@WITH_CRC32C@)
+ find_dependency(Crc32c CONFIG)
+endif()
+if (@WITH_SNAPPY@)
+ find_dependency(Snappy CONFIG)
+endif()
+
+include("${CMAKE_CURRENT_LIST_DIR}/leveldbTargets.cmake")
diff --git a/vcpkg/ports/leveldb/portfile.cmake b/vcpkg/ports/leveldb/portfile.cmake
new file mode 100644
index 0000000..92c283b
--- /dev/null
+++ b/vcpkg/ports/leveldb/portfile.cmake
@@ -0,0 +1,40 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO google/leveldb
+ REF "${VERSION}"
+ SHA512 ac15eac29387b9f702a901b6567d47a9f8c17cf5c7d8700a77ec771da25158c83b04959c33f3d4de7a3f033ef08f545d14ba823a8d527e21889c4b78065b0f84
+ HEAD_REF master
+ PATCHES
+ fix-dependencies.patch
+ fix-util-install.patch
+)
+
+file(COPY "${CURRENT_PORT_DIR}/leveldbConfig.cmake.in" DESTINATION "${SOURCE_PATH}/cmake")
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ crc32c WITH_CRC32C
+ snappy WITH_SNAPPY
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ -DLEVELDB_BUILD_TESTS=OFF
+ -DLEVELDB_BUILD_BENCHMARKS=OFF
+ OPTIONS_DEBUG
+ -DINSTALL_HEADERS=OFF
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/${PORT}")
+
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/leveldb/vcpkg.json b/vcpkg/ports/leveldb/vcpkg.json
new file mode 100644
index 0000000..f33c459
--- /dev/null
+++ b/vcpkg/ports/leveldb/vcpkg.json
@@ -0,0 +1,32 @@
+{
+ "name": "leveldb",
+ "version": "1.23",
+ "description": "LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.",
+ "homepage": "https://github.com/google/leveldb",
+ "license": "BSD-3-Clause",
+ "supports": "!uwp",
+ "dependencies": [
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "crc32c": {
+ "description": "Build with crc32c",
+ "dependencies": [
+ "crc32c"
+ ]
+ },
+ "snappy": {
+ "description": "Build with snappy",
+ "dependencies": [
+ "snappy"
+ ]
+ }
+ }
+}