diff options
Diffstat (limited to 'vcpkg/ports/leveldb')
| -rw-r--r-- | vcpkg/ports/leveldb/fix-dependencies.patch | 34 | ||||
| -rw-r--r-- | vcpkg/ports/leveldb/fix-util-install.patch | 16 | ||||
| -rw-r--r-- | vcpkg/ports/leveldb/leveldbConfig.cmake.in | 13 | ||||
| -rw-r--r-- | vcpkg/ports/leveldb/portfile.cmake | 40 | ||||
| -rw-r--r-- | vcpkg/ports/leveldb/vcpkg.json | 32 |
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" + ] + } + } +} |