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

Handle optional dependencies by directly passing HAVE_xxx flags

parent 3846e46a
No related branches found
No related tags found
1 merge request!1308Handle optional dependencies (Par)METIS and (PT)Scotch by directly passing HAVE_xxx flags
Pipeline #66014 passed with warnings
Pipeline: Dune Nightly Test

#66018

    ......@@ -17,10 +17,18 @@ include_guard(GLOBAL)
    # register HAVE_METIS for config.h
    set(HAVE_METIS ${METIS_FOUND})
    set(METIS_COMPILE_DEFINITIONS)
    if(HAVE_METIS)
    list(APPEND METIS_COMPILE_DEFINITIONS "HAVE_METIS=1")
    endif()
    if(HAVE_SCOTCH_METIS)
    list(APPEND METIS_COMPILE_DEFINITIONS "HAVE_SCOTCH_METIS=1")
    endif()
    # register METIS library as dune package
    if(METIS_FOUND)
    dune_register_package_flags(LIBRARIES METIS::METIS
    COMPILE_DEFINITIONS "ENABLE_METIS=1")
    COMPILE_DEFINITIONS ${METIS_COMPILE_DEFINITIONS})
    endif()
    # Add function to link targets against METIS library
    ......@@ -28,7 +36,7 @@ function(add_dune_metis_flags _targets)
    if(METIS_FOUND)
    foreach(_target ${_targets})
    target_link_libraries(${_target} PUBLIC METIS::METIS)
    target_compile_definitions(${_target} PUBLIC ENABLE_METIS=1)
    target_compile_definitions(${_target} PUBLIC ${METIS_COMPILE_DEFINITIONS})
    endforeach(_target)
    endif()
    endfunction(add_dune_metis_flags _targets)
    ......@@ -20,24 +20,24 @@ set(HAVE_PTSCOTCH ${PTScotch_FOUND})
    # register all PTScotch related flags
    if(PTScotch_SCOTCH_FOUND)
    dune_register_package_flags(LIBRARIES PTScotch::Scotch
    COMPILE_DEFINITIONS "ENABLE_SCOTCH=1")
    COMPILE_DEFINITIONS "HAVE_SCOTCH=1")
    endif()
    if(PTScotch_PTSCOTCH_FOUND)
    dune_register_package_flags(LIBRARIES PTScotch::PTScotch
    COMPILE_DEFINITIONS "ENABLE_PTSCOTCH=1")
    COMPILE_DEFINITIONS "HAVE_PTSCOTCH=1")
    endif()
    function(add_dune_ptscotch_flags _targets)
    if(PTScotch_SCOTCH_FOUND)
    foreach(_target ${_targets})
    target_link_libraries(${_target} PUBLIC PTScotch::Scotch)
    target_compile_definitions(${_target} PUBLIC ENABLE_SCOTCH=1)
    target_compile_definitions(${_target} PUBLIC HAVE_SCOTCH=1)
    endforeach(_target ${_targets})
    endif()
    if(PTScotch_PTSCOTCH_FOUND)
    foreach(_target ${_targets})
    target_link_libraries(${_target} PUBLIC PTScotch::PTScotch)
    target_compile_definitions(${_target} PUBLIC ENABLE_PTSCOTCH=1)
    target_compile_definitions(${_target} PUBLIC HAVE_PTSCOTCH=1)
    endforeach(_target ${_targets})
    endif()
    endfunction(add_dune_ptscotch_flags)
    ......@@ -17,10 +17,18 @@ include_guard(GLOBAL)
    # set HAVE_PARMETIS for config.h
    set(HAVE_PARMETIS ${ParMETIS_FOUND})
    set(PARMETIS_COMPILE_DEFINITIONS)
    if(HAVE_PARMETIS)
    list(APPEND PARMETIS_COMPILE_DEFINITIONS "HAVE_PARMETIS=1")
    endif()
    if(HAVE_SCOTCH_METIS)
    list(APPEND PARMETIS_COMPILE_DEFINITIONS "HAVE_PTSCOTCH_PARMETIS=1")
    endif()
    # register all ParMETIS related flags
    if(ParMETIS_FOUND)
    dune_register_package_flags(LIBRARIES ParMETIS::ParMETIS
    COMPILE_DEFINITIONS "ENABLE_PARMETIS=1")
    COMPILE_DEFINITIONS ${PARMETIS_COMPILE_DEFINITIONS})
    endif()
    # add function to link against the ParMETIS library
    ......@@ -28,7 +36,7 @@ function(add_dune_parmetis_flags _targets)
    if(ParMETIS_FOUND)
    foreach(_target ${_targets})
    target_link_libraries(${_target} PUBLIC ParMETIS::ParMETIS)
    target_compile_definitions(${_target} PUBLIC ENABLE_PARMETIS=1)
    target_compile_definitions(${_target} PUBLIC ${PARMETIS_COMPILE_DEFINITIONS})
    endforeach(_target)
    endif()
    endfunction(add_dune_parmetis_flags)
    ......@@ -99,21 +99,6 @@
    /// \deprecated Use HAVE_SUITESPARSE_UMFPACK instead
    #define HAVE_UMFPACK HAVE_SUITESPARSE_UMFPACK
    /* Define to 1 if METIS is available */
    #cmakedefine HAVE_METIS ENABLE_METIS
    /* Define to 1 if the Scotch replacement for METIS is used. */
    #cmakedefine HAVE_SCOTCH_METIS 1
    /* Define to 1 if you have the ParMETIS library. */
    #cmakedefine HAVE_PARMETIS ENABLE_PARMETIS
    /* Define to 1 if the PTScotch replacement for ParMETIS is used. */
    #cmakedefine HAVE_PTSCOTCH_PARMETIS 1
    /* Define to 1 if PT-Scotch is available */
    #cmakedefine HAVE_PTSCOTCH ENABLE_PTSCOTCH
    /* Used to call lapack functions */
    #cmakedefine LAPACK_NEEDS_UNDERLINE
    ......
    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