include_guard(GLOBAL) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") # cmake-format: off if((MYX_CMAKE_LSB_DISTRIBUTOR_ID STREQUAL "AstraLinuxSE") AND (MYX_CMAKE_LSB_CODENAME STREQUAL "smolensk") AND (MYX_CMAKE_LSB_RELEASE_VERSION STREQUAL "1.5")) # cmake-format: on set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_EXTENSIONS ON) elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "e2k") set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_EXTENSIONS ON) add_compile_options(-Wno-invalid-offsetof) list(APPEND CMAKE_LIBRARY_PATH "/usr/lib/e2k-linux-gnu") endif() if(CMAKE_COLOR_MAKEFILE) check_enable_cxx_compiler_flag(-fdiagnostics-color=auto) endif() endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") if(CMAKE_COLOR_MAKEFILE) check_enable_cxx_compiler_flag(-fcolor-diagnostics) endif() endif() option(MYX_CMAKE_WARNINGS_NORMAL "Normal level" ON) cmake_dependent_option(MYX_CMAKE_WARNINGS_VERBOSE "Verbose level" OFF "MYX_CMAKE_WARNINGS_NORMAL" OFF) if(MYX_CMAKE_WARNINGS_NORMAL) if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")) check_enable_cxx_compiler_flag(-Wall) check_enable_cxx_compiler_flag(-Wextra) endif() endif() if(MYX_CMAKE_WARNINGS_VERBOSE) if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")) check_enable_cxx_compiler_flag(-Wpedantic) check_enable_cxx_compiler_flag(-Wnoexcept) endif() endif()