summaryrefslogtreecommitdiffstats
path: root/lib/libcxx/utils/google-benchmark/cmake/CXXFeatureCheck.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libcxx/utils/google-benchmark/cmake/CXXFeatureCheck.cmake')
-rw-r--r--lib/libcxx/utils/google-benchmark/cmake/CXXFeatureCheck.cmake34
1 files changed, 27 insertions, 7 deletions
diff --git a/lib/libcxx/utils/google-benchmark/cmake/CXXFeatureCheck.cmake b/lib/libcxx/utils/google-benchmark/cmake/CXXFeatureCheck.cmake
index 6efe6a84ee4..c4c4d660f1e 100644
--- a/lib/libcxx/utils/google-benchmark/cmake/CXXFeatureCheck.cmake
+++ b/lib/libcxx/utils/google-benchmark/cmake/CXXFeatureCheck.cmake
@@ -22,16 +22,37 @@ function(cxx_feature_check FILE)
string(TOUPPER ${FILE} VAR)
string(TOUPPER "HAVE_${VAR}" FEATURE)
if (DEFINED HAVE_${VAR})
+ set(HAVE_${VAR} 1 PARENT_SCOPE)
+ add_definitions(-DHAVE_${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 (NOT DEFINED COMPILE_${FEATURE})
+ message("-- Performing Test ${FEATURE}")
+ if(CMAKE_CROSSCOMPILING)
+ try_compile(COMPILE_${FEATURE}
+ ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/${FILE}.cpp
+ CMAKE_FLAGS ${BENCHMARK_CXX_LINKER_FLAGS}
+ LINK_LIBRARIES ${BENCHMARK_CXX_LIBRARIES})
+ if(COMPILE_${FEATURE})
+ message(WARNING
+ "If you see build failures due to cross compilation, try setting HAVE_${VAR} to 0")
+ set(RUN_${FEATURE} 0)
+ else()
+ set(RUN_${FEATURE} 1)
+ endif()
+ else()
+ 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})
+ endif()
+ endif()
+
if(RUN_${FEATURE} EQUAL 0)
message("-- Performing Test ${FEATURE} -- success")
- set(HAVE_${VAR} 1 CACHE INTERNAL "Feature test for ${FILE}" PARENT_SCOPE)
+ set(HAVE_${VAR} 1 PARENT_SCOPE)
add_definitions(-DHAVE_${VAR})
else()
if(NOT COMPILE_${FEATURE})
@@ -41,4 +62,3 @@ function(cxx_feature_check FILE)
endif()
endif()
endfunction()
-