CMakeLists.txt 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. cmake_minimum_required(VERSION 3.10)
  2. project(BinaryTreeSummation)
  3. set(CMAKE_CXX_STANDARD 20)
  4. set(CMAKE_CXX_STANDARD_REQUIRED True)
  5. set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
  6. find_package(MPI REQUIRED)
  7. find_package(benchmark REQUIRED)
  8. add_definitions(-DAVX)
  9. add_library(binarytreesummation SHARED)
  10. target_sources(binarytreesummation
  11. PRIVATE src/binary_tree.cpp src/c_wrapper.cpp
  12. PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/binary_tree_summation.h>)
  13. target_compile_options(binarytreesummation PRIVATE -Wall -O0 -ggdb -mavx)
  14. target_include_directories(binarytreesummation
  15. PUBLIC
  16. $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
  17. $<INSTALL_INTERFACE:include>
  18. PRIVATE
  19. ${CMAKE_CURRENT_SOURCE_DIR}/src
  20. )
  21. target_link_libraries(binarytreesummation PUBLIC MPI::MPI_C MPI::MPI_CXX)
  22. if(BUILD_EXAMPLE_EXECUTABLE)
  23. add_executable(sum src/main.cpp src/io.cpp)
  24. target_link_libraries(sum PRIVATE binarytreesummation MPI::MPI_C MPI::MPI_CXX)
  25. target_compile_options(sum PRIVATE -Wall -O0 -ggdb -mavx)
  26. endif()