# --------------------------------------------------------------- # Programmer(s): Cody J. Balos @ LLNL # --------------------------------------------------------------- # SUNDIALS Copyright Start # Copyright (c) 2002-2024, Lawrence Livermore National Security # and Southern Methodist University. # All rights reserved. # # See the top-level LICENSE and NOTICE files for details. # # SPDX-License-Identifier: BSD-3-Clause # SUNDIALS Copyright End # --------------------------------------------------------------- @PACKAGE_INIT@ include(CMakeFindDependencyMacro) ### ------- Set FOUND status for SUNDIALS components set(_installed_components "@_SUNDIALS_INSTALLED_COMPONENTS@") set(_comp_not_found "") foreach(_comp ${SUNDIALS_FIND_COMPONENTS}) if(_comp IN_LIST _installed_components) set(SUNDIALS_${_comp}_FOUND TRUE) else() set(SUNDIALS_${_comp}_FOUND FALSE) set(_comp_not_found "${_comp} ${_comp_not_found}") endif() endforeach() if(_comp_not_found) set(SUNDIALS_NOT_FOUND_MESSAGE "Component(s) not found: ${_comp_not_found}") endif() ### ------- Import SUNDIALS targets include("${CMAKE_CURRENT_LIST_DIR}/SUNDIALSTargets.cmake") ### ------- Alias targets set(_SUNDIALS_ALIAS_TARGETS "@_SUNDIALS_ALIAS_TARGETS@") foreach(ptr ${_SUNDIALS_ALIAS_TARGETS}) string(REGEX REPLACE "sundials_" "" ptr "${ptr}") string(REGEX MATCHALL "([A-Za-z_]+)->([A-Za-z_]+)" _matches "${ptr}") set(_pointer ${CMAKE_MATCH_1}) set(_pointee ${CMAKE_MATCH_2}) if(NOT TARGET SUNDIALS::${_pointer}) add_library(SUNDIALS::${_pointer} INTERFACE IMPORTED) target_link_libraries(SUNDIALS::${_pointer} INTERFACE SUNDIALS::${_pointee}) endif() endforeach() ### ------- Create TPL imported targets if("@ENABLE_MPI@" AND NOT TARGET MPI::MPI_C) set(MPI_C_COMPILER "@MPI_C_COMPILER@") find_dependency(MPI) endif() if("@ENABLE_OPENMP@" AND NOT TARGET OpenMP::OpenMP_C) find_dependency(OpenMP) endif() if("@ENABLE_CALIPER@" AND NOT TARGET caliper) find_dependency(CALIPER PATHS "@CALIPER_DIR@") endif() if("@ENABLE_ADIAK@" AND NOT TARGET adiak::adiak) find_dependency(adiak PATHS "@adiak_DIR@") endif() if("@ENABLE_CUDA@" AND NOT (TARGET CUDA::cudart AND TARGET CUDA::cublas AND TARGET CUDA::cusparse AND TARGET CUDA::cusolver)) find_dependency(CUDAToolkit) endif() if("@ENABLE_GINKGO@" AND NOT TARGET Ginkgo::ginkgo) if(NOT TARGET hwloc AND NOT HWLOC_DIR) set(HWLOC_DIR "@HWLOC_DIR@") endif() find_dependency(Ginkgo PATHS "@Ginkgo_DIR@") endif() if("@ENABLE_HYPRE@" AND NOT TARGET SUNDIALS::HYPRE) add_library(SUNDIALS::HYPRE INTERFACE IMPORTED) target_link_libraries(SUNDIALS::HYPRE INTERFACE "@HYPRE_LIBRARIES@") set_target_properties(SUNDIALS::HYPRE PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@HYPRE_INCLUDE_DIR@") endif() if("@ENABLE_KLU@" AND NOT TARGET SUNDIALS::KLU) if("@KLU_SUITESPARSE_TARGET@") find_dependency(KLU) else() add_library(SUNDIALS::KLU INTERFACE IMPORTED) target_link_libraries(SUNDIALS::KLU INTERFACE "@KLU_LIBRARIES@") set_target_properties(SUNDIALS::KLU PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@KLU_INCLUDE_DIR@") endif() endif() if("@ENABLE_KOKKOS@" AND NOT TARGET Kokkos::kokkos) find_dependency(Kokkos PATHS "@Kokkos_DIR@") endif() if("@ENABLE_KOKKOS_KERNELS@" AND NOT TARGET Kokkos::kokkoskernels) find_dependency(KokkosKernels PATHS "@KokkosKernels_DIR@") endif() if("@ENABLE_PETSC@" AND NOT TARGET SUNDIALS::PETSC) add_library(SUNDIALS::PETSC INTERFACE IMPORTED) target_link_libraries(SUNDIALS::PETSC INTERFACE "@PETSC_LIBRARIES@") set_target_properties(SUNDIALS::PETSC PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@PETSC_INCLUDE_DIRS@") # for backwards compatibility foreach(suffix SYS VEC MAT DM KSP SNES TS ALL) if(NOT TARGET SUNDIALS::PETSC_${suffix}) add_library(SUNDIALS::PETSC_${suffix} INTERFACE IMPORTED) set_target_properties (SUNDIALS::PETSC_${suffix} PROPERTIES INTERFACE_LINK_LIBRARIES "SUNDIALS::PETSC") endif() endforeach() if("@PETSC_LIBRARIES@" MATCHES "Kokkos::kokkos") if(NOT TARGET Kokkos::kokkoskernels) find_dependency(KokkosKernels PATHS "@KokkosKernels_DIR@") endif() if(NOT TARGET Kokkos::kokkos) find_dependency(Kokkos PATHS "@Kokkos_DIR@") endif() endif() endif() if("@ENABLE_MAGMA@" AND NOT TARGET SUNDIALS::MAGMA) add_library(SUNDIALS::MAGMA INTERFACE IMPORTED) target_link_libraries(SUNDIALS::MAGMA INTERFACE "@MAGMA_LIBRARIES@") set_target_properties(SUNDIALS::MAGMA PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@MAGMA_INCLUDE_DIR@") endif() if("@ENABLE_ONEMKL@" AND NOT TARGET MKL) find_dependency(MKL PATHS "@ONEMKL_DIR@") endif() if("@ENABLE_SUPERLUDIST@" AND NOT TARGET SUNDIALS::SUPERLUDIST) add_library(SUNDIALS::SUPERLUDIST INTERFACE IMPORTED) target_link_libraries(SUNDIALS::SUPERLUDIST INTERFACE "@SUPERLUDIST_LINK_LIBRARIES@") set_target_properties(SUNDIALS::SUPERLUDIST PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@SUPERLUDIST_INCLUDE_DIRS@") endif() if("@ENABLE_SUPERLUMT@" AND NOT TARGET SUNDIALS::SUPERLUMT) add_library(SUNDIALS::SUPERLUMT INTERFACE IMPORTED) target_link_libraries(SUNDIALS::SUPERLUMT INTERFACE "@SUPERLUMT_LIBRARIES@") set_target_properties(SUNDIALS::SUPERLUMT PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@SUPERLUMT_INCLUDE_DIR@") endif() if("@ENABLE_RAJA@" AND NOT TARGET RAJA) if(NOT TARGET camp AND NOT camp_DIR) set(camp_DIR "@camp_DIR@") endif() find_dependency(RAJA PATHS "@RAJA_DIR@") endif() if("@ENABLE_TRILINOS@" AND NOT TARGET SUNDIALS::TRILINOS) add_library(SUNDIALS::TRILINOS INTERFACE IMPORTED) target_link_libraries(SUNDIALS::TRILINOS INTERFACE "@Trilinos_LIBRARIES@") set_target_properties(SUNDIALS::TRILINOS PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@Trilinos_INCLUDE_DIRS@") endif() if("@ENABLE_XBRAID@" AND NOT TARGET SUNDIALS::XBRAID) add_library(SUNDIALS::XBRAID INTERFACE IMPORTED) target_link_libraries(SUNDIALS::XBRAID INTERFACE "@XBRAID_LIBRARIES@") set_target_properties(SUNDIALS::XBRAID PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@XBRAID_INCLUDE_DIR@") endif() ### ------- Check if required components were found check_required_components(SUNDIALS)