aboutsummaryrefslogtreecommitdiffstats
path: root/cmake/EthCheckCXXCompilerFlag.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/EthCheckCXXCompilerFlag.cmake')
-rw-r--r--cmake/EthCheckCXXCompilerFlag.cmake23
1 files changed, 23 insertions, 0 deletions
diff --git a/cmake/EthCheckCXXCompilerFlag.cmake b/cmake/EthCheckCXXCompilerFlag.cmake
new file mode 100644
index 00000000..c6ed35b4
--- /dev/null
+++ b/cmake/EthCheckCXXCompilerFlag.cmake
@@ -0,0 +1,23 @@
+include(CheckCXXCompilerFlag)
+
+# Adds CXX compiler flag if the flag is supported by the compiler.
+#
+# This is effectively a combination of CMake's check_cxx_compiler_flag()
+# and add_compile_options():
+#
+# if(check_cxx_compiler_flag(flag))
+# add_compile_options(flag)
+#
+function(eth_add_cxx_compiler_flag_if_supported FLAG)
+ # Remove leading - or / from the flag name.
+ string(REGEX REPLACE "^-|/" "" name ${FLAG})
+ check_cxx_compiler_flag(${FLAG} ${name})
+ if(${name})
+ add_compile_options(${FLAG})
+ endif()
+
+ # If the optional argument passed, store the result there.
+ if(ARGV1)
+ set(${ARGV1} ${name} PARENT_SCOPE)
+ endif()
+endfunction()