aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/gexiv2
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/gexiv2')
-rw-r--r--vcpkg/ports/gexiv2/msvc_def.patch203
-rw-r--r--vcpkg/ports/gexiv2/portfile.cmake37
-rw-r--r--vcpkg/ports/gexiv2/vcpkg.json20
3 files changed, 260 insertions, 0 deletions
diff --git a/vcpkg/ports/gexiv2/msvc_def.patch b/vcpkg/ports/gexiv2/msvc_def.patch
new file mode 100644
index 0000000..117d667
--- /dev/null
+++ b/vcpkg/ports/gexiv2/msvc_def.patch
@@ -0,0 +1,203 @@
+From 53770886561d434db53c229cd3d6391939a8185c Mon Sep 17 00:00:00 2001
+From: Jens Georg <mail@jensge.org>
+Date: Mon, 10 Feb 2025 22:15:56 +0100
+Subject: [PATCH] build: Add .def file and a script to update it
+
+---
+ build-aux/update-def-file.sh | 3 +
+ gexiv2/gexiv2.def | 152 +++++++++++++++++++++++++++++++++++
+ gexiv2/meson.build | 8 ++
+ 3 files changed, 163 insertions(+)
+ create mode 100755 build-aux/update-def-file.sh
+ create mode 100644 gexiv2/gexiv2.def
+
+diff --git a/build-aux/update-def-file.sh b/build-aux/update-def-file.sh
+new file mode 100755
+index 0000000..950d422
+--- /dev/null
++++ b/build-aux/update-def-file.sh
+@@ -0,0 +1,3 @@
++#!/bin/bash
++
++nm -gD "$1" | grep " T " | cut -f3 -d " " | sort | uniq > "$2"
+diff --git a/gexiv2/gexiv2.def b/gexiv2/gexiv2.def
+new file mode 100644
+index 0000000..de934fd
+--- /dev/null
++++ b/gexiv2/gexiv2.def
+@@ -0,0 +1,151 @@
++EXPORTS
++gexiv2_get_version
++gexiv2_gexiv2_byte_order_get_type
++gexiv2_gexiv2_log_level_get_type
++gexiv2_gexiv2_orientation_get_type
++gexiv2_gexiv2_structure_type_get_type
++gexiv2_gexiv2_xmp_format_flags_get_type
++gexiv2_initialize
++gexiv2_log_get_default_handler
++gexiv2_log_get_handler
++gexiv2_log_get_level
++gexiv2_log_set_handler
++gexiv2_log_set_level
++gexiv2_log_use_glib_logging
++gexiv2_metadata_clear
++gexiv2_metadata_clear_comment
++gexiv2_metadata_clear_exif
++gexiv2_metadata_clear_iptc
++gexiv2_metadata_clear_tag
++gexiv2_metadata_clear_xmp
++gexiv2_metadata_delete_gps_info
++gexiv2_metadata_erase_exif_thumbnail
++gexiv2_metadata_free
++gexiv2_metadata_from_app1_segment
++gexiv2_metadata_from_stream
++gexiv2_metadata_generate_xmp_packet
++gexiv2_metadata_get_comment
++gexiv2_metadata_get_exif_data
++gexiv2_metadata_get_exif_tag_rational
++gexiv2_metadata_get_exif_tags
++gexiv2_metadata_get_exif_thumbnail
++gexiv2_metadata_get_exposure_time
++gexiv2_metadata_get_fnumber
++gexiv2_metadata_get_focal_length
++gexiv2_metadata_get_gps_altitude
++gexiv2_metadata_get_gps_info
++gexiv2_metadata_get_gps_latitude
++gexiv2_metadata_get_gps_longitude
++gexiv2_metadata_get_iptc_tags
++gexiv2_metadata_get_iso_speed
++gexiv2_metadata_get_metadata_pixel_height
++gexiv2_metadata_get_metadata_pixel_width
++gexiv2_metadata_get_mime_type
++gexiv2_metadata_get_orientation
++gexiv2_metadata_get_pixel_height
++gexiv2_metadata_get_pixel_width
++gexiv2_metadata_get_preview_image
++gexiv2_metadata_get_preview_properties
++gexiv2_metadata_get_supports_exif
++gexiv2_metadata_get_supports_iptc
++gexiv2_metadata_get_supports_xmp
++gexiv2_metadata_get_tag_description
++gexiv2_metadata_get_tag_interpreted_string
++gexiv2_metadata_get_tag_label
++gexiv2_metadata_get_tag_long
++gexiv2_metadata_get_tag_multiple
++gexiv2_metadata_get_tag_raw
++gexiv2_metadata_get_tag_string
++gexiv2_metadata_get_tag_type
++gexiv2_metadata_get_type
++gexiv2_metadata_get_xmp_namespace_for_tag
++gexiv2_metadata_get_xmp_packet
++gexiv2_metadata_get_xmp_tags
++gexiv2_metadata_has_exif
++gexiv2_metadata_has_iptc
++gexiv2_metadata_has_tag
++gexiv2_metadata_has_xmp
++gexiv2_metadata_is_exif_tag
++gexiv2_metadata_is_iptc_tag
++gexiv2_metadata_is_xmp_tag
++gexiv2_metadata_new
++gexiv2_metadata_open_buf
++gexiv2_metadata_open_path
++gexiv2_metadata_register_xmp_namespace
++gexiv2_metadata_save_external
++gexiv2_metadata_save_file
++gexiv2_metadata_set_comment
++gexiv2_metadata_set_exif_tag_rational
++gexiv2_metadata_set_exif_thumbnail_from_buffer
++gexiv2_metadata_set_exif_thumbnail_from_file
++gexiv2_metadata_set_gps_info
++gexiv2_metadata_set_metadata_pixel_height
++gexiv2_metadata_set_metadata_pixel_width
++gexiv2_metadata_set_orientation
++gexiv2_metadata_set_tag_long
++gexiv2_metadata_set_tag_multiple
++gexiv2_metadata_set_tag_string
++gexiv2_metadata_set_xmp_tag_struct
++gexiv2_metadata_try_clear_tag
++gexiv2_metadata_try_delete_gps_info
++gexiv2_metadata_try_erase_exif_thumbnail
++gexiv2_metadata_try_generate_xmp_packet
++gexiv2_metadata_try_get_comment
++gexiv2_metadata_try_get_exif_tag_rational
++gexiv2_metadata_try_get_exposure_time
++gexiv2_metadata_try_get_fnumber
++gexiv2_metadata_try_get_focal_length
++gexiv2_metadata_try_get_gps_altitude
++gexiv2_metadata_try_get_gps_info
++gexiv2_metadata_try_get_gps_latitude
++gexiv2_metadata_try_get_gps_longitude
++gexiv2_metadata_try_get_iso_speed
++gexiv2_metadata_try_get_metadata_pixel_height
++gexiv2_metadata_try_get_metadata_pixel_width
++gexiv2_metadata_try_get_orientation
++gexiv2_metadata_try_get_preview_image
++gexiv2_metadata_try_get_tag_description
++gexiv2_metadata_try_get_tag_interpreted_string
++gexiv2_metadata_try_get_tag_label
++gexiv2_metadata_try_get_tag_long
++gexiv2_metadata_try_get_tag_multiple
++gexiv2_metadata_try_get_tag_raw
++gexiv2_metadata_try_get_tag_string
++gexiv2_metadata_try_get_tag_type
++gexiv2_metadata_try_get_xmp_namespace_for_tag
++gexiv2_metadata_try_get_xmp_packet
++gexiv2_metadata_try_has_tag
++gexiv2_metadata_try_register_xmp_namespace
++gexiv2_metadata_try_set_comment
++gexiv2_metadata_try_set_exif_tag_rational
++gexiv2_metadata_try_set_exif_thumbnail_from_buffer
++gexiv2_metadata_try_set_gps_info
++gexiv2_metadata_try_set_metadata_pixel_height
++gexiv2_metadata_try_set_metadata_pixel_width
++gexiv2_metadata_try_set_orientation
++gexiv2_metadata_try_set_tag_long
++gexiv2_metadata_try_set_tag_multiple
++gexiv2_metadata_try_set_tag_string
++gexiv2_metadata_try_set_xmp_tag_struct
++gexiv2_metadata_try_tag_supports_multiple_values
++gexiv2_metadata_try_unregister_all_xmp_namespaces
++gexiv2_metadata_try_unregister_xmp_namespace
++gexiv2_metadata_try_update_gps_info
++gexiv2_metadata_unregister_all_xmp_namespaces
++gexiv2_metadata_unregister_xmp_namespace
++gexiv2_metadata_update_gps_info
++gexiv2_preview_image_free
++gexiv2_preview_image_get_data
++gexiv2_preview_image_get_extension
++gexiv2_preview_image_get_height
++gexiv2_preview_image_get_mime_type
++gexiv2_preview_image_get_type
++gexiv2_preview_image_get_width
++gexiv2_preview_image_try_write_file
++gexiv2_preview_image_write_file
++gexiv2_preview_properties_get_extension
++gexiv2_preview_properties_get_height
++gexiv2_preview_properties_get_mime_type
++gexiv2_preview_properties_get_size
++gexiv2_preview_properties_get_type
++gexiv2_preview_properties_get_width
+diff --git a/gexiv2/meson.build b/gexiv2/meson.build
+index d56409c..fe7de09 100644
+--- a/gexiv2/meson.build
++++ b/gexiv2/meson.build
+@@ -66,8 +66,16 @@ gexiv2 = library('gexiv2',
+ version: libversion,
+ darwin_versions: darwin_versions,
+ dependencies : [gobject, exiv2, gio],
++ vs_module_defs : 'gexiv2.def',
+ install : true)
+
++update_def_script = find_program('update-def-file.sh', dirs: [meson.project_source_root() / 'build-aux'])
++custom_target('update-def-file',
++ output: 'gexiv2.def',
++ input: gexiv2,
++ command: [update_def_script, '@INPUT@', '@OUTPUT@'],
++ install: false)
++
+ libgexiv2 = declare_dependency(
+ link_with : gexiv2,
+ include_directories : include_directories('..'),
+--
+GitLab
+
diff --git a/vcpkg/ports/gexiv2/portfile.cmake b/vcpkg/ports/gexiv2/portfile.cmake
new file mode 100644
index 0000000..6490023
--- /dev/null
+++ b/vcpkg/ports/gexiv2/portfile.cmake
@@ -0,0 +1,37 @@
+string(REGEX MATCH [[^[0-9][0-9]*\.[1-9][0-9]*]] VERSION_MAJOR_MINOR ${VERSION})
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://download.gnome.org/sources/gexiv2/${VERSION_MAJOR_MINOR}/gexiv2-${VERSION}.tar.xz"
+ FILENAME "gexiv2-${VERSION}.tar.xz"
+ SHA512 24c97fa09b9ee32cb98da4637ea78eb72ae7e2d1792f9ebb31d63e305b3e0e1f6935b8647589c76c39ba631a15c1d8d2f3879c7dff81433786e9533b6348b6a0
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ PATCHES
+ msvc_def.patch
+)
+
+vcpkg_configure_meson(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -Dintrospection=false
+ -Dvapi=false
+ -Dgtk_doc=false
+ -Dpython3=false
+ -Dtests=false
+ -Dtools=false
+ ADDITIONAL_BINARIES
+ glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'
+)
+
+vcpkg_install_meson()
+
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_pkgconfig()
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
diff --git a/vcpkg/ports/gexiv2/vcpkg.json b/vcpkg/ports/gexiv2/vcpkg.json
new file mode 100644
index 0000000..324c9b7
--- /dev/null
+++ b/vcpkg/ports/gexiv2/vcpkg.json
@@ -0,0 +1,20 @@
+{
+ "name": "gexiv2",
+ "version": "0.14.3",
+ "port-version": 1,
+ "description": "A GObject-based Exiv2 wrapper.",
+ "homepage": "https://gitlab.gnome.org/GNOME/gexiv2/",
+ "license": "GPL-2.0-or-later",
+ "dependencies": [
+ "exiv2",
+ "glib",
+ {
+ "name": "glib",
+ "host": true
+ },
+ {
+ "name": "vcpkg-tool-meson",
+ "host": true
+ }
+ ]
+}