# option: global linear system solver (CHOLMOD, EIGEN) set(LINSYSSOLVER "CHOLMOD" CACHE STRING "Linear system solver to use, options: CHOLMOD (default), EIGEN") file(GLOB SRCFILES "*.cpp" "LinSysSolver/*.cpp") # Static Simulation Project add_library(StaticSim STATIC ${SRCFILES}) target_include_directories(StaticSim PUBLIC LinSysSolver) target_link_libraries(StaticSim PUBLIC mshio::mshio) # eigen target_link_libraries(StaticSim PUBLIC Eigen3::Eigen) # igl include(libigl) target_link_libraries(StaticSim PUBLIC igl::core igl::predicates ) target_link_libraries(StaticSim PUBLIC spdlog::spdlog) # tbb find_package(TBB REQUIRED) target_link_libraries(StaticSim PUBLIC TBB::tbb) target_compile_definitions(StaticSim PUBLIC USE_TBB) if(LINSYSSOLVER STREQUAL "CHOLMOD") target_compile_definitions(StaticSim PUBLIC LINSYSSOLVER_USE_CHOLMOD) target_compile_definitions(StaticSim PUBLIC USE_CHOLMOD) else() target_compile_definitions(StaticSim PUBLIC LINSYSSOLVER_USE_EIGEN) endif() # code only support 3D message(STATUS "Building for three dimensions (3D)") target_compile_definitions(StaticSim PUBLIC DIM_=3) if(LINSYSSOLVER STREQUAL "CHOLMOD") # SuiteSparse find_package(SuiteSparse REQUIRED) target_link_libraries(StaticSim PUBLIC ${SUITESPARSE_LIBRARIES}) target_include_directories(StaticSim PUBLIC ${SUITESPARSE_INCLUDE_DIRS}) endif() find_package(Boost COMPONENTS filesystem REQUIRED) target_link_libraries(StaticSim PUBLIC ${Boost_LIBRARIES})