aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/gmime
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/gmime')
-rw-r--r--vcpkg/ports/gmime/msvc-ssize_t.diff33
-rw-r--r--vcpkg/ports/gmime/portfile.cmake70
-rw-r--r--vcpkg/ports/gmime/subdirs.diff16
-rw-r--r--vcpkg/ports/gmime/vcpkg.json30
4 files changed, 149 insertions, 0 deletions
diff --git a/vcpkg/ports/gmime/msvc-ssize_t.diff b/vcpkg/ports/gmime/msvc-ssize_t.diff
new file mode 100644
index 0000000..677187d
--- /dev/null
+++ b/vcpkg/ports/gmime/msvc-ssize_t.diff
@@ -0,0 +1,33 @@
+diff --git a/configure.ac b/configure.ac
+index 9d368e0..c534a09 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -168,6 +168,13 @@ AC_TYPE_MODE_T
+ AC_TYPE_OFF_T
+ AC_TYPE_SIZE_T
+ AC_TYPE_SSIZE_T
++AH_BOTTOM([
++#ifdef _MSC_VER
++#undef ssize_t;
++#include <BaseTsd.h>
++typedef SSIZE_T ssize_t;
++#endif
++])
+ AC_TYPE_UINT32_T
+ AC_TYPE_UINT64_T
+ AC_TYPE_UINT8_T
+diff --git a/gmime/gmime.h b/gmime/gmime.h
+index ef6b93e..d3696ac 100644
+--- a/gmime/gmime.h
++++ b/gmime/gmime.h
+@@ -22,6 +22,10 @@
+ #ifndef __GMIME_H__
+ #define __GMIME_H__
+
++#ifdef _MSC_VER
++#include <BaseTsd.h>
++typedef SSIZE_T ssize_t;
++#endif
+ #include <glib.h>
+ #include <gmime/gmime-version.h>
+ #include <gmime/gmime-error.h>
diff --git a/vcpkg/ports/gmime/portfile.cmake b/vcpkg/ports/gmime/portfile.cmake
new file mode 100644
index 0000000..beab3f4
--- /dev/null
+++ b/vcpkg/ports/gmime/portfile.cmake
@@ -0,0 +1,70 @@
+vcpkg_download_distfile(ARCHIVE
+ URLS https://github.com/jstedfast/gmime/releases/download/${VERSION}/gmime-${VERSION}.tar.xz
+ FILENAME "gmime-${VERSION}.tar.xz"
+ SHA512 cafb89854b2441508bf940fd6f991739d30fb137b8928ad33e8e4d2a0293a6460e4d1318e73c3ee9e5a964b692f36e7a4eb5f2930c6998698bd9edf866629655
+)
+
+vcpkg_extract_source_archive(
+ SOURCE_PATH
+ ARCHIVE "${ARCHIVE}"
+ PATCHES
+ subdirs.diff
+ msvc-ssize_t.diff
+)
+
+set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/aclocal/\"") # for glib
+set(ENV{GTKDOCIZE} true)
+
+vcpkg_list(SET options)
+set(iconv_detect_h "${CURRENT_HOST_INSTALLED_DIR}/share/${PORT}/iconv-detect-${VCPKG_CMAKE_SYSTEM_NAME}.h")
+if(EXISTS "${iconv_detect_h}")
+ vcpkg_list(APPEND options "ac_cv_have_iconv_detect_h=yes")
+elseif(VCPKG_CROSSCOMPILING)
+ vcpkg_list(APPEND options "ac_cv_have_iconv_detect_h=no")
+endif()
+
+if("crypto" IN_LIST FEATURES)
+ vcpkg_list(APPEND options "--enable-crypto")
+else()
+ vcpkg_list(APPEND options "--disable-crypto")
+endif()
+
+vcpkg_configure_make(
+ SOURCE_PATH "${SOURCE_PATH}"
+ AUTOCONFIG
+ ADD_BIN_TO_PATH # for iconv-detect
+ OPTIONS
+ ${options}
+ --disable-glibtest
+ --disable-introspection
+ --disable-vala
+)
+
+if(EXISTS "${iconv_detect_h}")
+ file(COPY_FILE "${iconv_detect_h}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/iconv-detect.h")
+ if(NOT VCPKG_BUILD_TYPE)
+ file(COPY_FILE "${iconv_detect_h}" "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/iconv-detect.h")
+ endif()
+endif()
+
+if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
+ file(COPY "${SOURCE_PATH}/build/vs2017/unistd.h" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+ if(NOT VCPKG_BUILD_TYPE)
+ file(COPY "${SOURCE_PATH}/build/vs2017/unistd.h" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+ endif()
+endif()
+
+vcpkg_install_make()
+vcpkg_copy_pdbs()
+vcpkg_fixup_pkgconfig()
+
+if(NOT VCPKG_CROSSCOMPILING)
+ file(INSTALL "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/iconv-detect.h"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}"
+ RENAME "iconv-detect-${VCPKG_CMAKE_SYSTEM_NAME}.h"
+ )
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
diff --git a/vcpkg/ports/gmime/subdirs.diff b/vcpkg/ports/gmime/subdirs.diff
new file mode 100644
index 0000000..24ef508
--- /dev/null
+++ b/vcpkg/ports/gmime/subdirs.diff
@@ -0,0 +1,16 @@
+diff --git a/Makefile.am b/Makefile.am
+index c004167..0fafe72 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,10 +2,9 @@
+
+ ACLOCAL_AMFLAGS = -I m4
+
+-SUBDIRS = m4 build util gmime tests docs
++SUBDIRS = m4 build util gmime
+
+ if !PLATFORM_WIN32
+-SUBDIRS += examples
+ endif
+
+ SUBDIRS += tools .
diff --git a/vcpkg/ports/gmime/vcpkg.json b/vcpkg/ports/gmime/vcpkg.json
new file mode 100644
index 0000000..c483396
--- /dev/null
+++ b/vcpkg/ports/gmime/vcpkg.json
@@ -0,0 +1,30 @@
+{
+ "name": "gmime",
+ "version": "3.2.15",
+ "port-version": 1,
+ "description": "GMime is a C/C++ library which may be used for the creation and parsing of messages using the Multipurpose Internet Mail Extension (MIME).",
+ "homepage": "https://github.com/jstedfast/gmime",
+ "license": "LGPL-2.1-or-later",
+ "supports": "!xbox",
+ "dependencies": [
+ "glib",
+ {
+ "name": "gmime",
+ "host": true
+ },
+ "libiconv",
+ "libidn2",
+ "zlib"
+ ],
+ "features": {
+ "crypto": {
+ "description": "PGP and S/MIME support",
+ "dependencies": [
+ {
+ "name": "gpgme",
+ "default-features": false
+ }
+ ]
+ }
+ }
+}