From 405d34b4a0af89ccb87000015656572cff19b7da Mon Sep 17 00:00:00 2001 From: LazyHamster Date: Thu, 19 Oct 2017 15:19:29 +0300 Subject: [PATCH 1/2] [GMime] Initial port. --- ports/gmime/CMakeLists.txt | 179 +++++++++++ ports/gmime/CONTROL | 4 + ports/gmime/config.h | 184 ++++++++++++ ports/gmime/gmime.def | 589 +++++++++++++++++++++++++++++++++++++ ports/gmime/idna.h | 3 + ports/gmime/portfile.cmake | 36 +++ 6 files changed, 995 insertions(+) create mode 100644 ports/gmime/CMakeLists.txt create mode 100644 ports/gmime/CONTROL create mode 100644 ports/gmime/config.h create mode 100644 ports/gmime/gmime.def create mode 100644 ports/gmime/idna.h create mode 100644 ports/gmime/portfile.cmake diff --git a/ports/gmime/CMakeLists.txt b/ports/gmime/CMakeLists.txt new file mode 100644 index 00000000000..18ec8951893 --- /dev/null +++ b/ports/gmime/CMakeLists.txt @@ -0,0 +1,179 @@ +cmake_minimum_required(VERSION 3.8) + +project(gmime C) + +set(GLIB_LIB_SUFFIX 2.0) +set(GMIME_DLL_SUFFIX 3) +set(GMIME_LIB_SUFFIX 3.0) + +# Find glib +find_path(GLIB_INCLUDE_DIR glib.h) +find_library(GLIB_GLIB_LIBRARY glib-${GLIB_LIB_SUFFIX}) +find_library(GLIB_GIO_LIBRARY gio-${GLIB_LIB_SUFFIX}) +find_library(GLIB_GOBJECT_LIBRARY gobject-${GLIB_LIB_SUFFIX}) +set(GLIB_LIBRARIES ${GLIB_GLIB_LIBRARY} ${GLIB_GIO_LIBRARY} ${GLIB_GOBJECT_LIBRARY}) + +# Find other deps +find_path(ICONV_INCLUDE_DIR iconv.h) +find_library(ICONV_LIBRARY NAMES iconv libiconv) + +find_library(IDN_LIBRARY NAMES libidn2 libidn) + +find_package(zlib REQUIRED) + +if(MSVC) + add_definitions(-D_CRT_SECURE_NO_DEPRECATE) + add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) +endif() + +add_definitions(-DHAVE_CONFIG_H) +add_definitions(-DG_LOG_DOMAIN="GMime") + +# List the source files +set(LIB_SRC gmime/gmime.c + gmime/gmime-application-pkcs7-mime.c + gmime/gmime-certificate.c + gmime/gmime-charset.c + gmime/gmime-common.c + gmime/gmime-content-type.c + gmime/gmime-crypto-context.c + gmime/gmime-data-wrapper.c + gmime/gmime-disposition.c + gmime/gmime-encodings.c + gmime/gmime-events.c + gmime/gmime-filter.c + gmime/gmime-filter-basic.c + gmime/gmime-filter-best.c + gmime/gmime-filter-charset.c + gmime/gmime-filter-checksum.c + gmime/gmime-filter-dos2unix.c + gmime/gmime-filter-enriched.c + gmime/gmime-filter-from.c + gmime/gmime-filter-gzip.c + gmime/gmime-filter-html.c + gmime/gmime-filter-smtp-data.c + gmime/gmime-filter-strip.c + gmime/gmime-filter-unix2dos.c + gmime/gmime-filter-windows.c + gmime/gmime-filter-yenc.c + gmime/gmime-format-options.c + gmime/gmime-gpg-context.c + gmime/gmime-gpgme-utils.c + gmime/gmime-header.c + gmime/gmime-iconv.c + gmime/gmime-iconv-utils.c + gmime/gmime-message.c + gmime/gmime-message-part.c + gmime/gmime-message-partial.c + gmime/gmime-multipart.c + gmime/gmime-multipart-encrypted.c + gmime/gmime-multipart-signed.c + gmime/gmime-object.c + gmime/gmime-param.c + gmime/gmime-parse-utils.c + gmime/gmime-parser.c + gmime/gmime-parser-options.c + gmime/gmime-part.c + gmime/gmime-part-iter.c + gmime/gmime-pkcs7-context.c + gmime/gmime-references.c + gmime/gmime-signature.c + gmime/gmime-stream.c + gmime/gmime-stream-buffer.c + gmime/gmime-stream-cat.c + gmime/gmime-stream-file.c + gmime/gmime-stream-filter.c + gmime/gmime-stream-fs.c + gmime/gmime-stream-gio.c + gmime/gmime-stream-mem.c + gmime/gmime-stream-mmap.c + gmime/gmime-stream-null.c + gmime/gmime-stream-pipe.c + gmime/gmime-text-part.c + gmime/gmime-utils.c + gmime/internet-address.c + util/packed.c + util/url-scanner.c + util/gtrie.c +) + +set (LIB_HEADERS gmime/gmime.h + gmime/gmime-version.h + gmime/gmime-error.h + gmime/gmime-charset.h + gmime/gmime-iconv.h + gmime/gmime-iconv-utils.h + gmime/gmime-param.h + gmime/gmime-content-type.h + gmime/gmime-disposition.h + gmime/gmime-data-wrapper.h + gmime/gmime-object.h + gmime/gmime-part.h + gmime/gmime-text-part.h + gmime/gmime-part-iter.h + gmime/gmime-application-pkcs7-mime.h + gmime/gmime-multipart.h + gmime/gmime-multipart-encrypted.h + gmime/gmime-multipart-signed.h + gmime/gmime-message.h + gmime/gmime-message-part.h + gmime/gmime-message-partial.h + gmime/internet-address.h + gmime/gmime-encodings.h + gmime/gmime-format-options.h + gmime/gmime-parser-options.h + gmime/gmime-parser.h + gmime/gmime-utils.h + gmime/gmime-references.h + gmime/gmime-stream.h + gmime/gmime-stream-buffer.h + gmime/gmime-stream-cat.h + gmime/gmime-stream-file.h + gmime/gmime-stream-filter.h + gmime/gmime-stream-fs.h + gmime/gmime-stream-gio.h + gmime/gmime-stream-mem.h + gmime/gmime-stream-mmap.h + gmime/gmime-stream-null.h + gmime/gmime-stream-pipe.h + gmime/gmime-filter.h + gmime/gmime-filter-basic.h + gmime/gmime-filter-best.h + gmime/gmime-filter-charset.h + gmime/gmime-filter-checksum.h + gmime/gmime-filter-dos2unix.h + gmime/gmime-filter-enriched.h + gmime/gmime-filter-from.h + gmime/gmime-filter-gzip.h + gmime/gmime-filter-html.h + gmime/gmime-filter-smtp-data.h + gmime/gmime-filter-strip.h + gmime/gmime-filter-unix2dos.h + gmime/gmime-filter-windows.h + gmime/gmime-filter-yenc.h + gmime/gmime-crypto-context.h + gmime/gmime-pkcs7-context.h + gmime/gmime-gpg-context.h +) + +if(MSVC AND BUILD_SHARED_LIBS) + set(MSVC_SRC gmime.def) +endif() + +add_library(${PROJECT_NAME} ${LIB_SRC} ${MSVC_SRC}) + +set_target_properties(${PROJECT_NAME} PROPERTIES + OUTPUT_NAME ${PROJECT_NAME}-${GMIME_DLL_SUFFIX} + ARCHIVE_OUTPUT_NAME ${PROJECT_NAME}-${GMIME_LIB_SUFFIX} +) + +target_include_directories(${PROJECT_NAME} PRIVATE . ./util ${GLIB_INCLUDE_DIR} ${ICONV_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR}) +target_link_libraries(${PROJECT_NAME} PRIVATE ${GLIB_LIBRARIES} ${ICONV_LIBRARY} ${ZLIB_LIBRARIES} ${IDN_LIBRARY}) +target_link_libraries(${PROJECT_NAME} PRIVATE Ws2_32.lib) + +install(TARGETS ${PROJECT_NAME} + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib) + +install(FILES ${LIB_HEADERS} DESTINATION include/gmime) diff --git a/ports/gmime/CONTROL b/ports/gmime/CONTROL new file mode 100644 index 00000000000..215df59951e --- /dev/null +++ b/ports/gmime/CONTROL @@ -0,0 +1,4 @@ +Source: gmime +Version: 3.0.2 +Build-Depends: zlib, glib, libiconv, libidn2 +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). diff --git a/ports/gmime/config.h b/ports/gmime/config.h new file mode 100644 index 00000000000..578223e20ec --- /dev/null +++ b/ports/gmime/config.h @@ -0,0 +1,184 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if GMime should enable GpgME PGP and S/MIME support. */ +/* #undef ENABLE_CRYPTO */ + +/* Define if GMime should enable warning output. */ +/* #undef ENABLE_WARNINGS */ + +/* Define to the GMime version */ +#define GMIME_VERSION "3.0.2" + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DLFCN_H */ + +/* Define to 1 if you have the `fsync' function. */ +/* #undef HAVE_FSYNC */ + +/* Define to 1 if you have the `getaddrinfo' function. */ +#define HAVE_GETADDRINFO 1 + +/* Define to 1 if you have the `getdomainname' function. */ +/* #undef HAVE_GETDOMAINNAME */ + +/* Define to 1 if you have the `gethostname' function. */ +#define HAVE_GETHOSTNAME 1 + +/* Define to 1 if you have the header with the GNU `getopt_long' + function. */ +#define HAVE_GETOPT_H 1 + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 to use auto-detected iconv-friendly charset names. */ +/* #undef HAVE_ICONV_DETECT_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have a working `mmap' system call. */ +/* #undef HAVE_MMAP */ + +/* Define to 1 if you have the `msync' function. */ +/* #undef HAVE_MSYNC */ + +/* Define to 1 if you have the `munmap' function. */ +/* #undef HAVE_MUNMAP */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_NETDB_H */ + +/* Define to 1 if you have the `poll' function. */ +/* #undef HAVE_POLL */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_POLL_H */ + +/* Define to 1 if you have the `select' function. */ +/* #undef HAVE_SELECT */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_STRINGS_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_MMAN_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_SYS_PARAM_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_TIME_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Define if struct utsname has a domainname member */ +/* #undef HAVE_UTSNAME_DOMAINNAME */ + +/* Define to 1 if you have the header file. */ +#define HAVE_WINSOCK2_H 1 + +/* Define to 1 if GNU Libidn should be used. */ +#define LIBIDN 1 + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#define LT_OBJDIR ".libs/" + +/* Define with a value if your does not define MAXHOSTNAMELEN */ +/* #undef MAXHOSTNAMELEN */ + +/* Define to 0 if your system does not have the O_LARGEFILE flag */ +/* #undef O_LARGEFILE */ + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "https://github.com/jstedfast/gmime/issues" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "gmime" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "gmime 3.0.2" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "gmime" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "3.0.2" + +/* The size of `off_t', as computed by sizeof. */ +#define SIZEOF_OFF_T 8 + +/* The size of `size_t', as computed by sizeof. */ +#define SIZEOF_SIZE_T 8 + +/* The size of `ssize_t', as computed by sizeof. */ +#define SIZEOF_SSIZE_T 8 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Using GNU libiconv */ +/* #undef USE_LIBICONV_GNU */ + +/* Using a native implementation of iconv in a separate library */ +#define USE_LIBICONV_NATIVE 1 + +/* Enable large inode numbers on Mac OS X 10.5. */ +#ifndef _DARWIN_USE_64_BIT_INODE +# define _DARWIN_USE_64_BIT_INODE 1 +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#define inline __inline +#endif + +/* Define to `int' if does not define. */ +/* #undef mode_t */ + +/* Define to `unsigned long int' if does not define. */ +/* #undef nfds_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + +/* Define to `int' if does not define. */ +#define ssize_t intptr_t + +#ifdef _MSC_VER +#pragma warning(disable: 4018) +#pragma warning(disable: 4101) +#endif diff --git a/ports/gmime/gmime.def b/ports/gmime/gmime.def new file mode 100644 index 00000000000..463dda27ebe --- /dev/null +++ b/ports/gmime/gmime.def @@ -0,0 +1,589 @@ +EXPORTS + +g_mime_application_pkcs7_mime_decrypt +g_mime_application_pkcs7_mime_encrypt +g_mime_application_pkcs7_mime_get_smime_type +g_mime_application_pkcs7_mime_get_type +g_mime_application_pkcs7_mime_new +g_mime_application_pkcs7_mime_sign +g_mime_application_pkcs7_mime_verify +g_mime_certificate_get_created +g_mime_certificate_get_digest_algo +g_mime_certificate_get_email +g_mime_certificate_get_expires +g_mime_certificate_get_fingerprint +g_mime_certificate_get_issuer_name +g_mime_certificate_get_issuer_serial +g_mime_certificate_get_key_id +g_mime_certificate_get_name +g_mime_certificate_get_pubkey_algo +g_mime_certificate_get_trust +g_mime_certificate_get_type +g_mime_certificate_list_add +g_mime_certificate_list_clear +g_mime_certificate_list_contains +g_mime_certificate_list_get_certificate +g_mime_certificate_list_get_type +g_mime_certificate_list_index_of +g_mime_certificate_list_insert +g_mime_certificate_list_length +g_mime_certificate_list_new +g_mime_certificate_list_remove +g_mime_certificate_list_remove_at +g_mime_certificate_list_set_certificate +g_mime_certificate_new +g_mime_certificate_set_created +g_mime_certificate_set_digest_algo +g_mime_certificate_set_email +g_mime_certificate_set_expires +g_mime_certificate_set_fingerprint +g_mime_certificate_set_issuer_name +g_mime_certificate_set_issuer_serial +g_mime_certificate_set_key_id +g_mime_certificate_set_name +g_mime_certificate_set_pubkey_algo +g_mime_certificate_set_trust +g_mime_charset_best +g_mime_charset_best_name +g_mime_charset_can_encode +g_mime_charset_canon_name +g_mime_charset_iconv_name +g_mime_charset_init +g_mime_charset_iso_to_windows +g_mime_charset_language +g_mime_charset_locale_name +g_mime_charset_map_init +g_mime_charset_map_shutdown +g_mime_charset_name +g_mime_charset_step +g_mime_check_version +g_mime_content_disposition_encode +g_mime_content_disposition_get_disposition +g_mime_content_disposition_get_parameter +g_mime_content_disposition_get_parameters +g_mime_content_disposition_get_type +g_mime_content_disposition_is_attachment +g_mime_content_disposition_new +g_mime_content_disposition_parse +g_mime_content_disposition_set_disposition +g_mime_content_disposition_set_parameter +g_mime_content_encoding_from_string +g_mime_content_encoding_to_string +g_mime_content_type_encode +g_mime_content_type_get_media_subtype +g_mime_content_type_get_media_type +g_mime_content_type_get_mime_type +g_mime_content_type_get_parameter +g_mime_content_type_get_parameters +g_mime_content_type_get_type +g_mime_content_type_is_type +g_mime_content_type_new +g_mime_content_type_parse +g_mime_content_type_set_media_subtype +g_mime_content_type_set_media_type +g_mime_content_type_set_parameter +g_mime_crypto_context_decrypt +g_mime_crypto_context_digest_id +g_mime_crypto_context_digest_name +g_mime_crypto_context_encrypt +g_mime_crypto_context_export_keys +g_mime_crypto_context_get_encryption_protocol +g_mime_crypto_context_get_key_exchange_protocol +g_mime_crypto_context_get_request_password +g_mime_crypto_context_get_signature_protocol +g_mime_crypto_context_get_type +g_mime_crypto_context_import_keys +g_mime_crypto_context_new +g_mime_crypto_context_register +g_mime_crypto_context_set_request_password +g_mime_crypto_context_shutdown +g_mime_crypto_context_sign +g_mime_crypto_context_verify +g_mime_data_wrapper_get_encoding +g_mime_data_wrapper_get_stream +g_mime_data_wrapper_get_type +g_mime_data_wrapper_new +g_mime_data_wrapper_new_with_stream +g_mime_data_wrapper_set_encoding +g_mime_data_wrapper_set_stream +g_mime_data_wrapper_write_to_stream +g_mime_decrypt_result_get_cipher +g_mime_decrypt_result_get_mdc +g_mime_decrypt_result_get_recipients +g_mime_decrypt_result_get_session_key +g_mime_decrypt_result_get_signatures +g_mime_decrypt_result_get_type +g_mime_decrypt_result_new +g_mime_decrypt_result_set_cipher +g_mime_decrypt_result_set_mdc +g_mime_decrypt_result_set_recipients +g_mime_decrypt_result_set_session_key +g_mime_decrypt_result_set_signatures +g_mime_encoding_base64_decode_step +g_mime_encoding_base64_encode_close +g_mime_encoding_base64_encode_step +g_mime_encoding_flush +g_mime_encoding_init_decode +g_mime_encoding_init_encode +g_mime_encoding_outlen +g_mime_encoding_quoted_decode_step +g_mime_encoding_quoted_encode_close +g_mime_encoding_quoted_encode_step +g_mime_encoding_reset +g_mime_encoding_step +g_mime_encoding_uudecode_step +g_mime_encoding_uuencode_close +g_mime_encoding_uuencode_step +g_mime_filter_backup +g_mime_filter_basic_get_type +g_mime_filter_basic_new +g_mime_filter_best_charset +g_mime_filter_best_encoding +g_mime_filter_best_get_type +g_mime_filter_best_new +g_mime_filter_charset_get_type +g_mime_filter_charset_new +g_mime_filter_checksum_get_digest +g_mime_filter_checksum_get_type +g_mime_filter_checksum_new +g_mime_filter_complete +g_mime_filter_copy +g_mime_filter_dos2unix_get_type +g_mime_filter_dos2unix_new +g_mime_filter_enriched_get_type +g_mime_filter_enriched_new +g_mime_filter_filter +g_mime_filter_from_get_type +g_mime_filter_from_new +g_mime_filter_get_type +g_mime_filter_gzip_get_type +g_mime_filter_gzip_new +g_mime_filter_html_get_type +g_mime_filter_html_new +g_mime_filter_reset +g_mime_filter_set_size +g_mime_filter_smtp_data_get_type +g_mime_filter_smtp_data_new +g_mime_filter_strip_get_type +g_mime_filter_strip_new +g_mime_filter_unix2dos_get_type +g_mime_filter_unix2dos_new +g_mime_filter_windows_get_type +g_mime_filter_windows_is_windows_charset +g_mime_filter_windows_new +g_mime_filter_windows_real_charset +g_mime_filter_yenc_get_crc +g_mime_filter_yenc_get_pcrc +g_mime_filter_yenc_get_type +g_mime_filter_yenc_new +g_mime_filter_yenc_set_crc +g_mime_filter_yenc_set_state +g_mime_format_options_add_hidden_header +g_mime_format_options_clear_hidden_headers +g_mime_format_options_clone +g_mime_format_options_create_newline_filter +g_mime_format_options_free +g_mime_format_options_get_default +g_mime_format_options_get_newline +g_mime_format_options_get_newline_format +g_mime_format_options_get_param_encoding_method +g_mime_format_options_get_type +g_mime_format_options_is_hidden_header +g_mime_format_options_new +g_mime_format_options_remove_hidden_header +g_mime_format_options_set_newline_format +g_mime_format_options_set_param_encoding_method +g_mime_gpg_context_get_type +g_mime_gpg_context_new +g_mime_header_format_addrlist +g_mime_header_format_content_disposition +g_mime_header_format_content_type +g_mime_header_format_default +g_mime_header_format_message_id +g_mime_header_format_received +g_mime_header_format_references +g_mime_header_get_name +g_mime_header_get_offset +g_mime_header_get_raw_name +g_mime_header_get_raw_value +g_mime_header_get_type +g_mime_header_get_value +g_mime_header_list_append +g_mime_header_list_clear +g_mime_header_list_contains +g_mime_header_list_get_count +g_mime_header_list_get_header +g_mime_header_list_get_header_at +g_mime_header_list_get_type +g_mime_header_list_new +g_mime_header_list_prepend +g_mime_header_list_remove +g_mime_header_list_remove_at +g_mime_header_list_set +g_mime_header_list_to_string +g_mime_header_list_write_to_stream +g_mime_header_set_raw_value +g_mime_header_set_value +g_mime_header_write_to_stream +g_mime_iconv_close +g_mime_iconv_locale_to_utf8 +g_mime_iconv_locale_to_utf8_length +g_mime_iconv_open +g_mime_iconv_strdup +g_mime_iconv_strndup +g_mime_iconv_utf8_to_locale +g_mime_iconv_utf8_to_locale_length +g_mime_init +g_mime_locale_charset +g_mime_locale_language +g_mime_message_add_mailbox +g_mime_message_foreach +g_mime_message_get_addresses +g_mime_message_get_all_recipients +g_mime_message_get_bcc +g_mime_message_get_body +g_mime_message_get_cc +g_mime_message_get_date +g_mime_message_get_from +g_mime_message_get_message_id +g_mime_message_get_mime_part +g_mime_message_get_reply_to +g_mime_message_get_sender +g_mime_message_get_subject +g_mime_message_get_to +g_mime_message_get_type +g_mime_message_new +g_mime_message_part_get_message +g_mime_message_part_get_type +g_mime_message_part_new +g_mime_message_part_new_with_message +g_mime_message_part_set_message +g_mime_message_partial_get_id +g_mime_message_partial_get_number +g_mime_message_partial_get_total +g_mime_message_partial_get_type +g_mime_message_partial_new +g_mime_message_partial_reconstruct_message +g_mime_message_partial_split_message +g_mime_message_set_date +g_mime_message_set_message_id +g_mime_message_set_mime_part +g_mime_message_set_subject +g_mime_multipart_add +g_mime_multipart_clear +g_mime_multipart_contains +g_mime_multipart_encrypted_decrypt +g_mime_multipart_encrypted_encrypt +g_mime_multipart_encrypted_get_type +g_mime_multipart_encrypted_new +g_mime_multipart_foreach +g_mime_multipart_get_boundary +g_mime_multipart_get_count +g_mime_multipart_get_epilogue +g_mime_multipart_get_part +g_mime_multipart_get_prologue +g_mime_multipart_get_subpart_from_content_id +g_mime_multipart_get_type +g_mime_multipart_index_of +g_mime_multipart_insert +g_mime_multipart_new +g_mime_multipart_new_with_subtype +g_mime_multipart_remove +g_mime_multipart_remove_at +g_mime_multipart_replace +g_mime_multipart_set_boundary +g_mime_multipart_set_epilogue +g_mime_multipart_set_prologue +g_mime_multipart_signed_get_type +g_mime_multipart_signed_new +g_mime_multipart_signed_sign +g_mime_multipart_signed_verify +g_mime_object_append_header +g_mime_object_encode +g_mime_object_get_content_disposition +g_mime_object_get_content_disposition_parameter +g_mime_object_get_content_id +g_mime_object_get_content_type +g_mime_object_get_content_type_parameter +g_mime_object_get_disposition +g_mime_object_get_header +g_mime_object_get_header_list +g_mime_object_get_headers +g_mime_object_get_type +g_mime_object_new +g_mime_object_new_type +g_mime_object_prepend_header +g_mime_object_register_type +g_mime_object_remove_header +g_mime_object_set_content_disposition +g_mime_object_set_content_disposition_parameter +g_mime_object_set_content_id +g_mime_object_set_content_type +g_mime_object_set_content_type_parameter +g_mime_object_set_disposition +g_mime_object_set_header +g_mime_object_to_string +g_mime_object_write_to_stream +g_mime_param_get_charset +g_mime_param_get_encoding_method +g_mime_param_get_lang +g_mime_param_get_name +g_mime_param_get_type +g_mime_param_get_value +g_mime_param_list_clear +g_mime_param_list_encode +g_mime_param_list_get_parameter +g_mime_param_list_get_parameter_at +g_mime_param_list_get_type +g_mime_param_list_length +g_mime_param_list_new +g_mime_param_list_parse +g_mime_param_list_remove +g_mime_param_list_remove_at +g_mime_param_list_set_parameter +g_mime_param_set_charset +g_mime_param_set_encoding_method +g_mime_param_set_lang +g_mime_param_set_value +g_mime_parser_construct_message +g_mime_parser_construct_part +g_mime_parser_eos +g_mime_parser_get_format +g_mime_parser_get_headers_begin +g_mime_parser_get_headers_end +g_mime_parser_get_mbox_marker +g_mime_parser_get_mbox_marker_offset +g_mime_parser_get_persist_stream +g_mime_parser_get_respect_content_length +g_mime_parser_get_type +g_mime_parser_init_with_stream +g_mime_parser_new +g_mime_parser_new_with_stream +g_mime_parser_options_clone +g_mime_parser_options_free +g_mime_parser_options_get_address_compliance_mode +g_mime_parser_options_get_allow_addresses_without_domain +g_mime_parser_options_get_default +g_mime_parser_options_get_fallback_charsets +g_mime_parser_options_get_parameter_compliance_mode +g_mime_parser_options_get_rfc2047_compliance_mode +g_mime_parser_options_get_type +g_mime_parser_options_new +g_mime_parser_options_set_address_compliance_mode +g_mime_parser_options_set_allow_addresses_without_domain +g_mime_parser_options_set_fallback_charsets +g_mime_parser_options_set_parameter_compliance_mode +g_mime_parser_options_set_rfc2047_compliance_mode +g_mime_parser_set_format +g_mime_parser_set_header_regex +g_mime_parser_set_persist_stream +g_mime_parser_set_respect_content_length +g_mime_parser_tell +g_mime_part_get_best_content_encoding +g_mime_part_get_content +g_mime_part_get_content_description +g_mime_part_get_content_encoding +g_mime_part_get_content_id +g_mime_part_get_content_location +g_mime_part_get_content_md5 +g_mime_part_get_filename +g_mime_part_get_openpgp_data +g_mime_part_get_type +g_mime_part_is_attachment +g_mime_part_iter_clone +g_mime_part_iter_free +g_mime_part_iter_get_current +g_mime_part_iter_get_parent +g_mime_part_iter_get_path +g_mime_part_iter_get_toplevel +g_mime_part_iter_get_type +g_mime_part_iter_is_valid +g_mime_part_iter_jump_to +g_mime_part_iter_new +g_mime_part_iter_next +g_mime_part_iter_prev +g_mime_part_iter_remove +g_mime_part_iter_replace +g_mime_part_iter_reset +g_mime_part_new +g_mime_part_new_with_type +g_mime_part_openpgp_decrypt +g_mime_part_openpgp_encrypt +g_mime_part_openpgp_sign +g_mime_part_openpgp_verify +g_mime_part_set_content +g_mime_part_set_content_description +g_mime_part_set_content_encoding +g_mime_part_set_content_id +g_mime_part_set_content_location +g_mime_part_set_content_md5 +g_mime_part_set_filename +g_mime_part_set_openpgp_data +g_mime_part_verify_content_md5 +g_mime_pkcs7_context_get_type +g_mime_pkcs7_context_new +g_mime_references_append +g_mime_references_clear +g_mime_references_copy +g_mime_references_free +g_mime_references_get_message_id +g_mime_references_get_type +g_mime_references_length +g_mime_references_new +g_mime_references_parse +g_mime_references_set_message_id +g_mime_shutdown +g_mime_signature_get_certificate +g_mime_signature_get_created +g_mime_signature_get_expires +g_mime_signature_get_status +g_mime_signature_get_type +g_mime_signature_list_add +g_mime_signature_list_clear +g_mime_signature_list_contains +g_mime_signature_list_get_signature +g_mime_signature_list_get_type +g_mime_signature_list_index_of +g_mime_signature_list_insert +g_mime_signature_list_length +g_mime_signature_list_new +g_mime_signature_list_remove +g_mime_signature_list_remove_at +g_mime_signature_list_set_signature +g_mime_signature_new +g_mime_signature_set_certificate +g_mime_signature_set_created +g_mime_signature_set_expires +g_mime_signature_set_status +g_mime_stream_buffer_get_type +g_mime_stream_buffer_gets +g_mime_stream_buffer_new +g_mime_stream_buffer_readln +g_mime_stream_cat_add_source +g_mime_stream_cat_get_type +g_mime_stream_cat_new +g_mime_stream_close +g_mime_stream_construct +g_mime_stream_eos +g_mime_stream_file_get_owner +g_mime_stream_file_get_type +g_mime_stream_file_new +g_mime_stream_file_new_with_bounds +g_mime_stream_file_open +g_mime_stream_file_set_owner +g_mime_stream_filter_add +g_mime_stream_filter_get_owner +g_mime_stream_filter_get_type +g_mime_stream_filter_new +g_mime_stream_filter_remove +g_mime_stream_filter_set_owner +g_mime_stream_flush +g_mime_stream_fs_get_owner +g_mime_stream_fs_get_type +g_mime_stream_fs_new +g_mime_stream_fs_new_with_bounds +g_mime_stream_fs_open +g_mime_stream_fs_set_owner +g_mime_stream_get_type +g_mime_stream_gio_get_owner +g_mime_stream_gio_get_type +g_mime_stream_gio_new +g_mime_stream_gio_new_with_bounds +g_mime_stream_gio_set_owner +g_mime_stream_length +g_mime_stream_mem_get_byte_array +g_mime_stream_mem_get_owner +g_mime_stream_mem_get_type +g_mime_stream_mem_new +g_mime_stream_mem_new_with_buffer +g_mime_stream_mem_new_with_byte_array +g_mime_stream_mem_set_byte_array +g_mime_stream_mem_set_owner +g_mime_stream_mmap_get_type +g_mime_stream_mmap_new +g_mime_stream_mmap_new_with_bounds +g_mime_stream_null_count_newlines +g_mime_stream_null_get_count_newlines +g_mime_stream_null_get_type +g_mime_stream_null_new +g_mime_stream_pipe_get_owner +g_mime_stream_pipe_get_type +g_mime_stream_pipe_new +g_mime_stream_pipe_set_owner +g_mime_stream_printf +g_mime_stream_read +g_mime_stream_reset +g_mime_stream_seek +g_mime_stream_set_bounds +g_mime_stream_substream +g_mime_stream_tell +g_mime_stream_write +g_mime_stream_write_string +g_mime_stream_write_to_stream +g_mime_stream_writev +g_mime_text_part_get_charset +g_mime_text_part_get_text +g_mime_text_part_get_type +g_mime_text_part_new +g_mime_text_part_new_with_subtype +g_mime_text_part_set_charset +g_mime_text_part_set_text +g_mime_utils_best_encoding +g_mime_utils_decode_8bit +g_mime_utils_decode_message_id +g_mime_utils_generate_message_id +g_mime_utils_header_decode_date +g_mime_utils_header_decode_phrase +g_mime_utils_header_decode_text +g_mime_utils_header_encode_phrase +g_mime_utils_header_encode_text +g_mime_utils_header_format_date +g_mime_utils_header_printf +g_mime_utils_quote_string +g_mime_utils_structured_header_fold +g_mime_utils_text_is_8bit +g_mime_utils_unquote_string +g_mime_utils_unstructured_header_fold +g_mime_ydecode_step +g_mime_yencode_close +g_mime_yencode_step +gmime_binary_age +gmime_error_quark +gmime_gpgme_error_quark +gmime_interface_age +gmime_major_version +gmime_micro_version +gmime_minor_version +internet_address_get_charset +internet_address_get_name +internet_address_get_type +internet_address_group_add_member +internet_address_group_get_members +internet_address_group_get_type +internet_address_group_new +internet_address_group_set_members +internet_address_list_add +internet_address_list_append +internet_address_list_clear +internet_address_list_contains +internet_address_list_encode +internet_address_list_get_address +internet_address_list_get_type +internet_address_list_index_of +internet_address_list_insert +internet_address_list_length +internet_address_list_new +internet_address_list_parse +internet_address_list_prepend +internet_address_list_remove +internet_address_list_remove_at +internet_address_list_set_address +internet_address_list_to_string +internet_address_mailbox_get_addr +internet_address_mailbox_get_idn_addr +internet_address_mailbox_get_type +internet_address_mailbox_new +internet_address_mailbox_set_addr +internet_address_set_charset +internet_address_set_name +internet_address_to_string diff --git a/ports/gmime/idna.h b/ports/gmime/idna.h new file mode 100644 index 00000000000..3313cdbc7fc --- /dev/null +++ b/ports/gmime/idna.h @@ -0,0 +1,3 @@ +// Redirects header from libidn to libidn2 +// Created to avoid sources patching +#include diff --git a/ports/gmime/portfile.cmake b/ports/gmime/portfile.cmake new file mode 100644 index 00000000000..98b3a104f5c --- /dev/null +++ b/ports/gmime/portfile.cmake @@ -0,0 +1,36 @@ +include(vcpkg_common_functions) + +set(LIB_NAME gmime) +set(LIB_VERSION 3.0.2) + +set(LIB_FILENAME ${LIB_NAME}-${LIB_VERSION}.tar.xz) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${LIB_NAME}-${LIB_VERSION}) + +vcpkg_download_distfile(ARCHIVE + URLS "https://download.gnome.org/sources/gmime/3.0/${LIB_FILENAME}" + FILENAME "${LIB_FILENAME}" + SHA512 246f489c168ce7e04fab664b7e9ae7772ae52f0063fb0eac9153460d84fa5d9712457d81fbd1bdcdadb7e03007cf71ed3bad5287f1639214f54167427c9209ca +) +vcpkg_extract_source_archive(${ARCHIVE}) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) + +# We can use file supplied with original sources +configure_file(${SOURCE_PATH}/build/vs2010/unistd.h ${SOURCE_PATH} COPYONLY) + +configure_file(${CMAKE_CURRENT_LIST_DIR}/config.h ${SOURCE_PATH} COPYONLY) +configure_file(${CMAKE_CURRENT_LIST_DIR}/idna.h ${SOURCE_PATH} COPYONLY) +configure_file(${CMAKE_CURRENT_LIST_DIR}/gmime.def ${SOURCE_PATH} COPYONLY) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} +) + +vcpkg_install_cmake() + +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) + +# License and man +file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${LIB_NAME} RENAME copyright) + +vcpkg_copy_pdbs() From 29e4c5302e61c8fe927da2f79c278dd70fa03d85 Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Wed, 25 Oct 2017 16:57:12 -0700 Subject: [PATCH 2/2] [gmime] Prefer ninja --- ports/gmime/portfile.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/ports/gmime/portfile.cmake b/ports/gmime/portfile.cmake index 98b3a104f5c..1fa50063c88 100644 --- a/ports/gmime/portfile.cmake +++ b/ports/gmime/portfile.cmake @@ -24,6 +24,7 @@ configure_file(${CMAKE_CURRENT_LIST_DIR}/gmime.def ${SOURCE_PATH} COPYONLY) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA ) vcpkg_install_cmake()