35 lines
810 B
CMake
35 lines
810 B
CMake
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)
|
|
if(ARG_TARGET)
|
|
target_compile_options(${ARG_TARGET} PUBLIC ${flag})
|
|
else()
|
|
add_compile_options(${flag})
|
|
endif()
|
|
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()
|
|
|