1+ # Download and unpack benchmark at configure time
2+ configure_file (CMakeLists.txt.in benchmark-download/CMakeLists.txt )
3+ execute_process (COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR} " .
4+ RESULT_VARIABLE result
5+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /benchmark-download )
6+ if (result)
7+ message (FATAL_ERROR "CMake step for benchmark failed: ${result} " )
8+ endif ()
9+ execute_process (COMMAND ${CMAKE_COMMAND} --build .
10+ RESULT_VARIABLE result
11+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /benchmark-download )
12+ if (result)
13+ message (FATAL_ERROR "Build step for benchmark failed: ${result} " )
14+ endif ()
15+
16+ # configure Google Benchmarks
17+ set (BENCHMARK_ENABLE_TESTING OFF CACHE INTERNAL "" FORCE )
18+ add_subdirectory (${CMAKE_CURRENT_SOURCE_DIR} /benchmark-src
19+ ${CMAKE_CURRENT_BINARY_DIR} /benchmark-build
20+ EXCLUDE_FROM_ALL )
21+
22+ add_executable (run-benchmark
23+ main.cpp
24+ ${SERVER_SOURCES}
25+ ${SERVER_HEADERS}
26+ )
27+
28+ set_target_properties (run-benchmark PROPERTIES
29+ XCODE_GENERATE_SCHEME TRUE
30+ XCODE_SCHEME_WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} /bin
31+ )
32+
33+ target_include_directories (run-benchmark
34+ PUBLIC "${CMAKE_CURRENT_SOURCE_DIR} "
35+ PUBLIC "${CMAKE_CURRENT_SOURCE_DIR} /benchmark-src"
36+ PUBLIC "${PROJECT_SOURCE_DIR} /src"
37+ PUBLIC "${PROJECT_SOURCE_DIR} /cpp-httplib"
38+ PUBLIC "${PROJECT_SOURCE_DIR} /json/include"
39+ PUBLIC "${PROJECT_SOURCE_DIR} /uriparser/include"
40+ )
41+
42+ target_link_libraries (run-benchmark uriparser )
43+ target_link_libraries (run-benchmark httplib::httplib )
44+ target_link_libraries (run-benchmark cxxopts::cxxopts )
45+ target_link_libraries (run-benchmark nlohmann_json::nlohmann_json )
46+ target_link_libraries (run-benchmark benchmark )
0 commit comments