- set(CMAKE_CXX_STANDARD ${CMAKE_MATCH_1})
- message(STATUS "CMAKE_CXX_STANDARD set to ${CMAKE_CXX_STANDARD}")
+ set(std_num ${CMAKE_MATCH_1})
+ # Try to find a std-cxx-feature supported by this cmake version
+ while (std_num GREATER 0)
+ list(FIND CMAKE_CXX_COMPILE_FEATURES "cxx_std_${std_num}" stdfeature)
+ if (stdfeature GREATER -1)
+ set(CMAKE_CXX_STANDARD ${std_num})
+ break()
+ endif()
+ math(EXPR std_num "${std_num}-1")
+ endwhile()
+ message(STATUS "std_num = ${std_num}")
+ if (std_num EQUAL 0)
+ # not found appropriate feature
+ # so we use LYX_GCC11_MODE
+ set(LYX_CXX_FLAGS "-Wall -Wunused-parameter ${LYX_GCC11_MODE}${LYX_CXX_FLAGS}")
+ else()
+ message(STATUS "CMAKE_CXX_STANDARD set to ${CMAKE_CXX_STANDARD}")
+ set(LYX_CXX_FLAGS "-Wall -Wunused-parameter ${LYX_CXX_FLAGS}")
+ endif()
+ message(STATUS "Setting LYX_CXX_FLAGS to ${LYX_CXX_FLAGS}")
+ else()
+ set(LYX_CXX_FLAGS "-Wall -Wunused-parameter ${LYX_GCC11_MODE}${LYX_CXX_FLAGS}")