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-gmime | |
Diffstat (limited to 'vcpkg/scripts/test_ports/vcpkg-ci-gmime')
4 files changed, 83 insertions, 0 deletions
diff --git a/vcpkg/scripts/test_ports/vcpkg-ci-gmime/portfile.cmake b/vcpkg/scripts/test_ports/vcpkg-ci-gmime/portfile.cmake new file mode 100644 index 0000000..9081513 --- /dev/null +++ b/vcpkg/scripts/test_ports/vcpkg-ci-gmime/portfile.cmake @@ -0,0 +1,11 @@ +SET(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +vcpkg_find_acquire_program(PKGCONFIG) + +vcpkg_cmake_configure( + SOURCE_PATH "${CURRENT_PORT_DIR}/project" + OPTIONS + "-DFEATURES=${FEATURES}" + "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" +) +vcpkg_cmake_build() diff --git a/vcpkg/scripts/test_ports/vcpkg-ci-gmime/project/CMakeLists.txt b/vcpkg/scripts/test_ports/vcpkg-ci-gmime/project/CMakeLists.txt new file mode 100644 index 0000000..d64e5ac --- /dev/null +++ b/vcpkg/scripts/test_ports/vcpkg-ci-gmime/project/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.10) + +project(vcpkg-ci-gmime C) + +set(CMAKE_C_STANDARD 11) + +find_package(PkgConfig REQUIRED) +pkg_check_modules(gmime REQUIRED IMPORTED_TARGET gmime-3.0) + +add_executable(main main.c) +target_link_libraries(main PRIVATE PkgConfig::gmime) + +if("crypto" IN_LIST FEATURES) + target_compile_definitions(main PRIVATE ENABLE_CRYPTO) +endif() diff --git a/vcpkg/scripts/test_ports/vcpkg-ci-gmime/project/main.c b/vcpkg/scripts/test_ports/vcpkg-ci-gmime/project/main.c new file mode 100644 index 0000000..8431aa3 --- /dev/null +++ b/vcpkg/scripts/test_ports/vcpkg-ci-gmime/project/main.c @@ -0,0 +1,26 @@ +#include <glib.h> +#include <gmime/gmime.h> + +void verify_callback(GMimeObject *parent, GMimeObject *part, gpointer user_data) +{ +#ifdef ENABLE_CRYPTO + if (GMIME_IS_MULTIPART_SIGNED(part)) + { + GMimeMultipartSigned *mps = (GMimeMultipartSigned *)part; + GError *err = NULL; + GMimeSignatureList *signatures = g_mime_multipart_signed_verify(mps, GMIME_VERIFY_NONE, &err); + g_object_unref(signatures); + } +#endif +} + +int main() +{ + g_mime_init(); + GMimeParser *parser = g_mime_parser_new(); + GMimeMessage *message = g_mime_parser_construct_message(parser, NULL); + g_mime_message_foreach(message, verify_callback, NULL); + g_object_unref(message); + g_object_unref(parser); + return 0; +} diff --git a/vcpkg/scripts/test_ports/vcpkg-ci-gmime/vcpkg.json b/vcpkg/scripts/test_ports/vcpkg-ci-gmime/vcpkg.json new file mode 100644 index 0000000..cbef40d --- /dev/null +++ b/vcpkg/scripts/test_ports/vcpkg-ci-gmime/vcpkg.json @@ -0,0 +1,31 @@ +{ + "name": "vcpkg-ci-gmime", + "version-string": "ci", + "description": "Validates gmime", + "dependencies": [ + "gmime", + { + "name": "vcpkg-cmake", + "host": true + } + ], + "default-features": [ + { + "name": "crypto", + "platform": "!windows | mingw" + } + ], + "features": { + "crypto": { + "description": "gmime[crypo]", + "dependencies": [ + { + "name": "gmime", + "features": [ + "crypto" + ] + } + ] + } + } +} |