From 5012852e7f6a3b7ad84117d69b6a5554c1aee166 Mon Sep 17 00:00:00 2001 From: Roland Schulz Date: Wed, 26 Nov 2014 16:19:18 -0500 Subject: [PATCH] Fix clang with boost 1.46.1 and 1.47 Change-Id: I53b9fcb1bcf553ea128f7edb2d15bec87fd4f9e9 --- CMakeLists.txt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ce2320ca7a..b48bb03b53 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -683,11 +683,16 @@ gmx_test__finite(HAVE__FINITE) include(gmxTestCXX11) gmx_test_cxx11(GMX_CXX11_SUPPORTED GMX_CXX11_FLAGS) include(CMakeDependentOption) +# clang with some older versions of boost fail to work with C++11 +if(CMAKE_CXX_COMPILER_ID MATCHES Clang AND + (Boost_VERSION VERSION_EQUAL 104601 OR Boost_VERSION VERSION_EQUAL 104700)) + set(CLANG_AND_OLD_EXTERNAL_BOOST TRUE) +endif() # nvcc does not support C++11 flags, so with GPUs we prefer to skip C++11 flags # entirely to keep the compilation environment uniform. cmake_dependent_option(GMX_CXX11 "Use C++11 features" - ON "GMX_CXX11_SUPPORTED AND NOT GMX_GPU" OFF) + ON "GMX_CXX11_SUPPORTED AND NOT GMX_GPU AND NOT CLANG_AND_OLD_EXTERNAL_BOOST" OFF) mark_as_advanced(GMX_CXX11) if(GMX_CXX11) set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} ${GMX_CXX11_FLAGS}") -- 2.22.0