aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Engelhardt <[email protected]>2024-06-11 18:46:59 +0000
committerGitHub <[email protected]>2024-06-11 18:46:59 +0000
commit0f7014ab579acd4a29e743fa570d5ed8e58e2a41 (patch)
tree33c2c3fc707fdae7e5151bf3aa8069024e4a8b20
parentcontrib: update utfcpp to v4.0.5 (#309) (diff)
downloadvmime-0f7014ab579acd4a29e743fa570d5ed8e58e2a41.tar.gz
vmime-0f7014ab579acd4a29e743fa570d5ed8e58e2a41.zip
build: upgrade to C++17 when ICU is used (#310)
ICU 75 requires the use of C++17. `SET(CMAKE_CXX_STANDARD 17)` has no effect after the first target has been defined or so, therefore the detection of the conversion library is split and partially moved upwards.
-rw-r--r--CMakeLists.txt32
1 files changed, 18 insertions, 14 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3e209b54..89fb980c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -99,6 +99,23 @@ SET(CMAKE_CXX_STANDARD 11)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
SET(CMAKE_CXX_EXTENSIONS OFF)
+##############################################################################
+# Charset conversion library (1/2)
+
+INCLUDE(cmake/FindIconv.cmake)
+INCLUDE(cmake/FindICU.cmake)
+
+FIND_PACKAGE(ICU QUIET)
+
+IF(ICU_LIBRARIES)
+ SET(VMIME_CHARSETCONV_LIB_DETECTED "icu")
+ SET(CMAKE_CXX_STANDARD 17)
+ELSEIF(ICONV_FOUND)
+ SET(VMIME_CHARSETCONV_LIB_DETECTED "iconv")
+ELSEIF(WIN32)
+ SET(VMIME_CHARSETCONV_LIB_DETECTED "win")
+ENDIF()
+
# Source files
FILE(
GLOB_RECURSE
@@ -666,20 +683,7 @@ ENDIF(VMIME_HAVE_TLS_SUPPORT)
##############################################################################
-# Charset conversion library
-
-INCLUDE(cmake/FindIconv.cmake)
-INCLUDE(cmake/FindICU.cmake)
-
-FIND_PACKAGE(ICU QUIET)
-
-IF(ICU_LIBRARIES)
- SET(VMIME_CHARSETCONV_LIB_DETECTED "icu")
-ELSEIF(ICONV_FOUND)
- SET(VMIME_CHARSETCONV_LIB_DETECTED "iconv")
-ELSEIF(WIN32)
- SET(VMIME_CHARSETCONV_LIB_DETECTED "win")
-ENDIF()
+# Charset conversion library (2/2)
SET(
VMIME_CHARSETCONV_LIB