From 0f7014ab579acd4a29e743fa570d5ed8e58e2a41 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt 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