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