Skip to content
Snippets Groups Projects
Commit 3846e46a authored by Simon Praetorius's avatar Simon Praetorius
Browse files

Merge branch 'feature/have-suitesparse-flags' into 'master'

Handle optional dependency SuiteSparse by directly passing HAVE_xxx flags

Closes #252

See merge request !1294
parents a36b19af 49f4f384
No related branches found
No related tags found
1 merge request!1294Handle optional dependency SuiteSparse by directly passing HAVE_xxx flags
Pipeline #66013 passed with warnings
Pipeline: Dune Nightly Test

#66016

    ......@@ -20,9 +20,14 @@ set(HAVE_UMFPACK ${SuiteSparse_UMFPACK_FOUND})
    # register all SuiteSparse related flags
    if(SuiteSparse_FOUND)
    set(HAVE_SUITESPARSE_FLAGS)
    foreach(_component ${SuiteSparse_FOUND_COMPONENTS})
    list(APPEND HAVE_SUITESPARSE_FLAGS "HAVE_SUITESPARSE_${_component}=1")
    endforeach(_component)
    dune_register_package_flags(
    COMPILE_DEFINITIONS "ENABLE_SUITESPARSE=1"
    COMPILE_DEFINITIONS ${HAVE_SUITESPARSE_FLAGS}
    LIBRARIES SuiteSparse::SuiteSparse)
    unset(HAVE_SUITESPARSE_FLAGS)
    endif()
    # Provide function to set target properties for linking to SuiteSparse
    ......@@ -30,7 +35,9 @@ function(add_dune_suitesparse_flags _targets)
    if(SuiteSparse_FOUND)
    foreach(_target ${_targets})
    target_link_libraries(${_target} PUBLIC SuiteSparse::SuiteSparse)
    target_compile_definitions(${_target} PUBLIC ENABLE_SUITESPARSE=1)
    foreach(_component ${SuiteSparse_FOUND_COMPONENTS})
    target_compile_definitions(${_target} PUBLIC HAVE_SUITESPARSE_${_component}=1)
    endforeach(_component)
    endforeach(_target)
    endif()
    endfunction(add_dune_suitesparse_flags)
    ......@@ -216,6 +216,9 @@ find_package_handle_standard_args("SuiteSparse"
    HANDLE_COMPONENTS
    )
    # list to indicate which components are found
    set(SuiteSparse_FOUND_COMPONENTS)
    # if both headers and library for all required components are found,
    # then create imported targets for all components
    if(SuiteSparse_FOUND)
    ......@@ -241,6 +244,9 @@ if(SuiteSparse_FOUND)
    foreach(_component ${SUITESPARSE_COMPONENTS})
    if(TARGET SuiteSparse::${_component})
    # add component in the list of found components
    list(APPEND SuiteSparse_FOUND_COMPONENTS ${_component})
    # Link required dependencies
    foreach(_dependency ${SUITESPARSE_${_component}_REQUIRED_DEPENDENCIES})
    target_link_libraries(SuiteSparse::${_component}
    ......
    ......@@ -95,48 +95,9 @@
    /* old feature support macros which were tested until 2.9, kept around for one more release */
    #define DUNE_HAVE_CXX_EXPERIMENTAL_MAKE_ARRAY 0
    /* Define to ENABLE_UMFPACK if the UMFPack library is available */
    #cmakedefine HAVE_UMFPACK ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse library is available */
    #cmakedefine HAVE_SUITESPARSE ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse's AMD library is available */
    #cmakedefine HAVE_SUITESPARSE_AMD ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse's BTF library is available */
    #cmakedefine HAVE_SUITESPARSE_BTF ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse's CAMD library is available */
    #cmakedefine HAVE_SUITESPARSE_CAMD ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse's CCOLAMD library is available */
    #cmakedefine HAVE_SUITESPARSE_CCOLAMD ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse's CHOLMOD library is available */
    #cmakedefine HAVE_SUITESPARSE_CHOLMOD ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse's COLAMD library is available */
    #cmakedefine HAVE_SUITESPARSE_COLAMD ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse's CXSPARSE library is available */
    #cmakedefine HAVE_SUITESPARSE_CXSPARSE ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse's KLU library is available */
    #cmakedefine HAVE_SUITESPARSE_KLU ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse's LDL library is available */
    #cmakedefine HAVE_SUITESPARSE_LDL ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse's RBIO library is available */
    #cmakedefine HAVE_SUITESPARSE_RBIO ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse's SPQR library is available
    and if it's version is at least 4.3 */
    #cmakedefine HAVE_SUITESPARSE_SPQR ENABLE_SUITESPARSE
    /* Define to ENABLE_SUITESPARSE if the SuiteSparse's UMFPACK library is available */
    #cmakedefine HAVE_SUITESPARSE_UMFPACK ENABLE_SUITESPARSE
    /* Define to ENABLE_UMFPACK if the UMFPack library is available. */
    /// \deprecated Use HAVE_SUITESPARSE_UMFPACK instead
    #define HAVE_UMFPACK HAVE_SUITESPARSE_UMFPACK
    /* Define to 1 if METIS is available */
    #cmakedefine HAVE_METIS ENABLE_METIS
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment