summaryrefslogtreecommitdiff
path: root/cmake/utils/CompilerUtils.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/utils/CompilerUtils.cmake')
-rw-r--r--cmake/utils/CompilerUtils.cmake13
1 files changed, 13 insertions, 0 deletions
diff --git a/cmake/utils/CompilerUtils.cmake b/cmake/utils/CompilerUtils.cmake
new file mode 100644
index 00000000..35548f4f
--- /dev/null
+++ b/cmake/utils/CompilerUtils.cmake
@@ -0,0 +1,13 @@
+include(CheckCCompilerFlag)
+
+function(test_and_set_c_compiler_flag_global _flag)
+ string(REGEX REPLACE "-" "_" _sflag ${_flag})
+ string(REGEX REPLACE "=" "_" _sflag ${_sflag})
+ # Use -Werror during test so clang rejects unknown flags
+ set(CMAKE_REQUIRED_FLAGS "-Werror ${_flag}")
+ check_c_compiler_flag(${_flag} COMPILER_SUPPORTS_FLAG_${_sflag})
+
+ if(COMPILER_SUPPORTS_FLAG_${_sflag})
+ add_compile_options(${_flag})
+ endif()
+endfunction()