@@ -11,11 +11,57 @@ find_package(OpenMP REQUIRED)
1111target_link_libraries (benchmark PRIVATE OpenMP::OpenMP_CXX )
1212
1313if (MSVC )
14- target_compile_options ( benchmark PRIVATE /W4 /permissive- /bigobj )
14+ set (MEXCE_BENCHMARK_LOCAL_FLAGS /W4 /permissive- /bigobj)
1515else ()
16- target_compile_options ( benchmark PRIVATE -Wall -Wextra -Wpedantic )
16+ set (MEXCE_BENCHMARK_LOCAL_FLAGS -Wall -Wextra -Wpedantic)
1717endif ()
1818
19+ target_compile_options (benchmark PRIVATE ${MEXCE_BENCHMARK_LOCAL_FLAGS} )
20+
21+ set (MEXCE_BENCHMARK_COMPILER "${CMAKE_CXX_COMPILER_ID } " )
22+ if (CMAKE_CXX_COMPILER_VERSION )
23+ string (APPEND MEXCE_BENCHMARK_COMPILER " ${CMAKE_CXX_COMPILER_VERSION } " )
24+ endif ()
25+
26+ set (MEXCE_BENCHMARK_FLAGS "${CMAKE_CXX_FLAGS } " )
27+ if (CMAKE_BUILD_TYPE )
28+ string (TOUPPER "${CMAKE_BUILD_TYPE } " MEXCE_BUILD_TYPE_UPPER)
29+ if (DEFINED CMAKE_CXX_FLAGS_${MEXCE_BUILD_TYPE_UPPER} )
30+ set (MEXCE_BUILD_TYPE_FLAGS "${CMAKE_CXX_FLAGS_${MEXCE_BUILD_TYPE_UPPER} }" )
31+ if (MEXCE_BUILD_TYPE_FLAGS)
32+ if (MEXCE_BENCHMARK_FLAGS)
33+ string (APPEND MEXCE_BENCHMARK_FLAGS " " )
34+ endif ()
35+ string (APPEND MEXCE_BENCHMARK_FLAGS "${MEXCE_BUILD_TYPE_FLAGS} " )
36+ endif ()
37+ endif ()
38+ endif ()
39+
40+ if (MEXCE_BENCHMARK_LOCAL_FLAGS)
41+ list (JOIN MEXCE_BENCHMARK_LOCAL_FLAGS " " MEXCE_BENCHMARK_LOCAL_FLAGS_STR)
42+ if (MEXCE_BENCHMARK_LOCAL_FLAGS_STR)
43+ if (MEXCE_BENCHMARK_FLAGS)
44+ string (APPEND MEXCE_BENCHMARK_FLAGS " " )
45+ endif ()
46+ string (APPEND MEXCE_BENCHMARK_FLAGS "${MEXCE_BENCHMARK_LOCAL_FLAGS_STR} " )
47+ endif ()
48+ endif ()
49+
50+ string (STRIP "${MEXCE_BENCHMARK_FLAGS} " MEXCE_BENCHMARK_FLAGS)
51+ if ("${MEXCE_BENCHMARK_FLAGS} " STREQUAL "" )
52+ set (MEXCE_BENCHMARK_FLAGS "<none>" )
53+ endif ()
54+
55+ foreach (_var MEXCE_BENCHMARK_COMPILER MEXCE_BENCHMARK_FLAGS)
56+ string (REPLACE "\\ " "\\\\ " ${_var} "${${_var} }" )
57+ string (REPLACE "\" " "\\\" " ${_var} "${${_var} }" )
58+ endforeach ()
59+
60+ target_compile_definitions (benchmark PRIVATE
61+ BENCHMARK_COMPILER= "${MEXCE_BENCHMARK_COMPILER} "
62+ BENCHMARK_COMPILER_FLAGS= "${MEXCE_BENCHMARK_FLAGS} "
63+ )
64+
1965enable_testing ()
2066add_test (NAME benchmark_quick
2167 COMMAND benchmark 5 ${CMAKE_BINARY_DIR } /benchmark_quick_results.txt )
0 commit comments