# Source files grouped by a directory get_source_files(SOURCES) append_source_files(SOURCES Curve) append_source_files(SOURCES InterpolationAlgorithms) append_source_files(SOURCES Integration) append_source_files(SOURCES LinAlg) if(CVODE_FOUND) append_source_files(SOURCES ODE) endif() append_source_files(SOURCES Nonlinear) append_source_files(SOURCES LinAlg/Eigen) if(OGS_USE_LIS) append_source_files(SOURCES LinAlg/Lis) append_source_files(SOURCES LinAlg/EigenLis) endif() if(OGS_USE_PETSC) append_source_files(SOURCES LinAlg/PETSc) endif() # Create the library ogs_add_library(MathLib ${SOURCES}) target_include_directories(MathLib PUBLIC ${CMAKE_CURRENT_BINARY_DIR} $<$:${PETSC_INCLUDE_DIRS}> PRIVATE $<$:${CVODE_INCLUDE_DIRS}> ) set_target_properties(MathLib PROPERTIES LINKER_LANGUAGE CXX) target_link_libraries(MathLib PUBLIC BaseLib ${OpenMP_CXX_LIBRARIES} $<$:LAPACK::LAPACK> $<$:${LIS_LIBRARIES}> Eigen3::Eigen PRIVATE spdlog::spdlog ) if(OGS_USE_PETSC) target_link_libraries(MathLib PUBLIC ${PETSC_LIBRARIES}) endif() if(OGS_USE_CVODE) target_link_libraries(MathLib PUBLIC ${CVODE_LIBRARIES}) endif() if(OGS_USE_MKL) target_link_libraries(MathLib PUBLIC ${MKL_LIBRARIES}) endif() target_compile_definitions(MathLib PUBLIC $<$:USE_LIS> $<$:USE_PETSC> $<$:CVODE_FOUND> PRIVATE $<$:USE_MKL> )