Merge pull request #2015 from lazyhamster/gmime

[GMime] Initial port.
This commit is contained in:
Robert Schumacher 2017-10-25 16:57:47 -07:00 committed by GitHub
commit 38522146d7
6 changed files with 996 additions and 0 deletions

179
ports/gmime/CMakeLists.txt Normal file
View File

@ -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)

4
ports/gmime/CONTROL Normal file
View File

@ -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).

184
ports/gmime/config.h Normal file
View File

@ -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 <dlfcn.h> 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 <getopt.h> 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 <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the <memory.h> 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 <netdb.h> 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 <poll.h> 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 <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
/* #undef HAVE_STRINGS_H */
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/mman.h> header file. */
/* #undef HAVE_SYS_MMAN_H */
/* Define to 1 if you have the <sys/param.h> header file. */
/* #undef HAVE_SYS_PARAM_H */
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <time.h> header file. */
#define HAVE_TIME_H 1
/* Define to 1 if you have the <unistd.h> 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 <winsock2.h> 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 <sys/param.h> 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 <sys/types.h> does not define. */
/* #undef mode_t */
/* Define to `unsigned long int' if <poll.h> does not define. */
/* #undef nfds_t */
/* Define to `long int' if <sys/types.h> does not define. */
/* #undef off_t */
/* Define to `unsigned int' if <sys/types.h> does not define. */
/* #undef size_t */
/* Define to `int' if <sys/types.h> does not define. */
#define ssize_t intptr_t
#ifdef _MSC_VER
#pragma warning(disable: 4018)
#pragma warning(disable: 4101)
#endif

589
ports/gmime/gmime.def Normal file
View File

@ -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

3
ports/gmime/idna.h Normal file
View File

@ -0,0 +1,3 @@
// Redirects header from libidn to libidn2
// Created to avoid sources patching
#include <idn2.h>

View File

@ -0,0 +1,37 @@
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}
PREFER_NINJA
)
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()