- execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
- message(STATUS "Using GCC version ${GCC_VERSION}")
-# disabled because of missing match_partial
-# if(GCC_VERSION VERSION_LESS 4.9)
- # <regex> in gcc is unusable in versions less than 4.9.0
- # see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
- set(LYX_USE_STD_REGEX 0)
-# endif()
- if (LYX_ENABLE_CXX11)
- find_package(CXX11Compiler)
- if(NOT CXX11COMPILER_FOUND)
- message(FATAL_ERROR "A C++11 compatible compiler is required.")
- endif()
- set(LYX_GCC11_MODE "${CXX11_FLAG}")
+ if (CMAKE_CXX_COMPILER_ID MATCHES "^[cC]lang$")
+ # ignore the GCC_VERSION for clang
+ # and use the resulting CXX11_STD_REGEX found in FindCXX11Compiler.cmake
+ message(STATUS "Using clang")
+ if(CXX11_STD_REGEX)
+ set(LYX_USE_STD_REGEX 1)
+ else()
+ set(LYX_USE_STD_REGEX 0)
+ endif()
+ else()
+ execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
+ message(STATUS "Using GCC version ${GCC_VERSION}")
+ if(GCC_VERSION VERSION_LESS 4.9)
+ if(GCC_VERSION VERSION_LESS 4.6)
+ message(FATAL_ERROR "gcc >= 4.6 is required.")
+ endif()
+ # <regex> in gcc is unusable in versions less than 4.9.0
+ # see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
+ set(LYX_USE_STD_REGEX 0)
+ else()
+ set(LYX_USE_STD_REGEX 1)
+ endif()