CMakeLists.txt 1009 B

123456789101112131415161718192021222324252627282930313233343536
  1. cmake_minimum_required(VERSION 3.9)
  2. project(tangle_project)
  3. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
  4. option(DISTRIBUTED "Use MPI" ON)
  5. option(MULTITHREADED "Use OpenMP" OFF)
  6. if (NOT DEFINED ${TANGLE_LIB_PATH})
  7. set(TANGLE_DIR "tangle")
  8. add_subdirectory(${TANGLE_DIR})
  9. set(TANGLE_LIB_PATH "${CMAKE_SOURCE_DIR}/${TANGLE_DIR}")
  10. set(TANGLE_LIB_EXACT "${TANGLE_LIB_PATH}/libtangle.so")
  11. endif()
  12. set(CLI_SOURCE "standalone/cli.c")
  13. set(OUTPUT_EXE "tangle-cli")
  14. if(SKBUILD)
  15. add_subdirectory(python)
  16. else()
  17. add_executable(tangle_cli ${CLI_SOURCE})
  18. set_target_properties(tangle_cli PROPERTIES OUTPUT_NAME ${OUTPUT_EXE})
  19. target_link_libraries(tangle_cli tangle)
  20. if (DISTRIBUTED)
  21. find_package(MPI REQUIRED)
  22. include_directories(${MPI_INCLUDE_PATH})
  23. target_link_libraries(tangle_cli ${MPI_C_LIBRARIES})
  24. elseif (MULTITHREADED)
  25. find_package(OpenMP REQUIRED)
  26. target_link_libraries(tangle_cli OpenMP::OpenMP_C)
  27. endif()
  28. endif()