-
Notifications
You must be signed in to change notification settings - Fork 86
/
GinkgoConfig.cmake.in
173 lines (136 loc) · 6.87 KB
/
GinkgoConfig.cmake.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
@PACKAGE_INIT@
set(GINKGO_PROJECT_NAME "@PROJECT_NAME@")
set(GINKGO_PROJECT_VERSION @Ginkgo_VERSION@)
set(GINKGO_PROJECT_DESCRIPTION "@Ginkgo_DESCRIPTION@")
# Extra version information
set(GINKGO_VERSION_MAJOR @Ginkgo_VERSION_MAJOR@)
set(GINKGO_VERSION_MINOR @Ginkgo_VERSION_MINOR@)
set(GINKGO_VERSION_PATCH @Ginkgo_VERSION_PATCH@)
# Git information
set(GINKGO_GIT_BRANCH "@GINKGO_GIT_BRANCH@")
set(GINKGO_GIT_REVISION "@GINKGO_GIT_REVISION@")
set(GINKGO_GIT_SHORTREV "@GINKGO_GIT_SHORTREV@")
# CMake build configuration
set(GINKGO_BUILD_TYPE "@CMAKE_BUILD_TYPE@")
set(GINKGO_BUILD_SHARED_LIBS "@BUILD_SHARED_LIBS@")
set(GINKGO_DEBUG_POSTFIX "@CMAKE_DEBUG_POSTFIX@")
# Compiler configuration
set(GINKGO_CXX_COMPILER "@CMAKE_CXX_COMPILER@")
set(GINKGO_CXX_COMPILER_VERSION @CMAKE_CXX_COMPILER_VERSION@)
set(GINKGO_CXX_FLAGS "@CMAKE_CXX_FLAGS@")
set(GINKGO_CXX_FLAGS_DEBUG "@CMAKE_CXX_FLAGS_DEBUG@")
set(GINKGO_CXX_FLAGS_RELEASE "@CMAKE_CXX_FLAGS_RELEASE@")
set(GINKGO_EXE_LINKER_FLAGS "@CMAKE_EXE_LINKER_FLAGS@")
set(GINKGO_EXE_LINKER_FLAGS_DEBUG "@CMAKE_EXE_LINKER_FLAGS_DEBUG@")
set(GINKGO_EXE_LINKER_FLAGS_RELEASE "@CMAKE_EXE_LINKER_FLAGS_RELEASE@")
# Ginkgo configuration
set(GINKGO_BUILD_REFERENCE @GINKGO_BUILD_REFERENCE@)
set(GINKGO_BUILD_OMP @GINKGO_BUILD_OMP@)
set(GINKGO_BUILD_CUDA @GINKGO_BUILD_CUDA@)
set(GINKGO_BUILD_HIP @GINKGO_BUILD_HIP@)
set(GINKGO_DEVEL_TOOLS @GINKGO_DEVEL_TOOLS@)
set(GINKGO_BUILD_TESTS @GINKGO_BUILD_TESTS@)
set(GINKGO_BUILD_EXAMPLES @GINKGO_BUILD_EXAMPLES@)
set(GINKGO_BUILD_EXTLIB_EXAMPLE @GINKGO_BUILD_EXTLIB_EXAMPLE@)
set(GINKGO_BUILD_BENCHMARKS @GINKGO_BUILD_BENCHMARKS@)
set(GINKGO_BUILD_DOC @GINKGO_BUILD_DOC@)
set(GINKGO_DOC_GENERATE_EXAMPLES @GINKGO_DOC_GENERATE_EXAMPLES@)
set(GINKGO_DOC_GENERATE_PDF @GINKGO_DOC_GENERATE_PDF@)
set(GINKGO_DOC_GENERATE_DEV @GINKGO_DOC_GENERATE_DEV@)
set(GINKGO_SKIP_DEPENDENCY_UPDATE @GINKGO_SKIP_DEPENDENCY_UPDATE@)
set(GINKGO_EXPORT_BUILD_DIR @GINKGO_EXPORT_BUILD_DIR@)
set(GINKGO_VERBOSE_LEVEL @GINKGO_VERBOSE_LEVEL@)
set(GINKGO_WITH_CLANG_TIDY @GINKGO_WITH_CLANG_TIDY@)
set(GINKGO_WITH_IWYU @GINKGO_WITH_IWYU@)
set(GINKGO_CLANG_TIDY_PATH @GINKGO_CLANG_TIDY_PATH@)
set(GINKGO_IWYU_PATH @GINKGO_IWYU_PATH@)
set(GINKGO_JACOBI_FULL_OPTIMIZATIONS @GINKGO_JACOBI_FULL_OPTIMIZATIONS@)
set(GINKGO_CUDA_ARCHITECTURES @GINKGO_CUDA_ARCHITECTURES@)
set(GINKGO_CUDA_DEFAULT_HOST_COMPILER @GINKGO_CUDA_DEFAULT_HOST_COMPILER@)
set(GINKGO_CUDA_HOST_COMPILER @CMAKE_CUDA_HOST_COMPILER@)
set(GINKGO_HIP_COMPILER_FLAGS @GINKGO_HIP_COMPILER_FLAGS@)
set(GINKGO_HIP_HCC_COMPILER_FLAGS @GINKGO_HIP_HCC_COMPILER_FLAGS@)
set(GINKGO_HIP_NVCC_COMPILER_FLAGS @GINKGO_HIP_NVCC_COMPILER_FLAGS@)
set(GINKGO_HIP_PLATFORM @GINKGO_HIP_PLATFORM@)
set(GINKGO_HIP_AMDGPU @GINKGO_HIP_AMDGPU@)
set(GINKGO_HAVE_PAPI_SDE @GINKGO_HAVE_PAPI_SDE@)
# Ginkgo external package variables
set(GINKGO_USE_EXTERNAL_CAS "@GINKGO_USE_EXTERNAL_CAS@")
set(GINKGO_USE_EXTERNAL_GTEST "@GINKGO_USE_EXTERNAL_GTEST@")
set(GINKGO_USE_EXTERNAL_GFLAGS "@GINKGO_USE_EXTERNAL_GFLAGS@")
set(GINKGO_USE_EXTERNAL_RAPIDJSON "@GINKGO_USE_EXTERNAL_RAPIDJSON@")
set(TPL_ENABLE_GTEST "@TPL_ENABLE_GTEST@")
set(TPL_GTEST_LIBRARIES "@TPL_GTEST_LIBRARIES@")
set(TPL_GTEST_INCLUDE_DIRS "@TPL_GTEST_INCLUDE_DIRS@")
set(TPL_ENABLE_GFLAGS "@TPL_ENABLE_GFLAGS@")
set(TPL_GFLAGS_LIBRARIES "@TPL_GFLAGS_LIBRARIES@")
set(TPL_GFLAGS_INCLUDE_DIRS "@TPL_GFLAGS_INCLUDE_DIRS@")
set(TPL_ENABLE_RAPIDJSON "@TPL_ENABLE_RAPIDJSON@")
set(TPL_RAPIDJSON_LIBRARIES "@TPL_RAPIDJSON_LIBRARIES@")
set(TPL_RAPIDJSON_INCLUDE_DIRS "@TPL_RAPIDJSON_INCLUDE_DIRS@")
# Ginkgo installation configuration
set(GINKGO_CONFIG_FILE_PATH "${CMAKE_CURRENT_LIST_DIR}")
string(REPLACE "@GINKGO_INSTALL_CONFIG_DIR@" "" GINKGO_INSTALL_PREFIX "${GINKGO_CONFIG_FILE_PATH}")
set(GINKGO_INSTALL_INCLUDE_DIR "${GINKGO_INSTALL_PREFIX}/@GINKGO_INSTALL_INCLUDE_DIR@")
set(GINKGO_INSTALL_LIBRARY_DIR "${GINKGO_INSTALL_PREFIX}/@GINKGO_INSTALL_LIBRARY_DIR@")
set(GINKGO_INSTALL_PKGCONFIG_DIR "${GINKGO_INSTALL_PREFIX}/@GINKGO_INSTALL_PKGCONFIG_DIR@")
set(GINKGO_INSTALL_CONFIG_DIR "${GINKGO_INSTALL_PREFIX}/@GINKGO_INSTALL_CONFIG_DIR@")
set(GINKGO_INSTALL_MODULE_DIR "${GINKGO_INSTALL_PREFIX}/@GINKGO_INSTALL_MODULE_DIR@")
# Forward Ginkgo's MODULE PATH and the PREFIX PATH for HIP and more
list(APPEND CMAKE_MODULE_PATH "@CMAKE_MODULE_PATH@" "${GINKGO_INSTALL_MODULE_DIR}")
list(APPEND CMAKE_PREFIX_PATH "@CMAKE_PREFIX_PATH@")
set(GINKGO_INTERFACE_LINK_LIBRARIES "@GINKGO_INTERFACE_LINK_LIBRARIES@")
set(GINKGO_INTERFACE_LINK_FLAGS "@GINKGO_INTERFACE_LINK_FLAGS@")
set(GINKGO_INTERFACE_CXX_FLAGS "@GINKGO_INTERFACE_CXX_FLAGS@")
# CUDA
set(GINKGO_CUDA_COMPILER "@CMAKE_CUDA_COMPILER@")
set(GINKGO_CUDA_COMPILER_VERSION @CMAKE_CUDA_COMPILER_VERSION@)
set(GINKGO_CUDA_HOST_LINK_LAUNCHER "@CMAKE_CUDA_HOST_LINK_LAUNCHER@")
set(GINKGO_CUBLAS_LIBRARIES @CUBLAS@)
set(GINKGO_CUSPARSE_LIBRARIES @CUSPARSE@)
set(GINKGO_CUDA_LIBRARIES @CUDA_RUNTIME_LIBS@)
set(GINKGO_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "@CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES@")
set(GINKGO_CUDA_FLAGS "@CMAKE_CUDA_FLAGS_MODIFY@")
set(GINKGO_CUDA_FLAGS_DEBUG "@CMAKE_CUDA_FLAGS_DEBUG_MODIFY@")
set(GINKGO_CUDA_FLAGS_RELEASE "@CMAKE_CUDA_FLAGS_RELEASE_MODIFY@")
# OpenMP
set(GINKGO_OPENMP_VERSION @OpenMP_CXX_VERSION@)
set(GINKGO_OPENMP_LIB_NAMES @OpenMP_CXX_LIB_NAMES@)
set(GINKGO_OPENMP_LIBRARIES @OpenMP_CXX_LIBRARIES@)
set(GINKGO_OPENMP_FLAGS "@OpenMP_CXX_FLAGS@")
# Provide useful HIP helper functions
include(${CMAKE_CURRENT_LIST_DIR}/hip_helpers.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/windows_helpers.cmake)
# NOTE: we do not export benchmarks, examples, tests or devel tools
# so `third_party` libraries are currently unneeded.
# propagate CUDA_HOST_COMPILER if Ginkgo was built with CUDA
if (GINKGO_BUILD_CUDA AND GINKGO_CUDA_HOST_COMPILER AND NOT CMAKE_CUDA_HOST_COMPILER)
message(STATUS "Ginkgo: Setting CUDA host compiler to ${GINKGO_CXX_COMPILER}")
set(CMAKE_CUDA_HOST_COMPILER "${GINKGO_CXX_COMPILER}" CACHE STRING "" FORCE)
endif()
if(GINKGO_HAVE_PAPI_SDE)
find_package(PAPI REQUIRED OPTIONAL_COMPONENTS sde)
endif()
# HIP depends on Threads::Threads in some circumstances, but doesn't find it
if (GINKGO_BUILD_HIP)
find_package(Threads REQUIRED)
endif()
# Needed because of a known issue with CUDA while linking statically.
# For details, see https://gitlab.kitware.com/cmake/cmake/issues/18614
if((NOT GINKGO_BUILD_SHARED_LIBS) AND GINKGO_BUILD_CUDA)
enable_language(CUDA)
endif()
if((NOT GINKGO_BUILD_SHARED_LIBS) AND GINKGO_BUILD_HIP)
find_package(HIP REQUIRED)
find_package(hipblas REQUIRED)
find_package(hipsparse REQUIRED)
if(GINKGO_HIP_PLATFORM MATCHES "hcc")
ginkgo_hip_ban_link_hcflag(hcc::hccrt)
ginkgo_hip_ban_link_hcflag(hcc::hc_am)
ginkgo_hip_ban_link_hcflag(hcc::mcwamp)
ginkgo_hip_ban_compile_hcflag(hcc::hccrt)
ginkgo_hip_ban_compile_hcflag(hcc::hc_am)
ginkgo_hip_ban_compile_hcflag(hcc::mcwamp)
endif()
endif()
include(${CMAKE_CURRENT_LIST_DIR}/GinkgoTargets.cmake)