From 9047ec0b72a54ad0df59b5e232be2acbf5796511 Mon Sep 17 00:00:00 2001 From: vsr Date: Thu, 12 Nov 2020 12:09:08 +0300 Subject: [PATCH] Replace IN_LIST operator to avoid error when working with older versions of CMake --- cmake/SalomeMacros.cmake | 1 - cmake/SalomeSetupPlatform.cmake | 11 ++++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/cmake/SalomeMacros.cmake b/cmake/SalomeMacros.cmake index d24b042..33078a9 100644 --- a/cmake/SalomeMacros.cmake +++ b/cmake/SalomeMacros.cmake @@ -27,7 +27,6 @@ IF(WIN32) CMAKE_POLICY(SET CMP0020 OLD) # Disable automatic linking to qtmain.lib ENDIF(WIN32) CMAKE_POLICY(SET CMP0053 NEW) # For correct Qt 5 detection procedure -CMAKE_POLICY(SET CMP0057 NEW) # For IF(IN_LIST) operator IF(CMAKE_VERSION VERSION_GREATER_EQUAL 3.12) CMAKE_POLICY(SET CMP0074 NEW) # Use ROOT variables when detecting packages ENDIF() diff --git a/cmake/SalomeSetupPlatform.cmake b/cmake/SalomeSetupPlatform.cmake index 55ffc5d..87cfdf1 100644 --- a/cmake/SalomeSetupPlatform.cmake +++ b/cmake/SalomeSetupPlatform.cmake @@ -111,10 +111,19 @@ ENDIF() # specifying -DCMAKE_CXX_EXTENSIONS=OFF SET(SALOME_CXX_STANDARD 11 CACHE STRING "C++ standard to use") SET(_supported_standards 11 14 17 20) -IF(NOT ${SALOME_CXX_STANDARD} IN_LIST _supported_standards) +SET(_standard_ok FALSE) +FOREACH(_standard ${_supported_standards}) + IF(SALOME_CXX_STANDARD STREQUAL _standard) + SET(_standard_ok TRUE) + BREAK() + ENDIF() +ENDFOREACH() +IF(NOT _standard_ok) MESSAGE(FATAL_ERROR "Unsupported C++ standard: ${SALOME_CXX_STANDARD}; allowed values: ${_supported_standards}") ENDIF() UNSET(_supported_standards) +UNSET(_standard) +UNSET(_standard_ok) MESSAGE(STATUS "Setting C++ standard to ${SALOME_CXX_STANDARD}") SET(CMAKE_CXX_STANDARD ${SALOME_CXX_STANDARD}) SET(CMAKE_CXX_STANDARD_REQUIRED ON) -- 2.39.2