forked from kokkos/kokkos-kernels
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
148 lines (120 loc) · 5.24 KB
/
CMakeLists.txt
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
TRIBITS_CONFIGURE_FILE(${PACKAGE_NAME}_config.h)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
SET(TRILINOS_INCDIR ${CMAKE_INSTALL_PREFIX}/${${PROJECT_NAME}_INSTALL_INCLUDE_DIR})
#-----------------------------------------------------------------------------
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR})
APPEND_GLOB(HEADERS ${DIR}/*.hpp)
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/impl)
APPEND_GLOB(HEADERS ${DIR}/*.hpp)
APPEND_GLOB(HEADERS ${DIR}/generated_specializations_hpp/*.hpp)
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/impl/tpls)
APPEND_GLOB(HEADERS ${DIR}/*.hpp)
#Blas Cuda wrapper
IF (KOKKOSKERNELS_ENABLE_TPL_CUBLAS OR KOKKOSKERNELS_ENABLE_TPL_MAGMA)
APPEND_GLOB(HEADERS ${DIR}/impl/tpls/KokkosBlas_Cuda_tpl.hpp)
APPEND_GLOB(SOURCES ${DIR}/impl/tpls/KokkosBlas_Cuda_tpl.cpp)
ENDIF()
#Include BLAS
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/blas)
APPEND_GLOB(HEADERS ${DIR}/*.hpp)
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/blas/impl)
APPEND_GLOB(HEADERS ${DIR}/*.hpp)
#Blas host wrapper
IF (KOKKOSKERNELS_ENABLE_TPL_BLAS OR KOKKOSKERNELS_ENABLE_TPL_MKL)
APPEND_GLOB(HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/impl/tpls/KokkosBlas_Host_tpl.hpp)
APPEND_GLOB(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/impl/tpls/KokkosBlas_Host_tpl.cpp)
ENDIF()
#Include Sparse
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/sparse)
APPEND_GLOB(HEADERS ${DIR}/*.hpp)
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/sparse/impl)
APPEND_GLOB(HEADERS ${DIR}/*.hpp)
#Include graph
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/graph)
APPEND_GLOB(HEADERS ${DIR}/*.hpp)
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/graph/impl)
APPEND_GLOB(HEADERS ${DIR}/*.hpp)
#Include batched
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/batched)
APPEND_GLOB(HEADERS ${DIR}/*.hpp)
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/batched/impl)
APPEND_GLOB(HEADERS ${DIR}/*.hpp)
#Include Common
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/common)
APPEND_GLOB(HEADERS ${DIR}/*.hpp)
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/impl)
IF (KokkosKernels_INST_EXECSPACE_SERIAL)
IF (KokkosKernels_INST_DOUBLE)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*inst_dbl_*_Serial_*.cpp)
ENDIF()
IF (KokkosKernels_INST_FLOAT)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*inst_flt_*_Serial_*.cpp)
ENDIF()
IF (KokkosKernels_INST_COMPLEX_DOUBLE)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*_cmplx_dbl_*_Serial_*.cpp)
ENDIF()
IF (KokkosKernels_INST_COMPLEX_FLOAT)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*_cmplx_flt_*_Serial_*.cpp)
ENDIF()
ENDIF()
IF (KokkosKernels_INST_EXECSPACE_THREADS)
IF (KokkosKernels_INST_DOUBLE)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*inst_dbl_*_Threads_*.cpp)
ENDIF()
IF (KokkosKernels_INST_FLOAT)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*inst_flt_*_Threads_*.cpp)
ENDIF()
IF (KokkosKernels_INST_COMPLEX_DOUBLE)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*_cmplx_dbl_*_Threads_*.cpp)
ENDIF()
IF (KokkosKernels_INST_COMPLEX_FLOAT)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*_cmplx_flt_*_Threads_*.cpp)
ENDIF()
ENDIF()
IF (KokkosKernels_INST_EXECSPACE_OPENMP)
IF (KokkosKernels_INST_DOUBLE)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*inst_dbl_*_OpenMP_*.cpp)
ENDIF()
IF (KokkosKernels_INST_FLOAT)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*inst_flt_*_OpenMP_*.cpp)
ENDIF()
IF (KokkosKernels_INST_COMPLEX_DOUBLE)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*_cmplx_dbl_*_OpenMP_*.cpp)
ENDIF()
IF (KokkosKernels_INST_COMPLEX_FLOAT)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*_cmplx_flt_*_OpenMP_*.cpp)
ENDIF()
ENDIF()
IF (KokkosKernels_INST_EXECSPACE_CUDA)
APPEND_GLOB(SOURCES ${DIR}/tpls/*_Cuda_*.cpp)
IF (KokkosKernels_INST_DOUBLE)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*inst_dbl_*_Cuda_*.cpp)
ENDIF()
IF (KokkosKernels_INST_FLOAT)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*inst_flt_*_Cuda_*.cpp)
ENDIF()
IF (KokkosKernels_INST_COMPLEX_DOUBLE)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*_cmplx_dbl_*_Cuda_*.cpp)
ENDIF()
IF (KokkosKernels_INST_COMPLEX_FLOAT)
APPEND_GLOB(SOURCES ${DIR}/generated_specializations_cpp/*/*_cmplx_flt_*_Cuda_*.cpp)
ENDIF()
ENDIF()
LIST(APPEND HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}_config.h)
#LIST(APPEND HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}_ETIHelperMacros.h)
#-----------------------------------------------------------------------------
TRIBITS_ADD_LIBRARY(
kokkoskernels
HEADERS ${HEADERS}
SOURCES ${SOURCES}
)
SET_AND_INC_DIRS(DIR ${CMAKE_CURRENT_SOURCE_DIR}/impl/generated_specializations_hpp)
APPEND_GLOB(HEADERS_GENERATED ${DIR}/*.hpp)
INSTALL(FILES ${HEADERS_GENERATED} DESTINATION ${TRILINOS_INCDIR}/generated_specializations_hpp/)
#
# Make a trivial change here if you add a file either to this
# directory, or to the impl/ subdirectory. Keep making changes
# whenever you add or remove a .cpp or .hpp file, and everything will
# be OK. Here is another such change, and here is yet another.
#