CMakeLists.txt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # Add direct linear systems solvers
  2. # QDLDL (Default)
  3. # -------------------------
  4. add_subdirectory(qdldl)
  5. # Need to add qdldlobject only here because it cannot be
  6. # included in another object library such as linsys_qdldl
  7. set(direct_linsys_solvers $<TARGET_OBJECTS:linsys_qdldl> $<TARGET_OBJECTS:qdldlobject>)
  8. # NB. The second directory is added because we need to include the "qdldl_types.h" file in "qdldl_interface.h"
  9. set(direct_linsys_solvers_includes
  10. "${CMAKE_CURRENT_SOURCE_DIR}/qdldl/"
  11. "${CMAKE_CURRENT_SOURCE_DIR}/qdldl/qdldl_sources/include")
  12. # Add other solvers if embedded option is false
  13. if(NOT DEFINED EMBEDDED)
  14. # MKL Pardiso MKL
  15. # -----------
  16. # If MKL Pardiso is enabled, include pardiso directory
  17. if (ENABLE_MKL_PARDISO)
  18. # Add Pardiso interface
  19. add_subdirectory(pardiso)
  20. add_library(linsys_pardiso OBJECT ${pardiso_sources})
  21. # Add parent directory for library handler
  22. target_include_directories(linsys_pardiso PRIVATE ${pardiso_includes} ${PROJECT_SOURCE_DIR}/include)
  23. set(direct_linsys_solvers ${direct_linsys_solvers} $<TARGET_OBJECTS:linsys_pardiso>)
  24. set(direct_linsys_solvers_includes "${direct_linsys_solvers_includes};${CMAKE_CURRENT_SOURCE_DIR}/pardiso/")
  25. endif()
  26. endif()
  27. # Make direct_linsys_solvers list visible from parent directory
  28. set(direct_linsys_solvers ${direct_linsys_solvers} PARENT_SCOPE)
  29. # Make external linsys solvers includes visible from parent directory
  30. set(direct_linsys_solvers_includes ${direct_linsys_solvers_includes} PARENT_SCOPE)