From 90c8b8e468ed5a4123cf8f5ecb1a13f6c6678972 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 14 Jun 2020 12:57:47 +0200 Subject: [PATCH] Move decisions based on the compiler version to a better place --- CMakeLists.txt | 53 ++++++++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 32777aa2e..4d19fa995 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -269,31 +269,6 @@ if(CMAKE_VERSION VERSION_GREATER 3.13) set(USE_CMAKE_TARGET_SOURCES ON) endif() -# Determine if we try to use generic lambdas -if(CMAKE_VERSION VERSION_GREATER 3.1 AND NOT ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND - (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0))) - set(USE_GENERIC_LAMBDAS ON) -endif() - -# Determine if we use lambdas -if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND NOT WIN32) - if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.1.1") - set(DO_NOT_USE_LAMBDAS ON) - endif() -endif() - -if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") - if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") - if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "7") - set(DO_NOT_USE_LAMBDAS ON) - endif() - else() - if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "3.5.0") - set(DO_NOT_USE_LAMBDAS ON) - endif() - endif() -endif() - # Determine if we are using make or ninja if(CMAKE_MAKE_PROGRAM MATCHES "make") set(CMAKE_MAKE_PROGRAM_PRETTY_NAME "make") @@ -393,6 +368,34 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") endif() endif() +# Determine if we use lambdas +if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND NOT WIN32) + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.1.1") + set(DO_NOT_USE_LAMBDAS ON) + endif() +endif() + +if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") + if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") + if(CLANG_VERSION VERSION_LESS "600") + set(DO_NOT_USE_LAMBDAS ON) + endif() + else() + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "3.5.0") + set(DO_NOT_USE_LAMBDAS ON) + endif() + endif() +endif() + +# Determine if we try to use generic lambdas +if(NOT DO_NOT_USE_LAMBDAS) + if(CMAKE_VERSION VERSION_GREATER 3.1 AND NOT ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND + (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0))) + set(USE_GENERIC_LAMBDAS ON) + endif() +endif() + + ################################################################################