1# --------------------------------------------------------------- 2# Programmer(s): Cody J. Balos @ LLNL 3# --------------------------------------------------------------- 4# SUNDIALS Copyright Start 5# Copyright (c) 2002-2021, Lawrence Livermore National Security 6# and Southern Methodist University. 7# All rights reserved. 8# 9# See the top-level LICENSE and NOTICE files for details. 10# 11# SPDX-License-Identifier: BSD-3-Clause 12# SUNDIALS Copyright End 13# --------------------------------------------------------------- 14 15include(CMakeFindDependencyMacro) 16include("${CMAKE_CURRENT_LIST_DIR}/SUNDIALSTargets.cmake") 17 18### ------- Alias targets 19set(_SUNDIALS_ALIAS_TARGETS "@_SUNDIALS_ALIAS_TARGETS@") 20foreach(ptr ${_SUNDIALS_ALIAS_TARGETS}) 21 string(REGEX REPLACE "sundials_" "" ptr "${ptr}") 22 string(REGEX MATCHALL "([A-Za-z_]+)->([A-Za-z_]+)" 23 _matches "${ptr}") 24 set(_pointer ${CMAKE_MATCH_1}) 25 set(_pointee ${CMAKE_MATCH_2}) 26 set_target_properties(SUNDIALS::${_pointee} PROPERTIES IMPORTED_GLOBAL TRUE) 27 add_library(SUNDIALS::${_pointer} ALIAS SUNDIALS::${_pointee}) 28endforeach() 29 30### ------- Create TPL imported targets 31 32if(@ENABLE_HYPRE@ AND NOT TARGET SUNDIALS::HYPRE) 33 add_library(SUNDIALS::HYPRE INTERFACE IMPORTED GLOBAL) 34 target_link_libraries(SUNDIALS::HYPRE INTERFACE "@HYPRE_LIBRARIES@") 35 set_target_properties(SUNDIALS::HYPRE PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@HYPRE_INCLUDE_DIR@") 36endif() 37 38if(@ENABLE_KLU@ AND NOT TARGET SUNDIALS::KLU) 39 add_library(SUNDIALS::KLU INTERFACE IMPORTED GLOBAL) 40 target_link_libraries(SUNDIALS::KLU INTERFACE "@KLU_LIBRARIES@") 41 set_target_properties(SUNDIALS::KLU PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@KLU_INCLUDE_DIR@") 42endif() 43 44if(@ENABLE_PETSC@) 45 set(PETSC_LIBRARY_SINGLE "@PETSC_LIBRARY_SINGLE@") 46 if(${PETSC_LIBRARY_SINGLE}) 47 foreach(suffix SYS VEC MAT DM KSP SNES TS ALL) 48 if(NOT TARGET SUNDIALS::PETSC_${suffix}) 49 add_library(SUNDIALS::PETSC_${suffix} UNKNOWN IMPORTED) 50 set_target_properties(SUNDIALS::PETSC_${suffix} PROPERTIES 51 INTERFACE_INCLUDE_DIRECTORIES "@PETSC_INCLUDES_@") 52 set_target_properties(SUNDIALS::PETSC_${suffix} PROPERTIES 53 INTERFACE_LINK_LIBRARIES "@PETSC_LIBRARIES_@") 54 set_target_properties(SUNDIALS::PETSC_${suffix} PROPERTIES 55 INTERFACE_COMPILE_OPTIONS "@PETSC_DEFINITIONS@") 56 set_target_properties(SUNDIALS::PETSC_${suffix} PROPERTIES 57 IMPORTED_LOCATION "${PETSC_LIBRARY_SINGLE}") 58 endif() 59 endforeach() 60 else() 61 set(PESTC_LIBRARY_SYS "@PETSC_LIBRARY_SYS@") 62 set(PESTC_LIBRARY_VEC "@PETSC_LIBRARY_VEC@") 63 set(PESTC_LIBRARY_MAT "@PETSC_LIBRARY_MAT@") 64 set(PESTC_LIBRARY_DM "@PETSC_LIBRARY_DM@") 65 set(PESTC_LIBRARY_KSP "@PETSC_LIBRARY_KSP@") 66 set(PESTC_LIBRARY_SNES "@PETSC_LIBRARY_SNES@") 67 set(PESTC_LIBRARY_TS "@PETSC_LIBRARY_TS@") 68 set(PESTC_LIBRARY_ALL "@PETSC_LIBRARY_ALL@") 69 70 set(PESTC_LIBRARIES_SYS "@PETSC_LIBRARIES_SYS@") 71 set(PESTC_LIBRARIES_VEC "@PETSC_LIBRARIES_VEC@") 72 set(PESTC_LIBRARIES_MAT "@PETSC_LIBRARIES_MAT@") 73 set(PESTC_LIBRARIES_DM "@PETSC_LIBRARIES_DM@") 74 set(PESTC_LIBRARIES_KSP "@PETSC_LIBRARIES_KSP@") 75 set(PESTC_LIBRARIES_SNES "@PETSC_LIBRARIES_SNES@") 76 set(PESTC_LIBRARIES_TS "@PETSC_LIBRARIES_TS@") 77 set(PESTC_LIBRARIES_ALL "@PETSC_LIBRARIES_ALL@") 78 79 foreach(suffix SYS VEC MAT DM KSP SNES TS ALL) 80 if(NOT TARGET SUNDIALS::PETSC_${suffix}) 81 add_library(SUNDIALS::PETSC_${suffix} UNKNOWN IMPORTED) 82 set_target_properties (SUNDIALS::PETSC_${suffix} PROPERTIES 83 INTERFACE_INCLUDE_DIRECTORIES "@PETSC_INCLUDES_@") 84 set_target_properties (SUNDIALS::PETSC_${suffix} PROPERTIES 85 INTERFACE_LINK_LIBRARIES "${PETSC_LIBRARIES_${suffix}}") 86 set_target_properties (SUNDIALS::PETSC_${suffix} PROPERTIES 87 INTERFACE_COMPILE_OPTIONS "${PETSC_DEFINITIONS}") 88 set_target_properties (SUNDIALS::PETSC_${suffix} PROPERTIES 89 IMPORTED_LOCATION "${PETSC_LIBRARY_${suffix}}") 90 endif() 91 endforeach() 92 endif() 93endif() 94 95if(@ENABLE_MAGMA@ AND NOT TARGET SUNDIALS::MAGMA) 96 add_library(SUNDIALS::MAGMA INTERFACE IMPORTED GLOBAL) 97 target_link_libraries(SUNDIALS::MAGMA INTERFACE "@MAGMA_LIBRARIES@") 98 set_target_properties(SUNDIALS::MAGMA PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@MAGMA_INCLUDE_DIR@") 99endif() 100 101if(@ENABLE_SUPERLUDIST@ AND NOT TARGET SUNDIALS::SUPERLUDIST) 102 add_library(SUNDIALS::SUPERLUDIST INTERFACE IMPORTED GLOBAL) 103 target_link_libraries(SUNDIALS::SUPERLUDIST INTERFACE "@SUPERLUDIST_LIBRARIES@") 104 set_target_properties(SUNDIALS::SUPERLUDIST PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@SUPERLUDIST_INCLUDE_DIR@") 105endif() 106 107if(@ENABLE_SUPERLUMT@ AND NOT TARGET SUNDIALS::SUPERLUMT) 108 add_library(SUNDIALS::SUPERLUMT INTERFACE IMPORTED GLOBAL) 109 target_link_libraries(SUNDIALS::SUPERLUMT INTERFACE "@SUPERLUMT_LIBRARIES@") 110 set_target_properties(SUNDIALS::SUPERLUMT PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@SUPERLUMT_INCLUDE_DIR@") 111endif() 112 113if(@ENABLE_RAJA@ AND NOT TARGET RAJA) 114 find_package(RAJA PATHS @RAJA_DIR@) 115endif() 116 117if(@ENABLE_TRILINOS@ AND NOT TARGET SUNDIALS::TRILINOS) 118 add_library(SUNDIALS::TRILINOS INTERFACE IMPORTED GLOBAL) 119 target_link_libraries(SUNDIALS::TRILINOS INTERFACE "@Trilinos_LIBRARIES@") 120 set_target_properties(SUNDIALS::TRILINOS PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@Trilinos_INCLUDE_DIRS@") 121endif() 122 123if(@ENABLE_XBRAID@ AND NOT TARGET SUNDIALS::XBRAID) 124 add_library(SUNDIALS::XBRAID INTERFACE IMPORTED GLOBAL) 125 target_link_libraries(SUNDIALS::XBRAID INTERFACE "@XBRAID_LIBRARIES@") 126 set_target_properties(SUNDIALS::XBRAID PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "@XBRAID_INCLUDE_DIR@") 127endif() 128