CMakeLists.txt 957 B

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