mirror of
https://github.com/google/benchmark.git
synced 2024-12-04 20:04:32 +00:00
35 lines
948 B
CMake
35 lines
948 B
CMake
# - 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.6+
|
|
|
|
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)
|
|
message("-- Performing Test ${FEATURE}")
|
|
try_run(RUN_${FEATURE} COMPILE_${FEATURE} ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${FILE}.cpp)
|
|
if(RUN_${FEATURE} EQUAL 0)
|
|
message("-- Performing Test ${FEATURE} -- Success")
|
|
set(HAVE_${VAR} 1 PARENT_SCOPE)
|
|
add_definitions(-DHAVE_${VAR})
|
|
else()
|
|
message("-- Performing Test ${FEATURE} -- Failed")
|
|
endif()
|
|
endfunction()
|
|
|