From 5d2abe27e27ede6daad6fc9df4dd9efcda1ca04c Mon Sep 17 00:00:00 2001 From: Weihang Ding <798047000@qq.com> Date: Fri, 12 Jun 2026 05:15:59 +0800 Subject: [PATCH] [vcpkg-ci-leveldb] New ci port (#52330) --- .../vcpkg-ci-leveldb/portfile.cmake | 6 +++++ .../vcpkg-ci-leveldb/project/CMakeLists.txt | 11 +++++++++ .../vcpkg-ci-leveldb/project/main.cpp | 23 +++++++++++++++++++ .../test_ports/vcpkg-ci-leveldb/vcpkg.json | 18 +++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 scripts/test_ports/vcpkg-ci-leveldb/portfile.cmake create mode 100644 scripts/test_ports/vcpkg-ci-leveldb/project/CMakeLists.txt create mode 100644 scripts/test_ports/vcpkg-ci-leveldb/project/main.cpp create mode 100644 scripts/test_ports/vcpkg-ci-leveldb/vcpkg.json diff --git a/scripts/test_ports/vcpkg-ci-leveldb/portfile.cmake b/scripts/test_ports/vcpkg-ci-leveldb/portfile.cmake new file mode 100644 index 0000000000..d1ab44ac5a --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-leveldb/portfile.cmake @@ -0,0 +1,6 @@ +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +vcpkg_cmake_configure( + SOURCE_PATH "${CURRENT_PORT_DIR}/project" +) +vcpkg_cmake_build() diff --git a/scripts/test_ports/vcpkg-ci-leveldb/project/CMakeLists.txt b/scripts/test_ports/vcpkg-ci-leveldb/project/CMakeLists.txt new file mode 100644 index 0000000000..8a43990889 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-leveldb/project/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.16) +project(vcpkg-ci-leveldb) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +find_package(leveldb CONFIG REQUIRED) + +add_executable(main main.cpp) +target_link_libraries(main PRIVATE leveldb::leveldb) diff --git a/scripts/test_ports/vcpkg-ci-leveldb/project/main.cpp b/scripts/test_ports/vcpkg-ci-leveldb/project/main.cpp new file mode 100644 index 0000000000..bc8883c80a --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-leveldb/project/main.cpp @@ -0,0 +1,23 @@ +#include +#include +#include +#include + +int main() { + std::filesystem::path tmp = std::filesystem::temp_directory_path() / "vcpkg-ci-leveldb-test"; + std::filesystem::remove_all(tmp); + leveldb::DB* db = nullptr; + leveldb::Options options; + options.create_if_missing = true; + leveldb::Status status = leveldb::DB::Open(options, tmp.string(), &db); + assert(status.ok()); + status = db->Put(leveldb::WriteOptions(), "hello", "leveldb"); + assert(status.ok()); + std::string value; + status = db->Get(leveldb::ReadOptions(), "hello", &value); + assert(status.ok()); + assert(value == "leveldb"); + delete db; + std::filesystem::remove_all(tmp); + return 0; +} diff --git a/scripts/test_ports/vcpkg-ci-leveldb/vcpkg.json b/scripts/test_ports/vcpkg-ci-leveldb/vcpkg.json new file mode 100644 index 0000000000..a21e6c7092 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-leveldb/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "vcpkg-ci-leveldb", + "version-string": "ci", + "description": "Validates leveldb", + "dependencies": [ + { + "name": "leveldb", + "features": [ + "crc32c", + "snappy" + ] + }, + { + "name": "vcpkg-cmake", + "host": true + } + ] +}