##===- CMakeLists.txt - buddy-benchmark cmake root ------------*- cmake -*-===// ## ## Configure the buddy-benchmark build. ## ##===----------------------------------------------------------------------===// cmake_minimum_required(VERSION 3.10) if(POLICY CMP0077) cmake_policy(SET CMP0077 NEW) endif() #------------------------------------------------------------------------------- # Project setup and globals #------------------------------------------------------------------------------- project(buddy-mlir LANGUAGES CXX C) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED YES) #------------------------------------------------------------------------------- # BUDDY configuration #------------------------------------------------------------------------------- # BUDDY project. set(BUDDY_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(BUDDY_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/bin) set(BUDDY_EXAMPLES_DIR ${BUDDY_SOURCE_DIR}/examples) set(BUDDY_INCLUDE_DIR ${BUDDY_SOURCE_DIR}/include) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BUDDY_BINARY_DIR}) # Add BUDDY files to the include path include_directories(${BUDDY_MAIN_INCLUDE_DIR}) include_directories(${BUDDY_INCLUDE_DIR}) #------------------------------------------------------------------------------- # Deploy google/benchmark #------------------------------------------------------------------------------- message(STATUS "Configuring benchmarks: google") include(ExternalProject) ExternalProject_Add(project_googlebenchmark GIT_REPOSITORY https://github.com/google/benchmark.git GIT_TAG "v1.6.0" GIT_SHALLOW 1 PREFIX ${CMAKE_CURRENT_BINARY_DIR}/vendor/benchmark TIMEOUT 10 BUILD_BYPRODUCTS <INSTALL_DIR>/lib/${CMAKE_STATIC_LIBRARY_PREFIX}benchmark${CMAKE_STATIC_LIBRARY_SUFFIX} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/vendor/benchmark -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DBENCHMARK_ENABLE_TESTING=OFF UPDATE_COMMAND "" TEST_COMMAND "") ExternalProject_Get_Property(project_googlebenchmark INSTALL_DIR) file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(GoogleBenchmark STATIC IMPORTED) target_include_directories(GoogleBenchmark INTERFACE ${INSTALL_DIR}/include) set_property(TARGET GoogleBenchmark PROPERTY IMPORTED_LOCATION "${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}benchmark${CMAKE_STATIC_LIBRARY_SUFFIX}") add_dependencies(GoogleBenchmark project_googlebenchmark) find_package(Threads) target_link_libraries(GoogleBenchmark INTERFACE Threads::Threads) #------------------------------------------------------------------------------- # Find OpenCV #------------------------------------------------------------------------------- find_package(OpenCV REQUIRED CONFIG) include_directories(${OpenCV_INCLUDE_DIRS}) #------------------------------------------------------------------------------- # Subdirectory #------------------------------------------------------------------------------- add_subdirectory(lib) add_subdirectory(benchmarks)