aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/scripts/test_ports/vcpkg-ci-gobject-introspection/project
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/scripts/test_ports/vcpkg-ci-gobject-introspection/project
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/scripts/test_ports/vcpkg-ci-gobject-introspection/project')
-rw-r--r--vcpkg/scripts/test_ports/vcpkg-ci-gobject-introspection/project/CMakeLists.txt22
-rw-r--r--vcpkg/scripts/test_ports/vcpkg-ci-gobject-introspection/project/main.c39
2 files changed, 61 insertions, 0 deletions
diff --git a/vcpkg/scripts/test_ports/vcpkg-ci-gobject-introspection/project/CMakeLists.txt b/vcpkg/scripts/test_ports/vcpkg-ci-gobject-introspection/project/CMakeLists.txt
new file mode 100644
index 0000000..24119e2
--- /dev/null
+++ b/vcpkg/scripts/test_ports/vcpkg-ci-gobject-introspection/project/CMakeLists.txt
@@ -0,0 +1,22 @@
+cmake_minimum_required(VERSION 3.30)
+project(gobject-introspection-test C)
+
+option(RUN_TEST "Run the test program")
+
+set(CMAKE_SKIP_RPATH FALSE)
+
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(gobject-introspection_pc gobject-introspection-1.0 REQUIRED IMPORTED_TARGET)
+
+add_executable(main-pkgconfig main.c)
+target_link_libraries(main-pkgconfig PRIVATE
+ PkgConfig::gobject-introspection_pc
+)
+
+add_custom_target(run-test
+ COMMAND main-pkgconfig
+ COMMENT "Running the test program"
+)
+if(RUN_TEST)
+ set_target_properties(run-test PROPERTIES EXCLUDE_FROM_ALL 0)
+endif()
diff --git a/vcpkg/scripts/test_ports/vcpkg-ci-gobject-introspection/project/main.c b/vcpkg/scripts/test_ports/vcpkg-ci-gobject-introspection/project/main.c
new file mode 100644
index 0000000..d6f41a6
--- /dev/null
+++ b/vcpkg/scripts/test_ports/vcpkg-ci-gobject-introspection/project/main.c
@@ -0,0 +1,39 @@
+#include <girepository.h>
+#include <stdio.h>
+
+int main()
+{
+ GError *error = NULL;
+
+ GIRepository *repository = g_irepository_get_default();
+ GSList* paths = g_irepository_get_search_path();
+ for (; paths != NULL; paths = paths->next)
+ g_message("Search path entry: %s\n", (const char*)paths->data);
+
+ GITypelib *typelib = g_irepository_require(repository, "GIRepository", NULL, 0, &error);
+ if (error)
+ {
+ g_error("ERROR: %s\n", error->message);
+ return 1;
+ }
+
+ GIBaseInfo *base_info = g_irepository_find_by_name(repository, "GIRepository", "get_minor_version");
+ if (!base_info)
+ {
+ g_error("ERROR: %s\n", "Could not find GIRepository get_minor_version");
+ return 1;
+ }
+
+ GIArgument retval;
+ if (!g_function_info_invoke((GIFunctionInfo *)base_info, NULL, 0, NULL, 0, &retval, &error))
+ {
+ g_error("ERROR: %s\n", error->message);
+ return 1;
+ }
+
+ g_message("GI Repository minor version: %d", retval.v_uint);
+
+ g_base_info_unref(base_info);
+
+ return 0;
+}