#============================================================================== # Build Google Benchmark #============================================================================== include(ExternalProject) set(BENCHMARK_COMPILE_FLAGS -Wno-unused-command-line-argument -nostdinc++ -isystem "${LIBCXX_GENERATED_INCLUDE_DIR}" -L${LIBCXX_LIBRARY_DIR} -Wl,-rpath,${LIBCXX_LIBRARY_DIR} ${SANITIZER_FLAGS} ) if(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR AND NOT APPLE) list(APPEND BENCHMARK_COMPILE_FLAGS -isystem "${LIBCXX_GENERATED_INCLUDE_TARGET_DIR}") endif() if (DEFINED LIBCXX_CXX_ABI_LIBRARY_PATH) list(APPEND BENCHMARK_COMPILE_FLAGS -L${LIBCXX_CXX_ABI_LIBRARY_PATH} -Wl,-rpath,${LIBCXX_CXX_ABI_LIBRARY_PATH}) endif() split_list(BENCHMARK_COMPILE_FLAGS) set(BENCHMARK_CXX_LIBRARIES) list(APPEND BENCHMARK_CXX_LIBRARIES c++) if (NOT LIBCXX_ENABLE_SHARED) list(APPEND BENCHMARK_CXX_LIBRARIES c++abi) endif() ExternalProject_Add(google-benchmark EXCLUDE_FROM_ALL ON DEPENDS cxx cxx-headers PREFIX google-benchmark SOURCE_DIR ${LLVM_THIRD_PARTY_DIR}/benchmark INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/google-benchmark CMAKE_CACHE_ARGS -DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER} -DCMAKE_MAKE_PROGRAM:FILEPATH=${CMAKE_MAKE_PROGRAM} -DCMAKE_BUILD_TYPE:STRING=RELEASE -DCMAKE_INSTALL_PREFIX:PATH= -DCMAKE_CXX_FLAGS:STRING=${BENCHMARK_COMPILE_FLAGS} -DBENCHMARK_USE_LIBCXX:BOOL=ON -DBENCHMARK_ENABLE_TESTING:BOOL=OFF -DBENCHMARK_CXX_LIBRARIES:STRING=${BENCHMARK_CXX_LIBRARIES}) add_dependencies(cxx-test-depends google-benchmark)