diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/scripts/test_ports/vcpkg-ci-duckdb | |
Diffstat (limited to 'vcpkg/scripts/test_ports/vcpkg-ci-duckdb')
4 files changed, 85 insertions, 0 deletions
diff --git a/vcpkg/scripts/test_ports/vcpkg-ci-duckdb/portfile.cmake b/vcpkg/scripts/test_ports/vcpkg-ci-duckdb/portfile.cmake new file mode 100644 index 0000000..7485803 --- /dev/null +++ b/vcpkg/scripts/test_ports/vcpkg-ci-duckdb/portfile.cmake @@ -0,0 +1,21 @@ +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +vcpkg_cmake_configure( + SOURCE_PATH "${CURRENT_PORT_DIR}/project" +) +vcpkg_cmake_install() + +if(NOT VCPKG_CROSSCOMPILING) + if(CMAKE_HOST_WIN32) + vcpkg_host_path_list(PREPEND ENV{PATH} "${CURRENT_INSTALLED_DIR}/bin") + elseif(CMAKE_HOST_APPLE) + vcpkg_host_path_list(PREPEND ENV{DYLD_LIBRARY_PATH} "${CURRENT_INSTALLED_DIR}/lib") + else() + vcpkg_host_path_list(PREPEND ENV{LD_LIBRARY_PATH} "${CURRENT_INSTALLED_DIR}/lib") + endif() + vcpkg_execute_required_process( + COMMAND "${CURRENT_PACKAGES_DIR}/bin/${PORT}/main" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" + LOGNAME release-test + ) +endif() diff --git a/vcpkg/scripts/test_ports/vcpkg-ci-duckdb/project/CMakeLists.txt b/vcpkg/scripts/test_ports/vcpkg-ci-duckdb/project/CMakeLists.txt new file mode 100644 index 0000000..3c51fa2 --- /dev/null +++ b/vcpkg/scripts/test_ports/vcpkg-ci-duckdb/project/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.16) +project(duckdb-test C CXX) + +add_executable(main main.c) + +find_package(DuckDB CONFIG REQUIRED) +if(BUILD_SHARED_LIBS) + add_library(imported::duckdb ALIAS duckdb) +else() + add_library(imported::duckdb ALIAS duckdb_static) +endif() +target_link_libraries(main PRIVATE imported::duckdb) +install(TARGETS main RUNTIME DESTINATION bin/vcpkg-ci-duckdb) diff --git a/vcpkg/scripts/test_ports/vcpkg-ci-duckdb/project/main.c b/vcpkg/scripts/test_ports/vcpkg-ci-duckdb/project/main.c new file mode 100644 index 0000000..6dfa22b --- /dev/null +++ b/vcpkg/scripts/test_ports/vcpkg-ci-duckdb/project/main.c @@ -0,0 +1,33 @@ +#include <stdio.h> +#include <duckdb.h> + +int main() +{ + duckdb_database db; + if (duckdb_open(NULL, &db) == DuckDBError) { + printf("open failed\n"); + return 1; + } + duckdb_connection con; + if (duckdb_connect(db, &con) == DuckDBError) { + printf("connect failed\n"); + return 2; + } + const char* query_icu = + "LOAD icu;" + "SELECT current_localtime();" + "PRAGMA collations;" + "SELECT list(collname) FROM pragma_collations();" + ; + duckdb_result result; + if (duckdb_query(con, query_icu, &result) == DuckDBError) { + printf("icu query failed: %s\n", duckdb_result_error(&result)); + return 3; + } + else { + printf("success\n"); + } + duckdb_disconnect(&con); + duckdb_close(&db); + return 0; +} diff --git a/vcpkg/scripts/test_ports/vcpkg-ci-duckdb/vcpkg.json b/vcpkg/scripts/test_ports/vcpkg-ci-duckdb/vcpkg.json new file mode 100644 index 0000000..6c113d7 --- /dev/null +++ b/vcpkg/scripts/test_ports/vcpkg-ci-duckdb/vcpkg.json @@ -0,0 +1,18 @@ +{ + "name": "vcpkg-ci-duckdb", + "version-string": "ci", + "description": "Test the icu feature", + "license": "BSD-3-Clause", + "dependencies": [ + { + "name": "duckdb", + "features": [ + "icu" + ] + }, + { + "name": "vcpkg-cmake", + "host": true + } + ] +} |