Migrated build system to CMake. Conditional file compilation. Automatic selection of platform handler.

This commit is contained in:
Vincent Richard 2012-11-01 18:20:06 +01:00
parent 8a8ce29f13
commit cce1c28bce
144 changed files with 2171 additions and 1579 deletions

26
.gitignore vendored
View File

@ -1,17 +1,33 @@
*.o *.o
*.swp *.sw?
build/
*.a *.a
*.dSYM *.dSYM
*.vim
/libvmime.a # Doxygen-generated
/vmime.pc doc/html/*
/vmime/config.hpp
# SConstruct # SConstruct
.sconsign.dblite .sconsign.dblite
/options.cache /options.cache
# CMake-generated / Build files
/CMakeFiles/
/CMakeCache.txt
/_CPack_Packages/
/cmake_install.cmake
/CPackConfig.cmake
/CPackSourceConfig.cmake
/Doxyfile
/Makefile
/install_manifest*
/libvmime.a
/libvmime.pc
/libvmime*
/vmime/config.hpp
/COPYING.txt
/build/
# Mac # Mac
._DS_Store ._DS_Store

630
CMakeLists.txt Normal file
View File

@ -0,0 +1,630 @@
#
# CMake configuration file for VMime
#
# Usage:
#
# . 'cmake -LH' to list build settings variable
#
# . 'cmake -G <generator>' to generate makefiles for a build system
# eg. cmake -G "Unix Makefiles"
#
# For more information, please visit:
# http://www.cmake.org
#
CMAKE_MINIMUM_REQUIRED(VERSION 2.6 FATAL_ERROR)
INCLUDE(cmake/Utils.cmake)
# CMake configuration
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY build/bin)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY build/lib)
SET(CMAKE_VERBOSE_MAKEFILE ON)
# Project
PROJECT(vmime)
# Package version number
SET(VMIME_VERSION_MAJOR 0)
SET(VMIME_VERSION_MINOR 9)
SET(VMIME_VERSION_MICRO 2)
# API version number (libtool)
#
# Increment this number only immediately before a public release.
# This is independent from package version number.
#
# See: http://www.gnu.org/software/libtool/manual.html#Libtool-versioning
#
# . Implementation changed (eg. bug/security fix): REVISION++
# . Interfaces added/removed/changed: CURRENT++, REVISION=0
# . Interfaces added (upward-compatible changes): AGE++
# . Interfaces removed: AGE=0
SET(VMIME_API_VERSION_CURRENT 0)
SET(VMIME_API_VERSION_REVISION 0)
SET(VMIME_API_VERSION_AGE 0)
SET(VMIME_VERSION ${VMIME_VERSION_MAJOR}.${VMIME_VERSION_MINOR}.${VMIME_VERSION_MICRO})
SET(VMIME_API_VERSION ${VMIME_API_VERSION_CURRENT}.${VMIME_API_VERSION_REVISION}.${VMIME_API_VERSION_AGE})
##############################################################################
# VMime Library
# Set base name
SET(VMIME_LIBRARY_NAME vmime)
# Source files
FILE(
GLOB_RECURSE
VMIME_LIBRARY_SRC_FILES
src/*
)
FILE(
GLOB_RECURSE
VMIME_LIBRARY_INCLUDE_FILES
vmime/*
)
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_SOURCE_DIR}
)
# Automatically set lib suffix
IF(UNIX AND NOT APPLE AND NOT CMAKE_CROSSCOMPILING AND NOT EXISTS "/etc/debian_version")
IF(CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT LIB_SUFFIX)
SET(LIB_SUFFIX 64)
ENDIF()
ENDIF()
# Shared library
ADD_LIBRARY(
${VMIME_LIBRARY_NAME}
SHARED
${VMIME_LIBRARY_SRC_FILES}
${VMIME_LIBRARY_INCLUDE_FILES}
)
SET_TARGET_PROPERTIES(
${VMIME_LIBRARY_NAME}
PROPERTIES
VERSION "${VMIME_VERSION}"
SOVERSION "${VMIME_API_VERSION}"
)
# Static library
#
# Note: cannot have two targets with the same name so the static version has
# '-static' appended and then the name of the output file is set separately.
ADD_LIBRARY(
${VMIME_LIBRARY_NAME}-static
STATIC
${VMIME_LIBRARY_SRC_FILES}
${VMIME_LIBRARY_INCLUDE_FILES}
)
SET_TARGET_PROPERTIES(
${VMIME_LIBRARY_NAME}-static
PROPERTIES
OUTPUT_NAME ${VMIME_LIBRARY_NAME}
)
# These next two lines are required but it is unclear exactly what they do.
# The CMake FAQ mentions they are necessary and it does not work otherwise.
SET_TARGET_PROPERTIES(${VMIME_LIBRARY_NAME} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
SET_TARGET_PROPERTIES(${VMIME_LIBRARY_NAME}-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
SET(CMAKE_INSTALL_LIBDIR lib CACHE PATH "Output directory for libraries")
# Installation of libraries
INSTALL(
TARGETS ${VMIME_LIBRARY_NAME}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT sharedlibs
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT sharedlibs
)
INSTALL(
TARGETS ${VMIME_LIBRARY_NAME}-static
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT staticlibs
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT staticlibs
)
# Installation of header files
INSTALL_HEADERS_WITH_DIRECTORY(VMIME_LIBRARY_INCLUDE_FILES headers)
#INSTALL(
# FILES ${VMIME_LIBRARY_INCLUDE_FILES}
# DESTINATION include
# COMPONENT headers
#)
##############################################################################
# Tests
OPTION(
VMIME_BUILD_TESTS
"Build unit tests (this will create a 'run-tests' binary)"
OFF
)
IF(VMIME_BUILD_TESTS)
FILE(
GLOB_RECURSE
VMIME_TESTS_SRC_FILES
tests/*Test.cpp tests/testRunner.cpp tests/testUtils.cpp
)
ADD_EXECUTABLE(
"run-tests"
${VMIME_TESTS_SRC_FILES}
)
INCLUDE(cmake/FindCppUnit.cmake)
INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(
"run-tests"
${VMIME_LIBRARY_NAME}
${CPPUNIT_LIBRARY}
)
ADD_DEPENDENCIES(
"run-tests"
${VMIME_LIBRARY_NAME}
)
ENDIF()
##############################################################################
# Packaging / Distribution
# Package information
SET(VMIME_PACKAGE_NAME ${VMIME_LIBRARY_NAME})
SET(VMIME_PACKAGE_VERSION ${VMIME_VERSION})
SET(VMIME_PACKAGE_CONTACT "Vincent Richard <vincent@vmime.org>")
SET(VMIME_PACKAGE_DESCRIPTION "VMime C++ Mail Library (http://www.vmime.org)")
SET(CPACK_PACKAGE_NAME "${VMIME_PACKAGE_NAME}")
SET(CPACK_PACKAGE_CONTACT "${VMIME_PACKAGE_CONTACT}")
SET(CPACK_PACKAGE_DESCRIPTION "${VMIME_PACKAGE_DESCRIPTION}")
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${CPACK_PACKAGE_DESCRIPTION}")
SET(CPACK_PACKAGE_VERSION "${VMIME_PACKAGE_VERSION}")
# Package settings
SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYING)
IF(APPLE)
# CPack/PackageManager won't allow file without recognized extension
# to be used as license file.
CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/COPYING" "${CMAKE_BINARY_DIR}/COPYING.txt" COPYONLY)
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_BINARY_DIR}/COPYING.txt")
ELSE()
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
ENDIF(APPLE)
SET(CPACK_SOURCE_GENERATOR TGZ)
SET(CPACK_SOURCE_IGNORE_FILES "\\\\.git;~$;build/")
SET(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION})
# Set components
SET(CPACK_COMPONENTS_ALL sharedlibs staticlibs headers)
SET(CPACK_COMPONENT_SHAREDLIBS_DISPLAY_NAME "Shared libraries")
SET(CPACK_COMPONENT_SHAREDLIBS_DESCRIPTION
"Shared library for general use.")
SET(CPACK_COMPONENT_STATICLIBS_DISPLAY_NAME "Static libraries")
SET(CPACK_COMPONENT_STATICLIBS_DESCRIPTION
"Static library, good if you want to embed VMime in your application.")
SET(CPACK_COMPONENT_HEADERS_DISPLAY_NAME "C++ Headers")
SET(CPACK_COMPONENT_HEADERS_DESCRIPTION
"C/C++ header files.")
SET(CPACK_COMPONENT_SHAREDLIBS_GROUP "Development")
SET(CPACK_COMPONENT_STATICLIBS_GROUP "Development")
SET(CPACK_COMPONENT_HEADERS_GROUP "Development")
SET(CPACK_COMPONENT_GROUP_DEVELOPMENT_DESCRIPTION "")
# Make a target "dist" to generate tarball
SET(ARCHIVE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION})
ADD_CUSTOM_TARGET(
dist
COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD
| bzip2 > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
# PkgConfig
SET(prefix ${CMAKE_INSTALL_PREFIX})
SET(exec_prefix ${CMAKE_INSTALL_PREFIX}/bin)
SET(includedir ${CMAKE_INSTALL_PREFIX}/include/vmime)
SET(VMIME_PKGCONFIG_LIBS "")
SET(VMIME_PKGCONFIG_CFLAGS "")
SET(VMIME_PKGCONFIG_REQUIRES "")
IF(${UNIX})
SET(libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
ENDIF(${UNIX})
IF(${WIN32})
SET(libdir ${CMAKE_INSTALL_PREFIX}/bin)
ENDIF(${WIN32})
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/libvmime.pc.in ${CMAKE_BINARY_DIR}/libvmime.pc @ONLY)
INSTALL(FILES ${CMAKE_BINARY_DIR}/libvmime.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig COMPONENT headers)
##############################################################################
# Build type
IF(NOT CMAKE_BUILD_TYPE)
SET(
CMAKE_BUILD_TYPE
"Debug"
CACHE STRING
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
FORCE
)
ENDIF(NOT CMAKE_BUILD_TYPE)
# Set a default build type for single-configuration
# CMake generators if no build type is set.
IF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Debug)
ENDIF()
# Debug build
MESSAGE("-- Build type: ${CMAKE_BUILD_TYPE}")
IF(${CMAKE_BUILD_TYPE} STREQUAL Debug)
ADD_DEFINITIONS(-DDEBUG)
ENDIF(${CMAKE_BUILD_TYPE} STREQUAL Debug)
IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
SET(VMIME_DEBUG 1)
ELSE()
SET(VMIME_DEBUG 0)
ENDIF()
##############################################################################
# Test endianness and basic type sizes
INCLUDE(TestBigEndian)
TEST_BIG_ENDIAN(BIGENDIAN)
IF(BIGENDIAN EQUAL 0)
set(VMIME_BYTE_ORDER_BIG_ENDIAN 0)
set(VMIME_BYTE_ORDER_LITTLE_ENDIAN 1)
ELSE(BIGENDIAN EQUAL 0)
SET(VMIME_BYTE_ORDER_BIG_ENDIAN 1)
SET(VMIME_BYTE_ORDER_LITTLE_ENDIAN 0)
ENDIF(BIGENDIAN EQUAL 0)
SET(VMIME_DEFAULT_8BIT_TYPE "char")
SET(VMIME_DEFAULT_16BIT_TYPE "short")
SET(VMIME_DEFAULT_32BIT_TYPE "int")
SET(
VMIME_8BIT_TYPE
${VMIME_DEFAULT_8BIT_TYPE}
CACHE STRING
"The C-language 8-bit type for your platform"
)
SET(
VMIME_16BIT_TYPE
${VMIME_DEFAULT_16BIT_TYPE}
CACHE STRING
"The C-language 16-bit type for your platform"
)
SET(
VMIME_32BIT_TYPE
${VMIME_DEFAULT_32BIT_TYPE}
CACHE STRING
"The C-language 32-bit type for your platform"
)
INCLUDE(cmake/TargetArch.cmake)
TARGET_ARCHITECTURE(CMAKE_TARGET_ARCHITECTURES)
##############################################################################
# Sendmail path
FOREACH (SENDMAIL_PATH /usr/sbin/sendmail /usr/lib/sendmail /usr/bin/sendmail /bin/sendmail /var/qmail/bin/qmail-inject /bin/cgimail)
IF(EXISTS ${SENDMAIL_PATH})
MESSAGE(STATUS "Sendmail binary found at ${SENDMAIL_PATH}")
SET(VMIME_DEFAULT_SENDMAIL_PATH ${SENDMAIL_PATH})
ENDIF()
ENDFOREACH(SENDMAIL_PATH)
SET(
VMIME_SENDMAIL_PATH
${VMIME_DEFAULT_SENDMAIL_PATH}
CACHE
STRING
"Specifies the path to sendmail binary"
)
##############################################################################
# Messaging features
# Module
OPTION(
VMIME_HAVE_MESSAGING_FEATURES
"Enable messaging features (connection to IMAP, POP3, SMTP...)"
ON
)
# Protocols
OPTION(
VMIME_HAVE_MESSAGING_PROTO_POP3
"Enable POP3 protocol"
ON
)
OPTION(
VMIME_HAVE_MESSAGING_PROTO_SMTP
"Enable SMTP protocol"
ON
)
OPTION(
VMIME_HAVE_MESSAGING_PROTO_IMAP
"Enable IMAP protocol"
ON
)
OPTION(
VMIME_HAVE_MESSAGING_PROTO_MAILDIR
"Enable Maildir protocol"
ON
)
OPTION(
VMIME_HAVE_MESSAGING_PROTO_SENDMAIL
"Enable Sendmail protocol"
ON
)
##############################################################################
# File-system features
OPTION(
VMIME_HAVE_FILESYSTEM_FEATURES
"Enable file-system features (required for file attachments and Maildir)"
ON
)
##############################################################################
# SASL support
INCLUDE(cmake/FindGSasl.cmake)
OPTION(
VMIME_HAVE_SASL_SUPPORT
"Enable SASL support (requires GNU SASL library)"
ON
)
IF(VMIME_HAVE_SASL_SUPPORT)
INCLUDE_DIRECTORIES(
${INCLUDE_DIRECTORIES}
${GSASL_INCLUDE_DIR}
)
TARGET_LINK_LIBRARIES(
${VMIME_LIBRARY_NAME}
${TARGET_LINK_LIBRARIES}
${GSASL_LIBRARIES}
)
SET(VMIME_PKGCONFIG_LIBS "${VMIME_PKGCONFIG_LIBS} ${GSASL_LIBRARIES}")
SET(VMIME_PKGCONFIG_CFLAGS "${VMIME_PKGCONFIG_CFLAGS} ${GSASL_INCLUDE_DIR}")
SET(VMIME_PKGCONFIG_REQUIRES "${VMIME_PKGCONFIG_REQUIRES} libgsasl")
ENDIF()
##############################################################################
# SSL/TLS support
INCLUDE(FindGnuTLS)
INCLUDE(CheckFunctionExists)
SET(CMAKE_REQUIRED_LIBRARIES "${GNUTLS_LIBRARY}")
CHECK_FUNCTION_EXISTS(gnutls_priority_set_direct VMIME_HAVE_GNUTLS_PRIORITY_FUNCS)
OPTION(
VMIME_HAVE_TLS_SUPPORT
"SSL/TLS support (requires GNU TLS library)"
ON
)
OPTION(
VMIME_TLS_SUPPORT_LIB_IS_GNUTLS
"Use GNU TLS library for SSL/TLS support"
ON
)
IF(VMIME_HAVE_TLS_SUPPORT)
IF(VMIME_TLS_SUPPORT_LIB_IS_GNUTLS)
INCLUDE_DIRECTORIES(
${INCLUDE_DIRECTORIES}
${GNUTLS_INCLUDE_DIR}
)
LINK_DIRECTORIES(
${LINK_DIRECTORIES}
${GNUTLS_LIBRARY_DIRS}
)
TARGET_LINK_LIBRARIES(
${VMIME_LIBRARY_NAME}
${TARGET_LINK_LIBRARIES}
${GNUTLS_LIBRARY}
)
SET(VMIME_PKGCONFIG_LIBS "${VMIME_PKGCONFIG_LIBS} ${GNUTLS_LIBRARY_DIRS} ${GNUTLS_LIBRARY}")
SET(VMIME_PKGCONFIG_CFLAGS "${VMIME_PKGCONFIG_CFLAGS} ${GNUTLS_INCLUDE_DIR}")
SET(VMIME_PKGCONFIG_REQUIRES "${VMIME_PKGCONFIG_REQUIRES} libgnutls")
ELSE()
MESSAGE(FATAL_ERROR "TLS support is enabled, but no TLS/SSL library was selected/found")
ENDIF()
ENDIF(VMIME_HAVE_TLS_SUPPORT)
##############################################################################
# iconv
INCLUDE(cmake/FindIconv.cmake)
INCLUDE_DIRECTORIES(
${INCLUDE_DIRECTORIES}
${ICONV_INCLUDE_DIR}
)
TARGET_LINK_LIBRARIES(
${VMIME_LIBRARY_NAME}
${TARGET_LINK_LIBRARIES}
${ICONV_LIBRARIES}
)
##############################################################################
# Platform
SET(VMIME_PLATFORM_IS_POSIX OFF)
SET(VMIME_PLATFORM_IS_WINDOWS OFF)
IF(WIN32)
SET(VMIME_PLATFORM_IS_WINDOWS ON)
ELSE()
SET(VMIME_PLATFORM_IS_POSIX ON)
ENDIF()
##############################################################################
# POSIX-specific checks
INCLUDE(CheckFunctionExists)
CHECK_FUNCTION_EXISTS(getaddrinfo VMIME_HAVE_GETADDRINFO)
FIND_PACKAGE(Threads)
FIND_LIBRARY(PTHREAD pthread)
IF(PTHREAD)
SET(VMIME_HAVE_PTHREAD 1)
ELSE(PTHREAD)
SET(VMIME_HAVE_PTHREAD 0)
ENDIF(PTHREAD)
##############################################################################
# Additional compiler flags
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
SET(
CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -D_REENTRANT=1 -W -Wall -pedantic -Warray-bounds-pointer-arithmetic -Wold-style-cast -Wconversion -Wcast-align -Wno-sign-conversion"
CACHE STRING
"g++ Compiler Flags"
FORCE
)
SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
#SET(CMAKE_EXE_LINKER_FLAGS "-s")
ELSE()
IF(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
SET(
CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -D_REENTRANT=1 -W -Wall -ansi -pedantic -Wpointer-arith -Wold-style-cast -Wconversion -Wcast-align"
CACHE STRING
"g++ Compiler Flags"
FORCE
)
SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
#SET(CMAKE_EXE_LINKER_FLAGS "-s")
ENDIF()
ENDIF()
##############################################################################
# Documentation
FIND_PACKAGE(Doxygen)
IF(DOXYGEN_FOUND)
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/Doxyfile.in ${CMAKE_BINARY_DIR}/Doxyfile @ONLY)
# Make a target so that documentation can be generated by running "make doc"
ADD_CUSTOM_TARGET(
doc
${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen" VERBATIM
)
ENDIF(DOXYGEN_FOUND)
##############################################################################
# Sanity checks
# Maildir protocol is available only if file-system features are enabled
IF(VMIME_HAVE_MESSAGING_FEATURES AND VMIME_HAVE_MESSAGING_PROTO_MAILDIR AND NOT VMIME_HAVE_FILESYSTEM_FEATURES)
MESSAGE(FATAL_ERROR "Maildir protocol requires file-system support (VMIME_HAVE_FILESYSTEM_FEATURES must be set to ON).")
ENDIF()
# Path to 'sendmail' must be specified if Sendmail protocol is enabled
IF(VMIME_HAVE_MESSAGING_PROTO_SENDMAIL)
IF(NOT VMIME_SENDMAIL_PATH OR VMIME_SENDMAIL_PATH STREQUAL "")
MESSAGE(FATAL_ERROR "Enabling Sendmail protocol requires that you specify path to 'sendmail' binary.")
ENDIF()
ENDIF()
# Set our configure file
CONFIGURE_FILE(cmake/config.hpp.cmake vmime/config.hpp)
INCLUDE(CPack)

View File

@ -29,7 +29,7 @@ PROJECT_NUMBER =
# If a relative path is entered, it will be relative to the location # If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used. # where doxygen was started. If left blank the current directory will be used.
OUTPUT_DIRECTORY = ./doc/ OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@/doc/
# The OUTPUT_LANGUAGE tag is used to specify the language in which all # The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this # documentation generated by doxygen is written. Doxygen will use this
@ -344,7 +344,7 @@ WARN_LOGFILE =
# directories like "/usr/src/myproject". Separate the files or directories # directories like "/usr/src/myproject". Separate the files or directories
# with spaces. # with spaces.
INPUT = ./src/ ./vmime/ INPUT = @CMAKE_CURRENT_SOURCE_DIR@/src/ @CMAKE_CURRENT_SOURCE_DIR@/vmime/
# If the value of the INPUT tag contains directories, you can use the # If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp

View File

@ -1,8 +1,13 @@
Where are the ./configure script and the Makefile's? Where are the ./configure script and the Makefile's?
Configure and Make scripts are not included in the git source tree. They are Configure and Make scripts are not included in the git source tree. They are
automatically generated by the SConstruct script. automatically generated by the CMake script.
Just type "scons autotools" to generate everything needed for the traditional Just use the following instruction to generate everything needed for the
./configure, make, make install build process. traditional "make" and "make install" build process.
cmake -G "Unix Makefiles"
Please note that "configure" script is not needed anymore, as platform
checks are now done by CMake.

1478
SConstruct

File diff suppressed because it is too large Load Diff

34
cmake/FindCppUnit.cmake Normal file
View File

@ -0,0 +1,34 @@
#
# http://root.cern.ch/viewvc/trunk/cint/reflex/cmake/modules/FindCppUnit.cmake
#
# - Find CppUnit
# This module finds an installed CppUnit package.
#
# It sets the following variables:
# CPPUNIT_FOUND - Set to false, or undefined, if CppUnit isn't found.
# CPPUNIT_INCLUDE_DIR - The CppUnit include directory.
# CPPUNIT_LIBRARY - The CppUnit library to link against.
FIND_PATH(CPPUNIT_INCLUDE_DIR cppunit/Test.h)
FIND_LIBRARY(CPPUNIT_LIBRARY NAMES cppunit)
IF (CPPUNIT_INCLUDE_DIR AND CPPUNIT_LIBRARY)
SET(CPPUNIT_FOUND TRUE)
ENDIF (CPPUNIT_INCLUDE_DIR AND CPPUNIT_LIBRARY)
IF (CPPUNIT_FOUND)
# show which CppUnit was found only if not quiet
IF (NOT CppUnit_FIND_QUIETLY)
MESSAGE(STATUS "Found CppUnit: ${CPPUNIT_LIBRARY}")
ENDIF (NOT CppUnit_FIND_QUIETLY)
ELSE (CPPUNIT_FOUND)
# fatal error if CppUnit is required but not found
IF (CppUnit_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find CppUnit")
ENDIF (CppUnit_FIND_REQUIRED)
ENDIF (CPPUNIT_FOUND)

51
cmake/FindGSasl.cmake Normal file
View File

@ -0,0 +1,51 @@
# - Try to find the GNU sasl library (gsasl)
#
# Once done this will define
#
# GNUTLS_FOUND - System has gnutls
# GNUTLS_INCLUDE_DIR - The gnutls include directory
# GNUTLS_LIBRARIES - The libraries needed to use gnutls
# GNUTLS_DEFINITIONS - Compiler switches required for using gnutls
# Adapted from FindGnuTLS.cmake, which is:
# Copyright 2009, Brad Hards, <bradh@kde.org>
#
# Changes are Copyright 2009, Michele Caini, <skypjack@gmail.com>
#
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
IF (GSASL_INCLUDE_DIR AND GSASL_LIBRARIES)
# in cache already
SET(GSasl_FIND_QUIETLY TRUE)
ENDIF (GSASL_INCLUDE_DIR AND GSASL_LIBRARIES)
IF (NOT WIN32)
# use pkg-config to get the directories and then use these values
# in the FIND_PATH() and FIND_LIBRARY() calls
find_package(PkgConfig)
pkg_check_modules(PC_GSASL libgsasl)
SET(GSASL_DEFINITIONS ${PC_GSASL_CFLAGS_OTHER})
ENDIF (NOT WIN32)
FIND_PATH(GSASL_INCLUDE_DIR gsasl.h
HINTS
${PC_GSASL_INCLUDEDIR}
${PC_GSASL_INCLUDE_DIRS}
PATH_SUFFIXES gsasl
)
FIND_LIBRARY(GSASL_LIBRARIES NAMES gsasl libgsasl
HINTS
${PC_GSASL_LIBDIR}
${PC_GSASL_LIBRARY_DIRS}
)
INCLUDE(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set GSASL_FOUND to TRUE if
# all listed variables are TRUE
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GSASL DEFAULT_MSG GSASL_LIBRARIES GSASL_INCLUDE_DIR)
MARK_AS_ADVANCED(GSASL_INCLUDE_DIR GSASL_LIBRARIES)

61
cmake/FindIconv.cmake Normal file
View File

@ -0,0 +1,61 @@
# - Try to find Iconv
# Once done this will define
#
# ICONV_FOUND - system has Iconv
# ICONV_INCLUDE_DIR - the Iconv include directory
# ICONV_LIBRARIES - Link these to use Iconv
# ICONV_SECOND_ARGUMENT_IS_CONST - the second argument for iconv() is const
#
include(CheckCXXSourceCompiles)
IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
# Already in cache, be silent
SET(ICONV_FIND_QUIETLY TRUE)
ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
FIND_PATH(ICONV_INCLUDE_DIR iconv.h)
IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c HINTS "/opt/local/lib")
ELSE()
FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c)
ENDIF()
IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
SET(ICONV_FOUND TRUE)
ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
IF(ICONV_FOUND)
check_cxx_source_compiles("
#include <iconv.h>
int main(){
iconv_t conv = 0;
const char* in = 0;
size_t ilen = 0;
char* out = 0;
size_t olen = 0;
iconv(conv, &in, &ilen, &out, &olen);
return 0;
}
" ICONV_SECOND_ARGUMENT_IS_CONST )
ENDIF(ICONV_FOUND)
set(CMAKE_REQUIRED_INCLUDES)
set(CMAKE_REQUIRED_LIBRARIES)
IF(ICONV_FOUND)
IF(NOT ICONV_FIND_QUIETLY)
MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}")
ENDIF(NOT ICONV_FIND_QUIETLY)
ELSE(ICONV_FOUND)
IF(Iconv_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find Iconv")
ENDIF(Iconv_FIND_REQUIRED)
ENDIF(ICONV_FOUND)
MARK_AS_ADVANCED(
ICONV_INCLUDE_DIR
ICONV_LIBRARIES
ICONV_SECOND_ARGUMENT_IS_CONST
)

136
cmake/TargetArch.cmake Normal file
View File

@ -0,0 +1,136 @@
# https://github.com/petroules/solar-cmake
#
# Based on the Qt 5 processor detection code, so should be very accurate
# https://qt.gitorious.org/qt/qtbase/blobs/master/src/corelib/global/qprocessordetection.h
# Currently handles arm (v5, v6, v7), x86 (32/64), ia64, and ppc (32/64)
# Regarding POWER/PowerPC, just as is noted in the Qt source,
# "There are many more known variants/revisions that we do not handle/detect."
set(archdetect_c_code "
#if defined(__arm__) || defined(__TARGET_ARCH_ARM)
#if defined(__ARM_ARCH_7__) \\
|| defined(__ARM_ARCH_7A__) \\
|| defined(__ARM_ARCH_7R__) \\
|| defined(__ARM_ARCH_7M__) \\
|| (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 7)
#error cmake_ARCH armv7
#elif defined(__ARM_ARCH_6__) \\
|| defined(__ARM_ARCH_6J__) \\
|| defined(__ARM_ARCH_6T2__) \\
|| defined(__ARM_ARCH_6Z__) \\
|| defined(__ARM_ARCH_6K__) \\
|| defined(__ARM_ARCH_6ZK__) \\
|| defined(__ARM_ARCH_6M__) \\
|| (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 6)
#error cmake_ARCH armv6
#elif defined(__ARM_ARCH_5TEJ__) \\
|| (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM-0 >= 5)
#error cmake_ARCH armv5
#else
#error cmake_ARCH arm
#endif
#elif defined(__i386) || defined(__i386__) || defined(_M_IX86)
#error cmake_ARCH i386
#elif defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(_M_X64)
#error cmake_ARCH x86_64
#elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
#error cmake_ARCH ia64
#elif defined(__ppc__) || defined(__ppc) || defined(__powerpc__) \\
|| defined(_ARCH_COM) || defined(_ARCH_PWR) || defined(_ARCH_PPC) \\
|| defined(_M_MPPC) || defined(_M_PPC)
#if defined(__ppc64__) || defined(__powerpc64__) || defined(__64BIT__)
#error cmake_ARCH ppc64
#else
#error cmake_ARCH ppc
#endif
#endif
#error cmake_ARCH unknown
")
# Set ppc_support to TRUE before including this file or ppc and ppc64
# will be treated as invalid architectures since they are no longer supported by Apple
function(target_architecture output_var)
if(APPLE AND CMAKE_OSX_ARCHITECTURES)
# On OS X we use CMAKE_OSX_ARCHITECTURES *if* it was set
# First let's normalize the order of the values
# Note that it's not possible to compile PowerPC applications if you are using
# the OS X SDK version 10.6 or later - you'll need 10.4/10.5 for that, so we
# disable it by default
# See this page for more information:
# http://stackoverflow.com/questions/5333490/how-can-we-restore-ppc-ppc64-as-well-as-full-10-4-10-5-sdk-support-to-xcode-4
# Architecture defaults to i386 or ppc on OS X 10.5 and earlier, depending on the CPU type detected at runtime.
# On OS X 10.6+ the default is x86_64 if the CPU supports it, i386 otherwise.
foreach(osx_arch ${CMAKE_OSX_ARCHITECTURES})
if("${osx_arch}" STREQUAL "ppc" AND ppc_support)
set(osx_arch_ppc TRUE)
elseif("${osx_arch}" STREQUAL "i386")
set(osx_arch_i386 TRUE)
elseif("${osx_arch}" STREQUAL "x86_64")
set(osx_arch_x86_64 TRUE)
elseif("${osx_arch}" STREQUAL "ppc64" AND ppc_support)
set(osx_arch_ppc64 TRUE)
else()
message(FATAL_ERROR "Invalid OS X arch name: ${osx_arch}")
endif()
endforeach()
# Now add all the architectures in our normalized order
if(osx_arch_ppc)
list(APPEND ARCH ppc)
endif()
if(osx_arch_i386)
list(APPEND ARCH i386)
endif()
if(osx_arch_x86_64)
list(APPEND ARCH x86_64)
endif()
if(osx_arch_ppc64)
list(APPEND ARCH ppc64)
endif()
else()
file(WRITE "${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/arch.c" "${archdetect_c_code}")
enable_language(C)
# Detect the architecture in a rather creative way...
# This compiles a small C program which is a series of ifdefs that selects a
# particular #error preprocessor directive whose message string contains the
# target architecture. The program will always fail to compile (both because
# file is not a valid C program, and obviously because of the presence of the
# #error preprocessor directives... but by exploiting the preprocessor in this
# way, we can detect the correct target architecture even when cross-compiling,
# since the program itself never needs to be run (only the compiler/preprocessor)
try_run(
run_result_unused
compile_result_unused
"${CMAKE_BINARY_DIR}"
"${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/arch.c"
COMPILE_OUTPUT_VARIABLE ARCH
CMAKE_FLAGS CMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES}
)
# Parse the architecture name from the compiler output
string(REGEX MATCH "cmake_ARCH ([a-zA-Z0-9_]+)" ARCH "${ARCH}")
# Get rid of the value marker leaving just the architecture name
string(REPLACE "cmake_ARCH " "" ARCH "${ARCH}")
# If we are compiling with an unknown architecture this variable should
# already be set to "unknown" but in the case that it's empty (i.e. due
# to a typo in the code), then set it to unknown
if (NOT ARCH)
set(ARCH unknown)
endif()
endif()
set(${output_var} "${ARCH}" PARENT_SCOPE)
endfunction()

13
cmake/Utils.cmake Normal file
View File

@ -0,0 +1,13 @@
# Installing headers and preserving the directory structure
# Found here: http://www.semipol.de/archives/251
MACRO(INSTALL_HEADERS_WITH_DIRECTORY HEADER_LIST COMPONENT_NAME)
FOREACH(HEADER ${${HEADER_LIST}})
STRING(REGEX MATCH "(.*)[/\\]" DIR ${HEADER})
STRING(REPLACE "${CMAKE_SOURCE_DIR}/" "" DIR ${DIR})
INSTALL(FILES ${HEADER} DESTINATION include/${DIR} COMPONENT ${COMPONENT_NAME})
ENDFOREACH(HEADER)
ENDMACRO(INSTALL_HEADERS_WITH_DIRECTORY)

66
cmake/config.hpp.cmake Normal file
View File

@ -0,0 +1,66 @@
//
// This file was automatically generated by CMake.
//
#ifndef VMIME_CONFIG_HPP_INCLUDED
#define VMIME_CONFIG_HPP_INCLUDED
// Name of package
#define VMIME_PACKAGE "@PROJECT_NAME@"
// Version number of package
#define VMIME_VERSION "@VMIME_VERSION@"
#define VMIME_API "@VMIME_API_VERSION@"
// Target OS and architecture
#define VMIME_TARGET_ARCH "@CMAKE_TARGET_ARCHITECTURES@"
#define VMIME_TARGET_OS "@CMAKE_SYSTEM_NAME@"
// Set to 1 if debugging should be activated
#define VMIME_DEBUG @VMIME_DEBUG@
// Byte order (set one or the other, but not both!)
#define VMIME_BYTE_ORDER_BIG_ENDIAN @VMIME_BYTE_ORDER_BIG_ENDIAN@
#define VMIME_BYTE_ORDER_LITTLE_ENDIAN @VMIME_BYTE_ORDER_LITTLE_ENDIAN@
// Generic types
// -- 8-bit
typedef signed @VMIME_8BIT_TYPE@ vmime_int8;
typedef unsigned @VMIME_8BIT_TYPE@ vmime_uint8;
// -- 16-bit
typedef signed @VMIME_16BIT_TYPE@ vmime_int16;
typedef unsigned @VMIME_16BIT_TYPE@ vmime_uint16;
// -- 32-bit
typedef signed @VMIME_32BIT_TYPE@ vmime_int32;
typedef unsigned @VMIME_32BIT_TYPE@ vmime_uint32;
// Options
// -- File-system support
#cmakedefine01 VMIME_HAVE_FILESYSTEM_FEATURES
// -- SASL support
#cmakedefine01 VMIME_HAVE_SASL_SUPPORT
// -- TLS/SSL support
#cmakedefine01 VMIME_HAVE_TLS_SUPPORT
#cmakedefine01 VMIME_TLS_SUPPORT_LIB_IS_GNUTLS
#define VMIME_HAVE_GNUTLS_PRIORITY_FUNCS @VMIME_HAVE_GNUTLS_PRIORITY_FUNCS@
// -- Messaging support
#cmakedefine01 VMIME_HAVE_MESSAGING_FEATURES
// -- Messaging protocols
#cmakedefine01 VMIME_HAVE_MESSAGING_PROTO_POP3
#cmakedefine01 VMIME_HAVE_MESSAGING_PROTO_SMTP
#cmakedefine01 VMIME_HAVE_MESSAGING_PROTO_IMAP
#cmakedefine01 VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#cmakedefine01 VMIME_HAVE_MESSAGING_PROTO_SENDMAIL
// -- Platform-specific code
#cmakedefine01 VMIME_PLATFORM_IS_POSIX
#cmakedefine01 VMIME_PLATFORM_IS_WINDOWS
#cmakedefine01 VMIME_HAVE_PTHREAD
#cmakedefine01 VMIME_HAVE_GETADDRINFO
#define VMIME_SENDMAIL_PATH "@VMIME_SENDMAIL_PATH@"
#endif // VMIME_CONFIG_HPP_INCLUDED

View File

@ -334,6 +334,18 @@ exception* system_error::clone() const { return new system_error(*this); }
const char* system_error::name() const throw() { return "system_error"; } const char* system_error::name() const throw() { return "system_error"; }
//
// malformed_url
//
malformed_url::~malformed_url() throw() {}
malformed_url::malformed_url(const string& error, const exception& other)
: exception("Malformed URL: " + error + ".", other) {}
exception* malformed_url::clone() const { return new malformed_url(*this); }
const char* malformed_url::name() const throw() { return "malformed_url"; }
#if VMIME_HAVE_MESSAGING_FEATURES #if VMIME_HAVE_MESSAGING_FEATURES
@ -609,18 +621,6 @@ exception* partial_fetch_not_supported::clone() const { return new partial_fetch
const char* partial_fetch_not_supported::name() const throw() { return "partial_fetch_not_supported"; } const char* partial_fetch_not_supported::name() const throw() { return "partial_fetch_not_supported"; }
//
// malformed_url
//
malformed_url::~malformed_url() throw() {}
malformed_url::malformed_url(const string& error, const exception& other)
: net_exception("Malformed URL: " + error + ".", other) {}
exception* malformed_url::clone() const { return new malformed_url(*this); }
const char* malformed_url::name() const throw() { return "malformed_url"; }
// //
// invalid_folder_name // invalid_folder_name
// //

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_FILESYSTEM_FEATURES
#include <fstream> #include <fstream>
#include <sstream> #include <sstream>
@ -211,3 +217,7 @@ void fileAttachment::fileInfo::setSize(const unsigned int& size) { if (m_size) {
} // vmime } // vmime
#endif // VMIME_HAVE_FILESYSTEM_FEATURES

View File

@ -29,7 +29,7 @@
#ifndef VMIME_BUILDING_DOC #ifndef VMIME_BUILDING_DOC
#if VMIME_BUILTIN_MESSAGING_PROTO_POP3 #if VMIME_HAVE_MESSAGING_PROTO_POP3
#include "vmime/net/pop3/POP3Store.hpp" #include "vmime/net/pop3/POP3Store.hpp"
REGISTER_SERVICE(pop3::POP3Store, pop3, TYPE_STORE); REGISTER_SERVICE(pop3::POP3Store, pop3, TYPE_STORE);
@ -40,7 +40,7 @@
#endif #endif
#if VMIME_BUILTIN_MESSAGING_PROTO_SMTP #if VMIME_HAVE_MESSAGING_PROTO_SMTP
#include "vmime/net/smtp/SMTPTransport.hpp" #include "vmime/net/smtp/SMTPTransport.hpp"
REGISTER_SERVICE(smtp::SMTPTransport, smtp, TYPE_TRANSPORT); REGISTER_SERVICE(smtp::SMTPTransport, smtp, TYPE_TRANSPORT);
@ -51,7 +51,7 @@
#endif #endif
#if VMIME_BUILTIN_MESSAGING_PROTO_IMAP #if VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPStore.hpp" #include "vmime/net/imap/IMAPStore.hpp"
REGISTER_SERVICE(imap::IMAPStore, imap, TYPE_STORE); REGISTER_SERVICE(imap::IMAPStore, imap, TYPE_STORE);
@ -62,12 +62,12 @@
#endif #endif
#if VMIME_BUILTIN_MESSAGING_PROTO_MAILDIR #if VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/maildir/maildirStore.hpp" #include "vmime/net/maildir/maildirStore.hpp"
REGISTER_SERVICE(maildir::maildirStore, maildir, TYPE_STORE); REGISTER_SERVICE(maildir::maildirStore, maildir, TYPE_STORE);
#endif #endif
#if VMIME_BUILTIN_MESSAGING_PROTO_SENDMAIL #if VMIME_HAVE_MESSAGING_PROTO_SENDMAIL
#include "vmime/net/sendmail/sendmailTransport.hpp" #include "vmime/net/sendmail/sendmailTransport.hpp"
REGISTER_SERVICE(sendmail::sendmailTransport, sendmail, TYPE_TRANSPORT); REGISTER_SERVICE(sendmail::sendmailTransport, sendmail, TYPE_TRANSPORT);
#endif #endif

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/net/defaultConnectionInfos.hpp" #include "vmime/net/defaultConnectionInfos.hpp"
@ -50,3 +56,5 @@ port_t defaultConnectionInfos::getPort() const
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/net/events.hpp" #include "vmime/net/events.hpp"
#include "vmime/net/folder.hpp" #include "vmime/net/folder.hpp"
@ -113,3 +119,7 @@ void folderEvent::dispatch(folderListener* listener) const
} // events } // events
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/net/folder.hpp" #include "vmime/net/folder.hpp"
#include <algorithm> #include <algorithm>
@ -98,3 +104,7 @@ void folder::notifyFolder(const events::folderEvent& event)
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPTag.hpp" #include "vmime/net/imap/IMAPTag.hpp"
#include "vmime/net/imap/IMAPConnection.hpp" #include "vmime/net/imap/IMAPConnection.hpp"
#include "vmime/net/imap/IMAPUtils.hpp" #include "vmime/net/imap/IMAPUtils.hpp"
@ -727,3 +733,7 @@ ref <const socket> IMAPConnection::getSocket() const
} // imap } // imap
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPFolder.hpp" #include "vmime/net/imap/IMAPFolder.hpp"
#include "vmime/net/imap/IMAPStore.hpp" #include "vmime/net/imap/IMAPStore.hpp"
@ -1936,3 +1942,7 @@ std::vector <int> IMAPFolder::getMessageNumbersStartingOnUID(const message::uid&
} // imap } // imap
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPParser.hpp" #include "vmime/net/imap/IMAPParser.hpp"
#include "vmime/net/imap/IMAPMessage.hpp" #include "vmime/net/imap/IMAPMessage.hpp"
#include "vmime/net/imap/IMAPFolder.hpp" #include "vmime/net/imap/IMAPFolder.hpp"
@ -316,7 +322,7 @@ void IMAPMessage::extractImpl(ref <const part> p, utility::outputStream& os,
// header + body // header + body
if ((extractFlags & EXTRACT_HEADER) && (extractFlags & EXTRACT_BODY)) if ((extractFlags & EXTRACT_HEADER) && (extractFlags & EXTRACT_BODY))
*((int *) 0)=42;//throw exceptions::operation_not_supported(); throw exceptions::operation_not_supported();
// body only // body only
else if (extractFlags & EXTRACT_BODY) else if (extractFlags & EXTRACT_BODY)
command << ".TEXT"; command << ".TEXT";
@ -745,3 +751,6 @@ ref <vmime::message> IMAPMessage::getParsedMessage()
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPMessagePartContentHandler.hpp" #include "vmime/net/imap/IMAPMessagePartContentHandler.hpp"
#include "vmime/utility/outputStreamAdapter.hpp" #include "vmime/utility/outputStreamAdapter.hpp"
@ -186,3 +192,6 @@ bool IMAPMessagePartContentHandler::isBuffered() const
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPPart.hpp" #include "vmime/net/imap/IMAPPart.hpp"
#include "vmime/net/imap/IMAPStructure.hpp" #include "vmime/net/imap/IMAPStructure.hpp"
@ -150,3 +156,6 @@ header& IMAPPart::getOrCreateHeader()
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPSStore.hpp" #include "vmime/net/imap/IMAPSStore.hpp"
@ -67,3 +73,7 @@ const serviceInfos& IMAPSStore::getInfos() const
} // imap } // imap
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPServiceInfos.hpp" #include "vmime/net/imap/IMAPServiceInfos.hpp"
@ -126,3 +132,6 @@ const std::vector <serviceInfos::property> IMAPServiceInfos::getAvailablePropert
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPStore.hpp" #include "vmime/net/imap/IMAPStore.hpp"
#include "vmime/net/imap/IMAPFolder.hpp" #include "vmime/net/imap/IMAPFolder.hpp"
#include "vmime/net/imap/IMAPConnection.hpp" #include "vmime/net/imap/IMAPConnection.hpp"
@ -237,3 +243,7 @@ const serviceInfos& IMAPStore::getInfos() const
} // imap } // imap
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPStructure.hpp" #include "vmime/net/imap/IMAPStructure.hpp"
#include "vmime/net/imap/IMAPPart.hpp" #include "vmime/net/imap/IMAPPart.hpp"
@ -83,3 +89,6 @@ ref <IMAPStructure> IMAPStructure::emptyStructure()
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPTag.hpp" #include "vmime/net/imap/IMAPTag.hpp"
@ -101,3 +107,7 @@ void IMAPTag::generate()
} // imap } // imap
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPUtils.hpp" #include "vmime/net/imap/IMAPUtils.hpp"
#include "vmime/net/message.hpp" #include "vmime/net/message.hpp"
#include "vmime/net/folder.hpp" #include "vmime/net/folder.hpp"
@ -785,3 +791,7 @@ const message::uid IMAPUtils::makeGlobalUID(const unsigned int UIDValidity, cons
} // imap } // imap
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/maildir/format/courierMaildirFormat.hpp" #include "vmime/net/maildir/format/courierMaildirFormat.hpp"
#include "vmime/net/maildir/maildirStore.hpp" #include "vmime/net/maildir/maildirStore.hpp"
@ -531,3 +537,6 @@ bool courierMaildirFormat::supports() const
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/maildir/format/kmailMaildirFormat.hpp" #include "vmime/net/maildir/format/kmailMaildirFormat.hpp"
#include "vmime/net/maildir/maildirStore.hpp" #include "vmime/net/maildir/maildirStore.hpp"
@ -308,3 +314,6 @@ bool kmailMaildirFormat::supports() const
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/maildir/maildirFolder.hpp" #include "vmime/net/maildir/maildirFolder.hpp"
#include "vmime/net/maildir/maildirStore.hpp" #include "vmime/net/maildir/maildirStore.hpp"
@ -1387,3 +1393,7 @@ std::vector <int> maildirFolder::getMessageNumbersStartingOnUID(const message::u
} // maildir } // maildir
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/maildir/maildirFormat.hpp" #include "vmime/net/maildir/maildirFormat.hpp"
#include "vmime/net/maildir/maildirStore.hpp" #include "vmime/net/maildir/maildirStore.hpp"
@ -98,3 +104,6 @@ ref <maildirFormat> maildirFormat::detect(ref <maildirStore> store)
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/maildir/maildirMessage.hpp" #include "vmime/net/maildir/maildirMessage.hpp"
#include "vmime/net/maildir/maildirFolder.hpp" #include "vmime/net/maildir/maildirFolder.hpp"
#include "vmime/net/maildir/maildirUtils.hpp" #include "vmime/net/maildir/maildirUtils.hpp"
@ -543,3 +549,7 @@ ref <vmime::message> maildirMessage::getParsedMessage()
} // maildir } // maildir
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/maildir/maildirServiceInfos.hpp" #include "vmime/net/maildir/maildirServiceInfos.hpp"
@ -66,3 +72,6 @@ const std::vector <serviceInfos::property> maildirServiceInfos::getAvailableProp
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/maildir/maildirStore.hpp" #include "vmime/net/maildir/maildirStore.hpp"
#include "vmime/net/maildir/maildirFolder.hpp" #include "vmime/net/maildir/maildirFolder.hpp"
@ -260,3 +266,7 @@ const serviceInfos& maildirStore::getInfos() const
} // maildir } // maildir
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/maildir/maildirUtils.hpp" #include "vmime/net/maildir/maildirUtils.hpp"
#include "vmime/net/maildir/maildirStore.hpp" #include "vmime/net/maildir/maildirStore.hpp"
@ -142,7 +148,7 @@ const utility::file::path::component maildirUtils::buildFilename
(const utility::file::path::component& id, (const utility::file::path::component& id,
const utility::file::path::component& flags) const utility::file::path::component& flags)
{ {
#if VMIME_BUILTIN_PLATFORM_WINDOWS #if VMIME_PLATFORM_IS_WINDOWS
static const char DELIMITER[] = "-"; static const char DELIMITER[] = "-";
#else #else
static const char DELIMITER[] = ":"; static const char DELIMITER[] = ":";
@ -229,3 +235,7 @@ bool maildirUtils::messageIdComparator::operator()
} // maildir } // maildir
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/net/message.hpp" #include "vmime/net/message.hpp"
@ -48,3 +54,7 @@ int part::getPartCount() const
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_POP3
#include "vmime/net/pop3/POP3Folder.hpp" #include "vmime/net/pop3/POP3Folder.hpp"
#include "vmime/net/pop3/POP3Store.hpp" #include "vmime/net/pop3/POP3Store.hpp"
@ -864,3 +870,7 @@ std::vector <int> POP3Folder::getMessageNumbersStartingOnUID(const message::uid&
} // pop3 } // pop3
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_POP3

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_POP3
#include "vmime/net/pop3/POP3Message.hpp" #include "vmime/net/pop3/POP3Message.hpp"
#include "vmime/net/pop3/POP3Folder.hpp" #include "vmime/net/pop3/POP3Folder.hpp"
#include "vmime/net/pop3/POP3Store.hpp" #include "vmime/net/pop3/POP3Store.hpp"
@ -237,3 +243,7 @@ ref <vmime::message> POP3Message::getParsedMessage()
} // pop3 } // pop3
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_POP3

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_POP3
#include "vmime/net/pop3/POP3SStore.hpp" #include "vmime/net/pop3/POP3SStore.hpp"
@ -68,3 +74,6 @@ const serviceInfos& POP3SStore::getInfos() const
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_POP3

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_POP3
#include "vmime/net/pop3/POP3ServiceInfos.hpp" #include "vmime/net/pop3/POP3ServiceInfos.hpp"
@ -132,3 +138,6 @@ const std::vector <serviceInfos::property> POP3ServiceInfos::getAvailablePropert
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_POP3

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_POP3
#include "vmime/net/pop3/POP3Store.hpp" #include "vmime/net/pop3/POP3Store.hpp"
#include "vmime/net/pop3/POP3Folder.hpp" #include "vmime/net/pop3/POP3Folder.hpp"
@ -1006,3 +1012,6 @@ const serviceInfos& POP3Store::getInfos() const
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_POP3

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_POP3
#include "vmime/net/pop3/POP3Utils.hpp" #include "vmime/net/pop3/POP3Utils.hpp"
#include <sstream> #include <sstream>
@ -72,3 +78,6 @@ void POP3Utils::parseMultiListOrUidlResponse(const string& response, std::map <i
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_POP3

View File

@ -21,12 +21,15 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SENDMAIL
#include "vmime/net/sendmail/sendmailServiceInfos.hpp" #include "vmime/net/sendmail/sendmailServiceInfos.hpp"
#if VMIME_BUILTIN_PLATFORM_POSIX
namespace vmime { namespace vmime {
namespace net { namespace net {
namespace sendmail { namespace sendmail {
@ -71,5 +74,5 @@ const std::vector <serviceInfos::property> sendmailServiceInfos::getAvailablePro
} // vmime } // vmime
#endif // VMIME_BUILTIN_PLATFORM_POSIX #endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SENDMAIL

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SENDMAIL
#include "vmime/net/sendmail/sendmailTransport.hpp" #include "vmime/net/sendmail/sendmailTransport.hpp"
#include "vmime/exception.hpp" #include "vmime/exception.hpp"
@ -48,9 +54,6 @@
dynamic_cast <const sendmailServiceInfos&>(getInfos()).getProperties().prop)) dynamic_cast <const sendmailServiceInfos&>(getInfos()).getProperties().prop))
#if VMIME_BUILTIN_PLATFORM_POSIX
namespace vmime { namespace vmime {
namespace net { namespace net {
namespace sendmail { namespace sendmail {
@ -219,4 +222,5 @@ const serviceInfos& sendmailTransport::getInfos() const
} // vmime } // vmime
#endif // VMIME_BUILTIN_PLATFORM_POSIX #endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SENDMAIL

View File

@ -22,6 +22,11 @@
// //
#include "vmime/config.hpp" #include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/net/service.hpp" #include "vmime/net/service.hpp"
#include "vmime/platform.hpp" #include "vmime/platform.hpp"
@ -141,3 +146,7 @@ ref <timeoutHandlerFactory> service::getTimeoutHandlerFactory()
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES

View File

@ -21,11 +21,16 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/net/serviceFactory.hpp" #include "vmime/net/serviceFactory.hpp"
#include "vmime/net/service.hpp" #include "vmime/net/service.hpp"
#include "vmime/exception.hpp" #include "vmime/exception.hpp"
#include "vmime/config.hpp"
#include "src/net/builtinServices.inl" #include "src/net/builtinServices.inl"
@ -134,3 +139,7 @@ void serviceFactory::registerService(ref <registeredService> reg)
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/net/serviceInfos.hpp" #include "vmime/net/serviceInfos.hpp"
@ -156,3 +162,6 @@ int serviceInfos::property::getFlags() const
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/net/session.hpp" #include "vmime/net/session.hpp"
#include "vmime/net/serviceFactory.hpp" #include "vmime/net/serviceFactory.hpp"
@ -132,3 +138,7 @@ propertySet& session::getProperties()
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SMTP
#include "vmime/net/smtp/SMTPResponse.hpp" #include "vmime/net/smtp/SMTPResponse.hpp"
#include "vmime/platform.hpp" #include "vmime/platform.hpp"
@ -249,3 +255,6 @@ const string SMTPResponse::responseLine::getText() const
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SMTP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SMTP
#include "vmime/net/smtp/SMTPSTransport.hpp" #include "vmime/net/smtp/SMTPSTransport.hpp"
@ -68,3 +74,6 @@ const serviceInfos& SMTPSTransport::getInfos() const
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SMTP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SMTP
#include "vmime/net/smtp/SMTPServiceInfos.hpp" #include "vmime/net/smtp/SMTPServiceInfos.hpp"
@ -129,3 +135,6 @@ const std::vector <serviceInfos::property> SMTPServiceInfos::getAvailablePropert
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SMTP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SMTP
#include "vmime/net/smtp/SMTPTransport.hpp" #include "vmime/net/smtp/SMTPTransport.hpp"
#include "vmime/net/smtp/SMTPResponse.hpp" #include "vmime/net/smtp/SMTPResponse.hpp"
@ -654,3 +660,7 @@ const serviceInfos& SMTPTransport::getInfos() const
} // smtp } // smtp
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_SMTP

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_TLS_SUPPORT
#include "vmime/net/tls/TLSSecuredConnectionInfos.hpp" #include "vmime/net/tls/TLSSecuredConnectionInfos.hpp"
#include "vmime/net/tls/TLSSession.hpp" #include "vmime/net/tls/TLSSession.hpp"
@ -61,3 +67,6 @@ ref <const security::cert::certificateChain> TLSSecuredConnectionInfos::getPeerC
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_TLS_SUPPORT

View File

@ -21,12 +21,17 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_TLS_SUPPORT && VMIME_TLS_SUPPORT_LIB_IS_GNUTLS
#include <gnutls/gnutls.h> #include <gnutls/gnutls.h>
#if GNUTLS_VERSION_NUMBER < 0x030000 #if GNUTLS_VERSION_NUMBER < 0x030000
#include <gnutls/extra.h> #include <gnutls/extra.h>
#endif #endif
#include "vmime/config.hpp"
// Dependency on gcrypt is not needed since GNU TLS version 2.12. // Dependency on gcrypt is not needed since GNU TLS version 2.12.
// See here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=638651 // See here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=638651
@ -138,7 +143,7 @@ TLSSession::TLSSession(ref <security::cert::certificateVerifier> cv)
// Sets some default priority on the ciphers, key exchange methods, // Sets some default priority on the ciphers, key exchange methods,
// macs and compression methods. // macs and compression methods.
#if HAVE_GNUTLS_PRIORITY_FUNCS #if VMIME_HAVE_GNUTLS_PRIORITY_FUNCS
gnutls_dh_set_prime_bits(*m_gnutlsSession, 128); gnutls_dh_set_prime_bits(*m_gnutlsSession, 128);
if ((res = gnutls_priority_set_direct if ((res = gnutls_priority_set_direct
@ -152,7 +157,7 @@ TLSSession::TLSSession(ref <security::cert::certificateVerifier> cv)
} }
} }
#else // !HAVE_GNUTLS_PRIORITY_FUNCS #else // !VMIME_HAVE_GNUTLS_PRIORITY_FUNCS
gnutls_set_default_priority(*m_gnutlsSession); gnutls_set_default_priority(*m_gnutlsSession);
@ -228,7 +233,7 @@ TLSSession::TLSSession(ref <security::cert::certificateVerifier> cv)
gnutls_compression_set_priority(*m_gnutlsSession, compressionPriority); gnutls_compression_set_priority(*m_gnutlsSession, compressionPriority);
#endif // !HAVE_GNUTLS_PRIORITY_FUNCS #endif // !VMIME_HAVE_GNUTLS_PRIORITY_FUNCS
// Initialize credentials // Initialize credentials
gnutls_credentials_set(*m_gnutlsSession, gnutls_credentials_set(*m_gnutlsSession,
@ -288,3 +293,6 @@ void TLSSession::throwTLSException(const string& fname, const int code)
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_TLS_SUPPORT && VMIME_TLS_SUPPORT_LIB_IS_GNUTLS

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_TLS_SUPPORT && VMIME_TLS_SUPPORT_LIB_IS_GNUTLS
#include <gnutls/gnutls.h> #include <gnutls/gnutls.h>
#include <gnutls/x509.h> #include <gnutls/x509.h>
@ -406,3 +412,6 @@ void TLSSocket::internalThrow()
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_TLS_SUPPORT && VMIME_TLS_SUPPORT_LIB_IS_GNUTLS

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/net/transport.hpp" #include "vmime/net/transport.hpp"
#include "vmime/utility/stream.hpp" #include "vmime/utility/stream.hpp"
@ -135,3 +141,6 @@ transport::Type transport::getType() const
} // net } // net
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES

View File

@ -22,6 +22,10 @@
// //
#include "vmime/platform.hpp" #include "vmime/platform.hpp"
#include "vmime/config.hpp"
#include "vmime/platforms/posix/posixHandler.hpp"
#include "vmime/platforms/windows/windowsHandler.hpp"
namespace vmime namespace vmime
@ -36,4 +40,40 @@ platform::handler::~handler()
} }
// static
ref <platform::handler> platform::getDefaultHandler()
{
#if VMIME_PLATFORM_IS_WINDOWS
return vmime::create <platforms::windows::windowsHandler>();
#elif VMIME_PLATFORM_IS_POSIX
return vmime::create <platforms::posix::posixHandler>();
#else
return NULL;
#endif
}
// static
ref <platform::handler> platform::getHandler()
{
// If a custom platform handler is installed, return it
if (sm_handler)
return sm_handler;
// Else, use the default handler for this platform
ref <handler> defaultHandler = getDefaultHandler();
if (defaultHandler)
{
sm_handler = defaultHandler;
return sm_handler;
}
// Oops... no platform handler!
throw exceptions::no_platform_handler();
}
} // vmime } // vmime

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_PLATFORM_IS_POSIX && VMIME_HAVE_FILESYSTEM_FEATURES
#include "vmime/platforms/posix/posixChildProcess.hpp" #include "vmime/platforms/posix/posixChildProcess.hpp"
#include "vmime/platforms/posix/posixFile.hpp" #include "vmime/platforms/posix/posixFile.hpp"
@ -394,3 +400,6 @@ void posixChildProcess::waitForFinish()
} // platforms } // platforms
} // vmime } // vmime
#endif // VMIME_PLATFORM_IS_POSIX && VMIME_HAVE_FILESYSTEM_FEATURES

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_PLATFORM_IS_POSIX && VMIME_HAVE_FILESYSTEM_FEATURES
#include "vmime/platforms/posix/posixFile.hpp" #include "vmime/platforms/posix/posixFile.hpp"
#include <unistd.h> #include <unistd.h>
@ -38,9 +44,6 @@
#include "vmime/exception.hpp" #include "vmime/exception.hpp"
#if VMIME_HAVE_FILESYSTEM_FEATURES
namespace vmime { namespace vmime {
namespace platforms { namespace platforms {
namespace posix { namespace posix {
@ -621,4 +624,4 @@ void posixFileSystemFactory::reportError(const vmime::utility::path& path, const
} // vmime } // vmime
#endif // VMIME_HAVE_FILESYSTEM_FEATURES #endif // VMIME_PLATFORM_IS_POSIX && VMIME_HAVE_FILESYSTEM_FEATURES

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_PLATFORM_IS_POSIX
#include "vmime/platforms/posix/posixHandler.hpp" #include "vmime/platforms/posix/posixHandler.hpp"
#include <time.h> #include <time.h>
@ -258,3 +264,6 @@ void posixHandler::wait() const
} // posix } // posix
} // platforms } // platforms
} // vmime } // vmime
#endif // VMIME_PLATFORM_IS_POSIX

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_PLATFORM_IS_POSIX && VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/platforms/posix/posixSocket.hpp" #include "vmime/platforms/posix/posixSocket.hpp"
#include "vmime/platforms/posix/posixHandler.hpp" #include "vmime/platforms/posix/posixHandler.hpp"
@ -37,9 +43,6 @@
#include "vmime/exception.hpp" #include "vmime/exception.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
namespace vmime { namespace vmime {
namespace platforms { namespace platforms {
namespace posix { namespace posix {
@ -493,4 +496,4 @@ ref <vmime::net::socket> posixSocketFactory::create(ref <vmime::net::timeoutHand
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES #endif // VMIME_PLATFORM_IS_POSIX && VMIME_HAVE_MESSAGING_FEATURES

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_PLATFORM_IS_WINDOWS && VMIME_HAVE_FILESYSTEM_FEATURES
#include "vmime/platforms/windows/windowsFile.hpp" #include "vmime/platforms/windows/windowsFile.hpp"
#include <windows.h> #include <windows.h>
@ -30,9 +36,6 @@
#include "vmime/utility/stringUtils.hpp" #include "vmime/utility/stringUtils.hpp"
#if VMIME_HAVE_FILESYSTEM_FEATURES
namespace vmime { namespace vmime {
namespace platforms { namespace platforms {
namespace windows { namespace windows {
@ -546,4 +549,5 @@ void windowsFileWriterOutputStream::flush()
} // vmime } // vmime
#endif // VMIME_HAVE_FILESYSTEM_FEATURES #endif // VMIME_PLATFORM_IS_WINDOWS && VMIME_HAVE_FILESYSTEM_FEATURES

View File

@ -21,9 +21,14 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/platforms/windows/windowsHandler.hpp"
#include "vmime/config.hpp" #include "vmime/config.hpp"
#if VMIME_PLATFORM_IS_WINDOWS
#include "vmime/platforms/windows/windowsHandler.hpp"
#include <time.h> #include <time.h>
#include <locale.h> #include <locale.h>
#include <process.h> #include <process.h>
@ -270,3 +275,7 @@ void windowsHandler::wait() const
} // posix } // posix
} // platforms } // platforms
} // vmime } // vmime
#endif // VMIME_PLATFORM_IS_WINDOWS

View File

@ -21,13 +21,18 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_PLATFORM_IS_WINDOWS && VMIME_HAVE_MESSAGING_FEATURES
#pragma warning(disable: 4267) #pragma warning(disable: 4267)
#include "vmime/platforms/windows/windowsSocket.hpp" #include "vmime/platforms/windows/windowsSocket.hpp"
#include "vmime/exception.hpp" #include "vmime/exception.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
namespace vmime { namespace vmime {
namespace platforms { namespace platforms {
@ -193,4 +198,5 @@ ref <vmime::net::socket> windowsSocketFactory::create(ref <vmime::net::timeoutHa
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES #endif // VMIME_PLATFORM_IS_WINDOWS && VMIME_HAVE_MESSAGING_FEATURES

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/security/defaultAuthenticator.hpp" #include "vmime/security/defaultAuthenticator.hpp"
#include "vmime/net/service.hpp" #include "vmime/net/service.hpp"
@ -104,3 +110,6 @@ weak_ref <net::service> defaultAuthenticator::getService() const
} // security } // security
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_SASL_SUPPORT
#include <sstream> #include <sstream>
#include <gsasl.h> #include <gsasl.h>
@ -197,3 +203,6 @@ const string SASLContext::getErrorMessage(const string& fname, const int code)
} // security } // security
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_SASL_SUPPORT

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_SASL_SUPPORT
#include <stdexcept> #include <stdexcept>
#include <new> #include <new>
@ -133,3 +139,6 @@ bool SASLMechanismFactory::isMechanismSupported(const string& name) const
} // security } // security
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_SASL_SUPPORT

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_SASL_SUPPORT
#include <sstream> #include <sstream>
#include <gsasl.h> #include <gsasl.h>
@ -181,3 +187,6 @@ int SASLSession::gsaslCallback
} // security } // security
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_SASL_SUPPORT

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_SASL_SUPPORT
#include "vmime/security/sasl/SASLSocket.hpp" #include "vmime/security/sasl/SASLSocket.hpp"
#include "vmime/security/sasl/SASLSession.hpp" #include "vmime/security/sasl/SASLSession.hpp"
@ -175,3 +181,6 @@ void SASLSocket::sendRaw(const char* buffer, const size_type count)
} // security } // security
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_SASL_SUPPORT

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_SASL_SUPPORT
#include <gsasl.h> #include <gsasl.h>
#include "vmime/security/sasl/builtinSASLMechanism.hpp" #include "vmime/security/sasl/builtinSASLMechanism.hpp"
@ -184,3 +190,6 @@ void builtinSASLMechanism::decode
} // security } // security
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_SASL_SUPPORT

View File

@ -21,6 +21,12 @@
// the GNU General Public License cover the whole combination. // the GNU General Public License cover the whole combination.
// //
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_SASL_SUPPORT
#include "vmime/security/sasl/defaultSASLAuthenticator.hpp" #include "vmime/security/sasl/defaultSASLAuthenticator.hpp"
#include "vmime/security/sasl/SASLMechanism.hpp" #include "vmime/security/sasl/SASLMechanism.hpp"
@ -141,3 +147,6 @@ ref <SASLMechanism> defaultSASLAuthenticator::getSASLMechanism() const
} // security } // security
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_SASL_SUPPORT

View File

@ -116,8 +116,8 @@ utility::stream::size_type uuEncoder::encode(utility::inputStream& in,
const unsigned char c3 = static_cast <unsigned char>(inBuffer[i + 2]); const unsigned char c3 = static_cast <unsigned char>(inBuffer[i + 2]);
outBuffer[j] = UUENCODE(c1 >> 2); outBuffer[j] = UUENCODE(c1 >> 2);
outBuffer[j + 1] = UUENCODE((c1 << 4) & 060 | (c2 >> 4) & 017); outBuffer[j + 1] = UUENCODE(((c1 << 4) & 060) | ((c2 >> 4) & 017));
outBuffer[j + 2] = UUENCODE((c2 << 2) & 074 | (c3 >> 6) & 03); outBuffer[j + 2] = UUENCODE(((c2 << 2) & 074) | ((c3 >> 6) & 03));
outBuffer[j + 3] = UUENCODE(c3 & 077); outBuffer[j + 3] = UUENCODE(c3 & 077);
} }
@ -173,7 +173,7 @@ utility::stream::size_type uuEncoder::decode(utility::inputStream& in,
const utility::stream::size_type outLength = UUDECODE(lengthChar); const utility::stream::size_type outLength = UUDECODE(lengthChar);
const utility::stream::size_type inLength = const utility::stream::size_type inLength =
std::min((outLength * 4) / 3, static_cast <utility::stream::size_type>(64)); std::min((outLength * 4) / 3, static_cast <utility::stream::size_type>(64));
utility::stream::value_type inPos = 0; utility::stream::size_type inPos = 0;
switch (lengthChar) switch (lengthChar)
{ {
@ -302,9 +302,9 @@ utility::stream::size_type uuEncoder::decode(utility::inputStream& in,
switch (n) switch (n)
{ {
default: default:
case 3: outBuffer[j + 2] = UUDECODE(c3) << 6 | UUDECODE(c4); case 3: outBuffer[j + 2] = static_cast <unsigned char>(UUDECODE(c3) << 6 | UUDECODE(c4));
case 2: outBuffer[j + 1] = UUDECODE(c2) << 4 | UUDECODE(c3) >> 2; case 2: outBuffer[j + 1] = static_cast <unsigned char>(UUDECODE(c2) << 4 | UUDECODE(c3) >> 2);
case 1: outBuffer[j] = UUDECODE(c1) << 2 | UUDECODE(c2) >> 4; case 1: outBuffer[j] = static_cast <unsigned char>(UUDECODE(c1) << 2 | UUDECODE(c2) >> 4);
case 0: break; case 0: break;
} }

View File

@ -78,7 +78,7 @@ namespace vmime
} }
template <typename T, size_t N> template <typename T, size_t N>
inline size_t count(T const (&array)[N]) inline size_t count(T const (&/* array */)[N])
{ {
return (N); return (N);
} }

View File

@ -362,6 +362,21 @@ public:
}; };
/** The URL is malformed.
*/
class malformed_url : public vmime::exception
{
public:
malformed_url(const string& error, const exception& other = NO_EXCEPTION);
~malformed_url() throw();
exception* clone() const;
const char* name() const throw();
};
#if VMIME_HAVE_MESSAGING_FEATURES #if VMIME_HAVE_MESSAGING_FEATURES
@ -727,21 +742,6 @@ public:
}; };
/** The URL is malformed.
*/
class malformed_url : public net_exception
{
public:
malformed_url(const string& error, const exception& other = NO_EXCEPTION);
~malformed_url() throw();
exception* clone() const;
const char* name() const throw();
};
/** Folder name is invalid. /** Folder name is invalid.
*/ */

View File

@ -25,8 +25,13 @@
#define VMIME_FILEATTACHMENT_HPP_INCLUDED #define VMIME_FILEATTACHMENT_HPP_INCLUDED
#include "vmime/defaultAttachment.hpp" #include "vmime/config.hpp"
#if VMIME_HAVE_FILESYSTEM_FEATURES
#include "vmime/defaultAttachment.hpp"
#include "vmime/dateTime.hpp" #include "vmime/dateTime.hpp"
@ -185,4 +190,6 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_FILESYSTEM_FEATURES
#endif // VMIME_FILEATTACHMENT_HPP_INCLUDED #endif // VMIME_FILEATTACHMENT_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_CONNECTIONINFOS_HPP_INCLUDED #define VMIME_NET_CONNECTIONINFOS_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/object.hpp" #include "vmime/object.hpp"
@ -56,5 +62,7 @@ public:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES
#endif // VMIME_NET_CONNECTIONINFOS_HPP_INCLUDED #endif // VMIME_NET_CONNECTIONINFOS_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_DEFAULTCONNECTIONINFOS_HPP_INCLUDED #define VMIME_NET_DEFAULTCONNECTIONINFOS_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include "vmime/net/connectionInfos.hpp" #include "vmime/net/connectionInfos.hpp"
@ -54,5 +60,7 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES
#endif // VMIME_NET_DEFAULTCONNECTIONINFOS_HPP_INCLUDED #endif // VMIME_NET_DEFAULTCONNECTIONINFOS_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_EVENTS_HPP_INCLUDED #define VMIME_NET_EVENTS_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include <vector> #include <vector>
#include "vmime/utility/path.hpp" #include "vmime/utility/path.hpp"
@ -230,4 +236,6 @@ public:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES
#endif // VMIME_NET_EVENTS_HPP_INCLUDED #endif // VMIME_NET_EVENTS_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_FOLDER_HPP_INCLUDED #define VMIME_NET_FOLDER_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES
#include <vector> #include <vector>
#include "vmime/types.hpp" #include "vmime/types.hpp"
@ -434,4 +440,6 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES
#endif // VMIME_NET_FOLDER_HPP_INCLUDED #endif // VMIME_NET_FOLDER_HPP_INCLUDED

View File

@ -27,6 +27,10 @@
#include "vmime/config.hpp" #include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/socket.hpp" #include "vmime/net/socket.hpp"
#include "vmime/net/timeoutHandler.hpp" #include "vmime/net/timeoutHandler.hpp"
#include "vmime/net/session.hpp" #include "vmime/net/session.hpp"
@ -141,4 +145,6 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#endif // VMIME_NET_IMAP_IMAPCONNECTION_HPP_INCLUDED #endif // VMIME_NET_IMAP_IMAPCONNECTION_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_IMAP_IMAPFOLDER_HPP_INCLUDED #define VMIME_NET_IMAP_IMAPFOLDER_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include <vector> #include <vector>
#include <map> #include <map>
@ -167,4 +173,6 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#endif // VMIME_NET_IMAP_IMAPFOLDER_HPP_INCLUDED #endif // VMIME_NET_IMAP_IMAPFOLDER_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_IMAP_IMAPMESSAGE_HPP_INCLUDED #define VMIME_NET_IMAP_IMAPMESSAGE_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/message.hpp" #include "vmime/net/message.hpp"
#include "vmime/net/folder.hpp" #include "vmime/net/folder.hpp"
@ -137,4 +143,6 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#endif // VMIME_NET_IMAP_IMAPMESSAGE_HPP_INCLUDED #endif // VMIME_NET_IMAP_IMAPMESSAGE_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_IMAP_IMAPMESSAGEPARTCONTENTHANDLER_HPP_INCLUDED #define VMIME_NET_IMAP_IMAPMESSAGEPARTCONTENTHANDLER_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/contentHandler.hpp" #include "vmime/contentHandler.hpp"
#include "vmime/net/imap/IMAPMessage.hpp" #include "vmime/net/imap/IMAPMessage.hpp"
@ -71,5 +77,7 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#endif // VMIME_NET_IMAP_IMAPMESSAGEPARTCONTENTHANDLER_HPP_INCLUDED #endif // VMIME_NET_IMAP_IMAPMESSAGEPARTCONTENTHANDLER_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_IMAP_IMAPPARSER_HPP_INCLUDED #define VMIME_NET_IMAP_IMAPPARSER_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/base.hpp" #include "vmime/base.hpp"
#include "vmime/dateTime.hpp" #include "vmime/dateTime.hpp"
#include "vmime/charset.hpp" #include "vmime/charset.hpp"
@ -5200,4 +5206,6 @@ public:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#endif // VMIME_NET_IMAP_IMAPPARSER_HPP_INCLUDED #endif // VMIME_NET_IMAP_IMAPPARSER_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_IMAP_IMAPPART_HPP_INCLUDED #define VMIME_NET_IMAP_IMAPPART_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/message.hpp" #include "vmime/net/message.hpp"
#include "vmime/net/imap/IMAPParser.hpp" #include "vmime/net/imap/IMAPParser.hpp"
@ -84,5 +90,7 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#endif // VMIME_NET_IMAP_IMAPPART_HPP_INCLUDED #endif // VMIME_NET_IMAP_IMAPPART_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_IMAP_IMAPSSTORE_HPP_INCLUDED #define VMIME_NET_IMAP_IMAPSSTORE_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/imap/IMAPStore.hpp" #include "vmime/net/imap/IMAPStore.hpp"
@ -59,5 +65,7 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#endif // VMIME_NET_IMAP_IMAPSSTORE_HPP_INCLUDED #endif // VMIME_NET_IMAP_IMAPSSTORE_HPP_INCLUDED

View File

@ -26,6 +26,11 @@
#include "vmime/config.hpp" #include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/serviceInfos.hpp" #include "vmime/net/serviceInfos.hpp"
@ -80,5 +85,7 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#endif // VMIME_NET_IMAP_IMAPSERVICEINFOS_HPP_INCLUDED #endif // VMIME_NET_IMAP_IMAPSERVICEINFOS_HPP_INCLUDED

View File

@ -27,6 +27,10 @@
#include "vmime/config.hpp" #include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/store.hpp" #include "vmime/net/store.hpp"
#include "vmime/net/socket.hpp" #include "vmime/net/socket.hpp"
#include "vmime/net/folder.hpp" #include "vmime/net/folder.hpp"
@ -110,4 +114,6 @@ protected:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#endif // VMIME_NET_IMAP_IMAPSTORE_HPP_INCLUDED #endif // VMIME_NET_IMAP_IMAPSTORE_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_IMAP_IMAPSTRUCTURE_HPP_INCLUDED #define VMIME_NET_IMAP_IMAPSTRUCTURE_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/net/message.hpp" #include "vmime/net/message.hpp"
#include "vmime/net/imap/IMAPParser.hpp" #include "vmime/net/imap/IMAPParser.hpp"
@ -63,5 +69,7 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#endif // VMIME_NET_IMAP_IMAPSTRUCTURE_HPP_INCLUDED #endif // VMIME_NET_IMAP_IMAPSTRUCTURE_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_IMAP_IMAPTAG_HPP_INCLUDED #define VMIME_NET_IMAP_IMAPTAG_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/types.hpp" #include "vmime/types.hpp"
@ -67,4 +73,6 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#endif // VMIME_NET_IMAP_IMAPTAG_HPP_INCLUDED #endif // VMIME_NET_IMAP_IMAPTAG_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_IMAP_IMAPUTILS_HPP_INCLUDED #define VMIME_NET_IMAP_IMAPUTILS_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#include "vmime/types.hpp" #include "vmime/types.hpp"
#include "vmime/dateTime.hpp" #include "vmime/dateTime.hpp"
@ -146,4 +152,6 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_IMAP
#endif // VMIME_NET_IMAP_IMAPUTILS_HPP_INCLUDED #endif // VMIME_NET_IMAP_IMAPUTILS_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_MAILDIR_FORMAT_COURIERMAILDIRFORMAT_HPP_INCLUDED #define VMIME_NET_MAILDIR_FORMAT_COURIERMAILDIRFORMAT_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/maildir/maildirFormat.hpp" #include "vmime/net/maildir/maildirFormat.hpp"
@ -109,5 +115,7 @@ protected:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#endif // VMIME_NET_MAILDIR_FORMAT_COURIERMAILDIRFORMAT_HPP_INCLUDED #endif // VMIME_NET_MAILDIR_FORMAT_COURIERMAILDIRFORMAT_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_MAILDIR_FORMAT_KMAILMAILDIRFORMAT_HPP_INCLUDED #define VMIME_NET_MAILDIR_FORMAT_KMAILMAILDIRFORMAT_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/maildir/maildirFormat.hpp" #include "vmime/net/maildir/maildirFormat.hpp"
@ -96,5 +102,8 @@ protected:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#endif // VMIME_NET_MAILDIR_FORMAT_KMAILMAILDIRFORMAT_HPP_INCLUDED #endif // VMIME_NET_MAILDIR_FORMAT_KMAILMAILDIRFORMAT_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_MAILDIR_MAILDIRFOLDER_HPP_INCLUDED #define VMIME_NET_MAILDIR_MAILDIRFOLDER_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include <vector> #include <vector>
#include <map> #include <map>
@ -187,4 +193,6 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#endif // VMIME_NET_MAILDIR_MAILDIRFOLDER_HPP_INCLUDED #endif // VMIME_NET_MAILDIR_MAILDIRFOLDER_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_MAILDIR_FORMAT_MAILDIRFORMAT_HPP_INCLUDED #define VMIME_NET_MAILDIR_FORMAT_MAILDIRFORMAT_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/folder.hpp" #include "vmime/net/folder.hpp"
#include "vmime/utility/file.hpp" #include "vmime/utility/file.hpp"
@ -183,5 +189,7 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#endif // VMIME_NET_MAILDIR_FORMAT_MAILDIRFORMAT_HPP_INCLUDED #endif // VMIME_NET_MAILDIR_FORMAT_MAILDIRFORMAT_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_MAILDIR_MAILDIRMESSAGE_HPP_INCLUDED #define VMIME_NET_MAILDIR_MAILDIRMESSAGE_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/message.hpp" #include "vmime/net/message.hpp"
#include "vmime/net/folder.hpp" #include "vmime/net/folder.hpp"
@ -106,4 +112,6 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#endif // VMIME_NET_MAILDIR_MAILDIRMESSAGE_HPP_INCLUDED #endif // VMIME_NET_MAILDIR_MAILDIRMESSAGE_HPP_INCLUDED

View File

@ -26,6 +26,11 @@
#include "vmime/config.hpp" #include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/serviceInfos.hpp" #include "vmime/net/serviceInfos.hpp"
@ -60,5 +65,7 @@ public:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#endif // VMIME_NET_MAILDIR_MAILDIRSERVICEINFOS_HPP_INCLUDED #endif // VMIME_NET_MAILDIR_MAILDIRSERVICEINFOS_HPP_INCLUDED

View File

@ -27,6 +27,10 @@
#include "vmime/config.hpp" #include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/net/store.hpp" #include "vmime/net/store.hpp"
#include "vmime/net/socket.hpp" #include "vmime/net/socket.hpp"
#include "vmime/net/folder.hpp" #include "vmime/net/folder.hpp"
@ -111,4 +115,6 @@ private:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#endif // VMIME_NET_MAILDIR_MAILDIRSTORE_HPP_INCLUDED #endif // VMIME_NET_MAILDIR_MAILDIRSTORE_HPP_INCLUDED

View File

@ -25,6 +25,12 @@
#define VMIME_NET_MAILDIR_MAILDIRUTILS_HPP_INCLUDED #define VMIME_NET_MAILDIR_MAILDIRUTILS_HPP_INCLUDED
#include "vmime/config.hpp"
#if VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#include "vmime/utility/file.hpp" #include "vmime/utility/file.hpp"
#include "vmime/utility/path.hpp" #include "vmime/utility/path.hpp"
@ -131,4 +137,6 @@ public:
} // vmime } // vmime
#endif // VMIME_HAVE_MESSAGING_FEATURES && VMIME_HAVE_MESSAGING_PROTO_MAILDIR
#endif // VMIME_NET_MAILDIR_MAILDIRUTILS_HPP_INCLUDED #endif // VMIME_NET_MAILDIR_MAILDIRUTILS_HPP_INCLUDED

Some files were not shown because too many files have changed in this diff Show More