include_guard(GLOBAL) # based on 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()