Files

65 lines
1.7 KiB
Diff

From 0f7014ab579acd4a29e743fa570d5ed8e58e2a41 Mon Sep 17 00:00:00 2001
From: Jan Engelhardt <jengelh@inai.de>
Date: Tue, 11 Jun 2024 20:46:59 +0200
Subject: [PATCH] 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.
---
CMakeLists.txt | 32 ++++++++++++++++++--------------
1 file changed, 18 insertions(+), 14 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3e209b54..89fb980c 100644
--- CMakeLists.txt
+++ 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