diff --git a/NPLib/ressources/CMake/NPAnalysis.cmake b/NPLib/ressources/CMake/NPAnalysis.cmake index fdc1dd9197430be1c2e8b20b8d2958a44f4cf633..3656ebe9f74ecbfda002369e52c7ac4bd8276e5c 100644 --- a/NPLib/ressources/CMake/NPAnalysis.cmake +++ b/NPLib/ressources/CMake/NPAnalysis.cmake @@ -25,20 +25,24 @@ link_directories( ${ROOT_LIBRARY_DIR}) include_directories( ${NPTOOL_INCLUDE_DIR}) link_directories( ${NPTOOL_LIB_DIR}) -# If the compiler is Clang, silence the unrecognised flags -if(${CMAKE_CXX_COMPILER_ID} MATCHES ".*Clang.*") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -undefined dynamic_lookup") +# Check for user disabling of c++11 support +string(COMPARE EQUAL "${CPP11}" "no" nocpp11) +if(nocpp11) + message(" -> C++11 support disable") endif() + # If the compiler is Clang, silence the unrecognised flags if(${CMAKE_CXX_COMPILER_ID} MATCHES ".*Clang.*") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -fcolor-diagnostics") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments -fcolor-diagnostics -undefined dynamic_lookup") if( UNIX AND NOT APPLE ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") endif() + if( APPLE AND CLANG_VERSION_MAJOR VERSION_LESS 5 AND NOT nocpp11) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") + endif() endif() - # Adjust the compiler language flag set(NOCPPFLAGS true) if(${CMAKE_CXX_FLAGS} MATCHES ".*std=.*11") @@ -49,13 +53,13 @@ endif() if(NOCPPFLAGS) CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) - if(COMPILER_SUPPORTS_CXX11) + if(COMPILER_SUPPORTS_CXX11 AND NOT nocpp11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") else() CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) endif() - if(COMPILER_SUPPORTS_CXX0X) + if(COMPILER_SUPPORTS_CXX0X AND NOT nocpp11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") endif() endif()