Use string option instead of mutually exclusive bool options for charset and TLS library.
This commit is contained in:
parent
0a8a39a9ac
commit
b5d26604ef
@ -652,25 +652,23 @@ OPTION(
|
|||||||
ON
|
ON
|
||||||
)
|
)
|
||||||
|
|
||||||
OPTION(
|
SET(
|
||||||
VMIME_TLS_SUPPORT_LIB_IS_GNUTLS
|
VMIME_TLS_SUPPORT_LIB
|
||||||
"Use GNU TLS library for SSL/TLS support"
|
"gnutls"
|
||||||
ON
|
CACHE
|
||||||
|
STRING
|
||||||
|
"Library to use for SSL/TLS conversion"
|
||||||
|
)
|
||||||
|
SET_PROPERTY(
|
||||||
|
CACHE
|
||||||
|
VMIME_TLS_SUPPORT_LIB
|
||||||
|
PROPERTY STRINGS gnutls openssl
|
||||||
)
|
)
|
||||||
|
|
||||||
OPTION(
|
|
||||||
VMIME_TLS_SUPPORT_LIB_IS_OPENSSL
|
|
||||||
"Use OpenSSL library for SSL/TLS support"
|
|
||||||
OFF
|
|
||||||
)
|
|
||||||
|
|
||||||
IF(VMIME_HAVE_TLS_SUPPORT)
|
IF(VMIME_HAVE_TLS_SUPPORT)
|
||||||
|
|
||||||
IF(VMIME_TLS_SUPPORT_LIB_IS_GNUTLS AND VMIME_TLS_SUPPORT_LIB_IS_OPENSSL)
|
IF(VMIME_TLS_SUPPORT_LIB STREQUAL "gnutls")
|
||||||
MESSAGE(FATAL_ERROR "Options VMIME_TLS_SUPPORT_LIB_IS_GNUTLS and VMIME_TLS_SUPPORT_LIB_IS_OPENSSL are mutually exclusive (select one or the other, but not both!)")
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
IF(VMIME_TLS_SUPPORT_LIB_IS_GNUTLS)
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(
|
INCLUDE_DIRECTORIES(
|
||||||
${INCLUDE_DIRECTORIES}
|
${INCLUDE_DIRECTORIES}
|
||||||
@ -692,7 +690,10 @@ IF(VMIME_HAVE_TLS_SUPPORT)
|
|||||||
|
|
||||||
SET(VMIME_PKGCONFIG_REQUIRES "${VMIME_PKGCONFIG_REQUIRES} gnutls")
|
SET(VMIME_PKGCONFIG_REQUIRES "${VMIME_PKGCONFIG_REQUIRES} gnutls")
|
||||||
|
|
||||||
ELSEIF(VMIME_TLS_SUPPORT_LIB_IS_OPENSSL)
|
SET(VMIME_TLS_SUPPORT_LIB_IS_GNUTLS "ON")
|
||||||
|
SET(VMIME_TLS_SUPPORT_LIB_IS_OPENSSL "OFF")
|
||||||
|
|
||||||
|
ELSEIF(VMIME_TLS_SUPPORT_LIB STREQUAL "openssl")
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(
|
INCLUDE_DIRECTORIES(
|
||||||
${INCLUDE_DIRECTORIES}
|
${INCLUDE_DIRECTORIES}
|
||||||
@ -709,6 +710,9 @@ IF(VMIME_HAVE_TLS_SUPPORT)
|
|||||||
|
|
||||||
SET(VMIME_PKGCONFIG_REQUIRES "${VMIME_PKGCONFIG_REQUIRES} openssl")
|
SET(VMIME_PKGCONFIG_REQUIRES "${VMIME_PKGCONFIG_REQUIRES} openssl")
|
||||||
|
|
||||||
|
SET(VMIME_TLS_SUPPORT_LIB_IS_GNUTLS "OFF")
|
||||||
|
SET(VMIME_TLS_SUPPORT_LIB_IS_OPENSSL "ON")
|
||||||
|
|
||||||
ELSE()
|
ELSE()
|
||||||
|
|
||||||
MESSAGE(FATAL_ERROR "TLS support is enabled, but no TLS/SSL library was selected/found")
|
MESSAGE(FATAL_ERROR "TLS support is enabled, but no TLS/SSL library was selected/found")
|
||||||
@ -727,44 +731,28 @@ INCLUDE(cmake/FindICU.cmake)
|
|||||||
FIND_PACKAGE(ICU QUIET)
|
FIND_PACKAGE(ICU QUIET)
|
||||||
|
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
SET(VMIME_CHARSETCONV_LIB_IS_ICONV_DEFAULT "OFF")
|
SET(VMIME_CHARSETCONV_LIB_DETECTED "win")
|
||||||
SET(VMIME_CHARSETCONV_LIB_IS_ICU_DEFAULT "OFF")
|
|
||||||
SET(VMIME_CHARSETCONV_LIB_IS_WIN_DEFAULT "ON")
|
|
||||||
ELSEIF(ICONV_FOUND)
|
|
||||||
SET(VMIME_CHARSETCONV_LIB_IS_ICONV_DEFAULT "ON")
|
|
||||||
SET(VMIME_CHARSETCONV_LIB_IS_ICU_DEFAULT "OFF")
|
|
||||||
SET(VMIME_CHARSETCONV_LIB_IS_WIN_DEFAULT "OFF")
|
|
||||||
ELSEIF(ICU_LIBRARIES)
|
ELSEIF(ICU_LIBRARIES)
|
||||||
SET(VMIME_CHARSETCONV_LIB_IS_ICONV_DEFAULT "OFF")
|
SET(VMIME_CHARSETCONV_LIB_DETECTED "icu")
|
||||||
SET(VMIME_CHARSETCONV_LIB_IS_ICU_DEFAULT "ON")
|
ELSEIF(ICONV_FOUND)
|
||||||
SET(VMIME_CHARSETCONV_LIB_IS_WIN_DEFAULT "OFF")
|
SET(VMIME_CHARSETCONV_LIB_DETECTED "iconv")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
OPTION(
|
SET(
|
||||||
VMIME_CHARSETCONV_LIB_IS_ICONV
|
VMIME_CHARSETCONV_LIB
|
||||||
"Use iconv library for charset conversion"
|
"${VMIME_CHARSETCONV_LIB_DETECTED}"
|
||||||
${VMIME_CHARSETCONV_LIB_IS_ICONV_DEFAULT}
|
CACHE
|
||||||
|
STRING
|
||||||
|
"Library to use for charset conversion"
|
||||||
|
)
|
||||||
|
SET_PROPERTY(
|
||||||
|
CACHE
|
||||||
|
VMIME_CHARSETCONV_LIB
|
||||||
|
PROPERTY STRINGS win iconv icu
|
||||||
)
|
)
|
||||||
|
|
||||||
OPTION(
|
|
||||||
VMIME_CHARSETCONV_LIB_IS_ICU
|
|
||||||
"Use ICU library for charset conversion"
|
|
||||||
${VMIME_CHARSETCONV_LIB_IS_ICU_DEFAULT}
|
|
||||||
)
|
|
||||||
|
|
||||||
OPTION(
|
IF(VMIME_CHARSETCONV_LIB STREQUAL "iconv")
|
||||||
VMIME_CHARSETCONV_LIB_IS_WIN
|
|
||||||
"Use Windows API for charset conversion"
|
|
||||||
${VMIME_CHARSETCONV_LIB_IS_WIN_DEFAULT}
|
|
||||||
)
|
|
||||||
|
|
||||||
IF((VMIME_CHARSETCONV_LIB_IS_ICONV AND VMIME_CHARSETCONV_LIB_IS_ICU) OR
|
|
||||||
(VMIME_CHARSETCONV_LIB_IS_ICONV AND VMIME_CHARSETCONV_LIB_IS_WIN) OR
|
|
||||||
(VMIME_CHARSETCONV_LIB_IS_ICU AND VMIME_CHARSETCONV_LIB_IS_WIN))
|
|
||||||
MESSAGE(FATAL_ERROR "Options VMIME_CHARSETCONV_LIB_IS_ICONV, VMIME_CHARSETCONV_LIB_IS_ICU and VMIME_CHARSETCONV_LIB_IS_WIN are mutually exclusive (select only one of them, but not all!)")
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
IF(VMIME_CHARSETCONV_LIB_IS_ICONV)
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(
|
INCLUDE_DIRECTORIES(
|
||||||
${INCLUDE_DIRECTORIES}
|
${INCLUDE_DIRECTORIES}
|
||||||
@ -782,7 +770,11 @@ IF(VMIME_CHARSETCONV_LIB_IS_ICONV)
|
|||||||
SET(VMIME_PKGCONFIG_LIBS "${VMIME_PKGCONFIG_LIBS} ${ICONV_LIBRARIES}")
|
SET(VMIME_PKGCONFIG_LIBS "${VMIME_PKGCONFIG_LIBS} ${ICONV_LIBRARIES}")
|
||||||
SET(VMIME_PKGCONFIG_CFLAGS "${VMIME_PKGCONFIG_CFLAGS} -I${ICONV_INCLUDE_DIR}")
|
SET(VMIME_PKGCONFIG_CFLAGS "${VMIME_PKGCONFIG_CFLAGS} -I${ICONV_INCLUDE_DIR}")
|
||||||
|
|
||||||
ELSEIF(VMIME_CHARSETCONV_LIB_IS_ICU)
|
SET(VMIME_CHARSETCONV_LIB_IS_ICONV "ON")
|
||||||
|
SET(VMIME_CHARSETCONV_LIB_IS_ICU "OFF")
|
||||||
|
SET(VMIME_CHARSETCONV_LIB_IS_WIN "OFF")
|
||||||
|
|
||||||
|
ELSEIF(VMIME_CHARSETCONV_LIB STREQUAL "icu")
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(
|
INCLUDE_DIRECTORIES(
|
||||||
${INCLUDE_DIRECTORIES}
|
${INCLUDE_DIRECTORIES}
|
||||||
@ -800,9 +792,15 @@ ELSEIF(VMIME_CHARSETCONV_LIB_IS_ICU)
|
|||||||
SET(VMIME_PKGCONFIG_LIBS "${VMIME_PKGCONFIG_LIBS} ${ICU_LIBRARIES}")
|
SET(VMIME_PKGCONFIG_LIBS "${VMIME_PKGCONFIG_LIBS} ${ICU_LIBRARIES}")
|
||||||
SET(VMIME_PKGCONFIG_CFLAGS "${VMIME_PKGCONFIG_CFLAGS} -I${ICU_INCLUDE_DIRS}")
|
SET(VMIME_PKGCONFIG_CFLAGS "${VMIME_PKGCONFIG_CFLAGS} -I${ICU_INCLUDE_DIRS}")
|
||||||
|
|
||||||
ELSEIF(VMIME_CHARSETCONV_LIB_IS_WIN)
|
SET(VMIME_CHARSETCONV_LIB_IS_ICONV "OFF")
|
||||||
|
SET(VMIME_CHARSETCONV_LIB_IS_ICU "ON")
|
||||||
|
SET(VMIME_CHARSETCONV_LIB_IS_WIN "OFF")
|
||||||
|
|
||||||
# Nothing to do
|
ELSEIF(VMIME_CHARSETCONV_LIB STREQUAL "win")
|
||||||
|
|
||||||
|
SET(VMIME_CHARSETCONV_LIB_IS_ICONV "OFF")
|
||||||
|
SET(VMIME_CHARSETCONV_LIB_IS_ICU "OFF")
|
||||||
|
SET(VMIME_CHARSETCONV_LIB_IS_WIN "ON")
|
||||||
|
|
||||||
ELSE()
|
ELSE()
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
\chapter{Building and Installing VMime\label{chapter_building}}
|
\label{chapter_building}
|
||||||
|
\chapter{Building and Installing VMime}
|
||||||
|
|
||||||
% ============================================================================
|
% ============================================================================
|
||||||
\section{Introduction}
|
\section{Introduction}
|
||||||
@ -137,15 +138,15 @@ Set to ON to build a static version (.a) of the library (default is ON). \\
|
|||||||
VMIME\_BUILD\_TESTS &
|
VMIME\_BUILD\_TESTS &
|
||||||
Set to ON to build unit tests (default is OFF). \\
|
Set to ON to build unit tests (default is OFF). \\
|
||||||
\hline
|
\hline
|
||||||
VMIME\_TLS\_SUPPORT\_LIB\_IS\_OPENSSL \\ VMIME\_TLS\_SUPPORT\_LIB\_IS\_GNUTLS &
|
VMIME\_TLS\_SUPPORT\_LIB &
|
||||||
Set either the one or the other (but not both) to ON to force using either OpenSSL
|
Set to either "openssl" or "gnutls" to force using either OpenSSL or GNU TLS
|
||||||
or GNU TLS as the SSL library (default depends on which libraries are available on
|
for SSL/TLS support (default depends on which libraries are available on
|
||||||
your system). \\
|
your system). \\
|
||||||
\hline
|
\hline
|
||||||
VMIME\_CHARSETCONV\_LIB\_IS\_ICONV \\ VMIME\_CHARSETCONV\_LIB\_IS\_ICU &
|
VMIME\_CHARSETCONV\_LIB &
|
||||||
Set either the one or the other (but not both) to ON to force using either iconv
|
Set to either "iconv", "icu" or "win" (Windows only) to force using iconv, ICU
|
||||||
or ICU as the charset conversion library (default depends on which libraries are
|
or Windows built-in API for converting between charsets (default value depends
|
||||||
available on your system). \\
|
on which libraries are available on your system). \\
|
||||||
\hline
|
\hline
|
||||||
CMAKE\_BUILD\_TYPE &
|
CMAKE\_BUILD\_TYPE &
|
||||||
Set the build type: either "Release" or "Debug". In Debug build, optimizations
|
Set the build type: either "Release" or "Debug". In Debug build, optimizations
|
||||||
|
@ -5,7 +5,7 @@ cd _build
|
|||||||
rm -f ../CMakeCache.txt ../src/vmime/config.hpp ../src/vmime/export-static.hpp ../src/vmime/export-shared.hpp
|
rm -f ../CMakeCache.txt ../src/vmime/config.hpp ../src/vmime/export-static.hpp ../src/vmime/export-shared.hpp
|
||||||
#cmake .. -DCMAKE_INSTALL_PREFIX=../_install -DVMIME_BUILD_SHARED_LIBRARY=NO
|
#cmake .. -DCMAKE_INSTALL_PREFIX=../_install -DVMIME_BUILD_SHARED_LIBRARY=NO
|
||||||
#cmake .. -DCMAKE_INSTALL_PREFIX=../_install -DVMIME_BUILD_TESTS=YES
|
#cmake .. -DCMAKE_INSTALL_PREFIX=../_install -DVMIME_BUILD_TESTS=YES
|
||||||
cmake .. -DCMAKE_INSTALL_PREFIX=../_install -DVMIME_BUILD_TESTS=YES -DVMIME_BUILD_SAMPLES=YES -DVMIME_TLS_SUPPORT_LIB_IS_OPENSSL=ON -DVMIME_TLS_SUPPORT_LIB_IS_GNUTLS=OFF -DCMAKE_BUILD_TYPE=Debug
|
cmake .. -DCMAKE_INSTALL_PREFIX=../_install -DVMIME_BUILD_TESTS=YES -DVMIME_BUILD_SAMPLES=YES -DVMIME_TLS_SUPPORT_LIB=openssl -DCMAKE_BUILD_TYPE=Debug
|
||||||
cmake .. -L
|
cmake .. -L
|
||||||
make
|
make
|
||||||
make install
|
make install
|
||||||
|
Loading…
Reference in New Issue
Block a user