Index: third_party/google_benchmark/cmake/CXXFeatureCheck.cmake |
diff --git a/third_party/google_benchmark/cmake/CXXFeatureCheck.cmake b/third_party/google_benchmark/cmake/CXXFeatureCheck.cmake |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6efe6a84ee4936867167774654743159ad61e18a |
--- /dev/null |
+++ b/third_party/google_benchmark/cmake/CXXFeatureCheck.cmake |
@@ -0,0 +1,44 @@ |
+# - Compile and run code to check for C++ features |
+# |
+# This functions compiles a source file under the `cmake` folder |
+# and adds the corresponding `HAVE_[FILENAME]` flag to the CMake |
+# environment |
+# |
+# cxx_feature_check(<FLAG> [<VARIANT>]) |
+# |
+# - Example |
+# |
+# include(CXXFeatureCheck) |
+# cxx_feature_check(STD_REGEX) |
+# Requires CMake 2.8.12+ |
+ |
+if(__cxx_feature_check) |
+ return() |
+endif() |
+set(__cxx_feature_check INCLUDED) |
+ |
+function(cxx_feature_check FILE) |
+ string(TOLOWER ${FILE} FILE) |
+ string(TOUPPER ${FILE} VAR) |
+ string(TOUPPER "HAVE_${VAR}" FEATURE) |
+ if (DEFINED HAVE_${VAR}) |
+ return() |
+ endif() |
+ message("-- Performing Test ${FEATURE}") |
+ try_run(RUN_${FEATURE} COMPILE_${FEATURE} |
+ ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${FILE}.cpp |
+ CMAKE_FLAGS ${BENCHMARK_CXX_LINKER_FLAGS} |
+ LINK_LIBRARIES ${BENCHMARK_CXX_LIBRARIES}) |
+ if(RUN_${FEATURE} EQUAL 0) |
+ message("-- Performing Test ${FEATURE} -- success") |
+ set(HAVE_${VAR} 1 CACHE INTERNAL "Feature test for ${FILE}" PARENT_SCOPE) |
+ add_definitions(-DHAVE_${VAR}) |
+ else() |
+ if(NOT COMPILE_${FEATURE}) |
+ message("-- Performing Test ${FEATURE} -- failed to compile") |
+ else() |
+ message("-- Performing Test ${FEATURE} -- compiled but failed to run") |
+ endif() |
+ endif() |
+endfunction() |
+ |