CMakeLists.txt 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. cmake_minimum_required(VERSION 3.9)
  2. project(tangle_project)
  3. option(DISTRIBUTED "Use MPI" ON)
  4. option(MULTITHREADED "Use OpenMP" OFF)
  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. # set_property(TARGET tangle_cli PROPERTY C_STANDARD 11)
  20. set_property(TARGET tangle PROPERTY C_STANDARD 11)
  21. if (DISTRIBUTED)
  22. find_package(MPI REQUIRED)
  23. include_directories(${MPI_INCLUDE_PATH})
  24. target_link_libraries(tangle_cli ${MPI_C_LIBRARIES})
  25. elseif (MULTITHREADED)
  26. find_package(OpenMP REQUIRED)
  27. target_link_libraries(tangle_cli OpenMP::OpenMP_C)
  28. endif()
  29. endif()