--- CMakeLists.txt 2025-04-02 03:51:12.000000000 +0800 +++ CMakeLists.txt 2025-08-07 19:53:58.000000000 +0800 @@ -62,7 +62,7 @@ project(PolySolve DESCRIPTION "Easy-to-use wrapper for linear solver" - LANGUAGES CXX) + LANGUAGES C CXX) if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64" AND APPLE) set(POLYSOLVE_NOT_ON_APPLE_SILICON OFF) @@ -126,11 +126,9 @@ ### Configuration list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/polysolve/") -list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/recipes/") list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/find/") # General CMake utils -include(polysolve_cpm_cache) include(polysolve_use_colors) # Sort projects inside the solution @@ -194,13 +192,6 @@ # Accelerate solver (Include before Eigen) if(POLYSOLVE_WITH_ACCELERATE) - include(CPM) - CPMAddPackage( - NAME eigen - GIT_REPOSITORY https://gitlab.com/libeigen/eigen.git - GIT_TAG 969c31eefcdfaab11da763bea3f7502086673ab0 - DOWNLOAD_ONLY ON - ) set(BLA_VENDOR Apple) find_package(BLAS REQUIRED) find_package(LAPACK REQUIRED) @@ -208,25 +199,26 @@ target_compile_definitions(polysolve_linear PUBLIC POLYSOLVE_WITH_ACCELERATE) endif() -include(eigen) +find_package(Eigen3 3.3 REQUIRED NO_MODULE) target_link_libraries(polysolve_linear PUBLIC Eigen3::Eigen) # spdlog -include(spdlog) +find_package(spdlog) target_link_libraries(polysolve_linear PUBLIC spdlog::spdlog) # JSON (MIT) -include(json) +find_package(nlohmann_json) target_link_libraries(polysolve_linear PUBLIC nlohmann_json::nlohmann_json) # JSON Specification Engine library -include(jse) -target_link_libraries(polysolve_linear PUBLIC jse::jse) +target_link_libraries(polysolve_linear PUBLIC jse) # Hypre (GNU Lesser General Public License) if(POLYSOLVE_WITH_HYPRE) - include(hypre) + find_package(HYPRE) + find_package(OpenMP) target_link_libraries(polysolve_linear PUBLIC HYPRE::HYPRE) + target_link_libraries(polysolve PUBLIC OpenMP::OpenMP_C) target_compile_definitions(polysolve_linear PUBLIC POLYSOLVE_WITH_HYPRE) if(HYPRE_WITH_MPI) target_compile_definitions(polysolve_linear PUBLIC HYPRE_WITH_MPI) @@ -267,7 +259,7 @@ # SuperLU solver if(POLYSOLVE_WITH_SUPERLU) - include(superlu) + find_package(superlu) if(TARGET SuperLU::SuperLU) target_link_libraries(polysolve_linear PRIVATE SuperLU::SuperLU) target_compile_definitions(polysolve_linear PUBLIC POLYSOLVE_WITH_SUPERLU) @@ -330,12 +322,11 @@ target_link_libraries(polysolve PUBLIC polysolve::linear) # LBFGSpp -include(LBFGSpp) -target_link_libraries(polysolve PRIVATE LBFGSpp::LBFGSpp) +find_package(LBFGSpp NO_MODULE) +target_link_libraries(polysolve PUBLIC lbfgspp) # finite-diff (include this after eigen) -include(finite-diff) -target_link_libraries(polysolve PRIVATE finitediff::finitediff) +target_link_libraries(polysolve PRIVATE finitediff_finitediff) # Sanitizers if(POLYSOLVE_WITH_SANITIZERS)