CMakeLists.txt 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. cmake_minimum_required(VERSION 3.9)
  2. project(tangle_project)
  3. # EDIT HERE
  4. option(DISTRIBUTED "Use MPI" OFF)
  5. option(MULTITHREADED "Use OpenMP" ON)
  6. # END EDIT
  7. if (NOT DEFINED ${TANGLE_LIB_PATH})
  8. set(TANGLE_DIR "tangle")
  9. add_subdirectory(${TANGLE_DIR})
  10. set(TANGLE_LIB_PATH "${CMAKE_CURRENT_BINARY_DIR}/${TANGLE_DIR}")
  11. set(TANGLE_LIB_EXACT "${TANGLE_LIB_PATH}/libtangle.so")
  12. endif()
  13. # STANDALONE SIMULATOR
  14. set(USER_SOURCE "standalone/cli.c")
  15. set(OUTPUT_EXE "tangle-cli")
  16. if(SKBUILD) # Using Python
  17. add_subdirectory(python)
  18. else() # Using Command Line Tool
  19. add_executable(${OUTPUT_EXE} ${USER_SOURCE})
  20. target_link_libraries(${OUTPUT_EXE} libtangle)
  21. if (DISTRIBUTED)
  22. find_package(MPI REQUIRED)
  23. include_directories(${MPI_INCLUDE_PATH})
  24. target_link_libraries(${OUTPUT_EXE} ${MPI_C_LIBRARIES})
  25. add_compile_definitions(_DISTRIBUTED)
  26. elseif (MULTITHREADED)
  27. find_package(OpenMP REQUIRED)
  28. target_link_libraries(${OUTPUT_EXE} OpenMP::OpenMP_C)
  29. add_compile_definitions(_MULTITHREADED)
  30. endif()
  31. endif()