/
CMakeLists.txt
193 lines (158 loc) · 5.45 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
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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# Copyright (c) Lawrence Livermore National Security, LLC and other Conduit
# Project developers. See top-level LICENSE AND COPYRIGHT files for dates and
# other details. No copyright assignment is required to contribute to Conduit.
################################
# Add the blueprint library
################################
ENABLE_WARNINGS()
configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/conduit_blueprint_exports.h.in"
"${CMAKE_CURRENT_BINARY_DIR}/conduit_blueprint_exports.h")
#
# Specify all headers
#
set(blueprint_headers
conduit_blueprint.hpp
conduit_blueprint_mesh.hpp
conduit_blueprint_mesh_utils.hpp
conduit_blueprint_mesh_examples.hpp
conduit_blueprint_mesh_examples_julia.hpp
conduit_blueprint_mesh_examples_venn.hpp
conduit_blueprint_mcarray.hpp
conduit_blueprint_mcarray_examples.hpp
conduit_blueprint_o2mrelation.hpp
conduit_blueprint_o2mrelation_utils.hpp
conduit_blueprint_o2mrelation_iterator.hpp
conduit_blueprint_o2mrelation_examples.hpp
conduit_blueprint_zfparray.hpp
${CMAKE_CURRENT_BINARY_DIR}/conduit_blueprint_exports.h
)
#
# Specify blueprint c sources
#
set(blueprint_c_headers
c/conduit_blueprint.h
c/conduit_blueprint_mcarray.h
c/conduit_blueprint_mesh.h
)
#
# Specify blueprint cpp sources
#
set(blueprint_sources
conduit_blueprint.cpp
conduit_blueprint_mesh.cpp
conduit_blueprint_mesh_utils.cpp
conduit_blueprint_mesh_matset_xforms.cpp
conduit_blueprint_mesh_examples.cpp
conduit_blueprint_mesh_examples_julia.cpp
conduit_blueprint_mesh_examples_venn.cpp
conduit_blueprint_mcarray.cpp
conduit_blueprint_mcarray_examples.cpp
conduit_blueprint_o2mrelation.cpp
conduit_blueprint_o2mrelation_utils.cpp
conduit_blueprint_o2mrelation_iterator.cpp
conduit_blueprint_o2mrelation_examples.cpp
conduit_blueprint_zfparray.cpp
)
#
# Specify blueprint c sources
#
set(blueprint_c_sources
c/conduit_blueprint_c.cpp
c/conduit_blueprint_mcarray_c.cpp
c/conduit_blueprint_mesh_c.cpp
)
#################################
# Add fortran interface
# if fortran support was selected
#################################
if(FORTRAN_FOUND)
#
# Specify fortran sources
#
set(blueprint_fortran_sources
fortran/conduit_blueprint_fortran.f90
fortran/conduit_blueprint_mcarray_fortran.f90
fortran/conduit_blueprint_mesh_fortran.f90)
endif()
#
# Setup conduit blueprint lib
#
add_compiled_library(NAME conduit_blueprint
EXPORT conduit
HEADERS ${blueprint_headers} ${blueprint_c_headers}
SOURCES ${blueprint_sources} ${blueprint_c_sources} ${blueprint_fortran_sources}
DEPENDS_ON conduit
HEADERS_DEST_DIR include/conduit
FOLDER libs)
if(FORTRAN_FOUND)
###############################################################################
# Special install targets for conduit fortran modules
###############################################################################
set(conduit_blueprint_fortran_modules
${CMAKE_Fortran_MODULE_DIRECTORY}/conduit_blueprint.mod
${CMAKE_Fortran_MODULE_DIRECTORY}/conduit_blueprint_mesh.mod
${CMAKE_Fortran_MODULE_DIRECTORY}/conduit_blueprint_mcarray.mod)
# Setup install to copy the fortran modules
install(FILES
${conduit_blueprint_fortran_modules}
DESTINATION include/conduit)
endif()
###################################
# add conduit_blueprint_verify exe
###################################
if(ENABLE_UTILS)
blt_add_executable(
NAME conduit_blueprint_verify
SOURCES conduit_blueprint_verify_exe.cpp
DEPENDS_ON conduit conduit_relay conduit_blueprint
OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}
FOLDER utils)
# add install target
install(TARGETS conduit_blueprint_verify
RUNTIME DESTINATION bin)
endif()
################################
# Add python wrappers if python
# support was selected
################################
if(PYTHON_FOUND)
add_subdirectory(python)
endif()
################################################################
# If we have mpi, add the conduit blueprint mpi library
################################################################
if(MPI_FOUND)
#
# Specify blueprint mpi sources
#
set(conduit_blueprint_mpi_sources
conduit_blueprint_mpi.cpp
conduit_blueprint_mpi_mesh.cpp
conduit_blueprint_mpi_mesh_examples.cpp)
#
# Specify blueprint mpi headers
#
set(conduit_blueprint_mpi_headers
conduit_blueprint_mpi.hpp
conduit_blueprint_mpi_mesh.hpp
conduit_blueprint_mpi_mesh_examples.hpp
${CMAKE_CURRENT_BINARY_DIR}/conduit_blueprint_exports.h)
#
# Specify blueprint mpi deps
#
set(conduit_blueprint_mpi_deps conduit
${conduit_blt_mpi_deps}
conduit_blueprint
conduit_relay_mpi)
#
# setup conduit blueprint mpi lib
#
add_compiled_library(NAME conduit_blueprint_mpi
EXPORT conduit
HEADERS ${conduit_blueprint_mpi_headers}
SOURCES ${conduit_blueprint_mpi_sources}
DEPENDS_ON ${conduit_blueprint_mpi_deps}
HEADERS_DEST_DIR include/conduit
FOLDER libs)
blt_add_target_compile_flags(TO conduit_blueprint_mpi FLAGS "-DCONDUIT_BLUEPRINT_MPI_ENABLED")
endif() # end if MPI_FOUND