include_guard(GLOBAL) # Добавление флага к списку используемых после проверки # возможности его использования текущим компилятором # Основано на https://github.com/bluescarni/yacma include(CheckCXXCompilerFlag) macro(check_enable_cxx_compiler_flag FLAG) set(options) set(oneValueArgs TARGET) set(multiValueArgs) cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) set(CMAKE_REQUIRED_QUIET TRUE) check_cxx_compiler_flag("${FLAG}" check_cxx_flag) unset(CMAKE_REQUIRED_QUIET) if(check_cxx_flag) myx_message_notice("'${FLAG}': flag is supported.") if(ARG_TARGET) target_compile_options(${ARG_TARGET} PUBLIC ${FLAG}) else() add_compile_options(${FLAG}) endif() else() myx_message_status("'${FLAG}': flag is NOT supported.") endif() unset(check_cxx_flag CACHE) foreach(iter IN LISTS oneValueArgs multiValueArgs) unset(ARG_${iter}) endforeach() unset(ARG_UNPARSED_ARGUMENTS) unset(multiValueArgs) unset(oneValueArgs) unset(options) endmacro()