1
#-----------------------------------------------------------------------------
2
# Does Xdmf require support for 64 bit file systems
3
include(${CMAKE_CURRENT_SOURCE_DIR}/CheckCXXSourceRuns.cmake)
4
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/vtkRequireLargeFilesSupport.cxx"
5
XDMF_REQUIRE_LARGE_FILE_SUPPORT_FILE)
6
check_cxx_source_runs("${XDMF_REQUIRE_LARGE_FILE_SUPPORT_FILE}"
7
CMAKE_REQUIRE_LARGE_FILE_SUPPORT "Xdmf support for 64 bit file systems")
8
set(XDMF_REQUIRE_LARGE_FILE_SUPPORT ${CMAKE_REQUIRE_LARGE_FILE_SUPPORT})
60
SWIGTYPE_p_long_long.cs
62
SWIGTYPE_p_p__xmlDoc.cs
64
SWIGTYPE_p__xmlNode.cs
116
## system introspection - isn't this what Ice is for???
117
include (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
119
check_type_size(__int64 SIZEOF___INT64)
121
check_type_size("long long" SIZEOF_LONG_LONG)
123
include (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
124
check_include_file(malloc.h XDMF_HAVE_MALLOC_H)
127
string(REGEX REPLACE "-" "_" XDMF_SYSTEM ${CMAKE_SYSTEM_NAME})
129
set(ARCH_TO_BUILD ${XDMF_SYSTEM} CACHE INTERNAL "Host Arcitecture : Linux IRIXN32 IRIX64 AIX CYGWIN")
130
# Allow the user to customize their build with some local options
132
add_definitions(-D${ARCH_TO_BUILD})
134
include (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
136
#TODO: why aren't we getting these from Ice?
138
set(XDMF_SIZEOF_CHAR ${VTK_SIZEOF_CHAR})
139
set(XDMF_SIZEOF_DOUBLE ${VTK_SIZEOF_DOUBLE})
140
set(XDMF_SIZEOF_FLOAT ${VTK_SIZEOF_FLOAT})
141
set(XDMF_SIZEOF_INT ${VTK_SIZEOF_INT})
142
set(XDMF_SIZEOF_LONG ${VTK_SIZEOF_LONG})
143
set(XDMF_SIZEOF_SHORT ${VTK_SIZEOF_SHORT})
145
check_type_size(char XDMF_SIZEOF_CHAR)
146
check_type_size(double XDMF_SIZEOF_DOUBLE)
147
check_type_size(float XDMF_SIZEOF_FLOAT)
148
check_type_size(int XDMF_SIZEOF_INT)
149
check_type_size(long XDMF_SIZEOF_LONG)
150
check_type_size(short XDMF_SIZEOF_SHORT)
153
include (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
155
check_type_size(__int64 SIZEOF___INT64)
157
check_type_size("long long" SIZEOF_LONG_LONG)
158
check_function_exists(strtoll HAVE_STRTOLL)
160
# Don't Really Need to check these ...
161
set(XDMF_VOID_VALID 1)
162
set(XDMF_VOID "void")
163
set(XDMF_PTR_VALID 1)
164
set(XDMF_PTR "void *")
165
set(XDMF_CHAR_VALID 1)
166
set(XDMF_CHAR "char")
167
set(XDMF_8_INT_VALID 1)
168
set(XDMF_8_INT "char")
169
set(XDMF_8_U_INT "unsigned char")
170
set(XDMF_16_INT_VALID 1)
171
set(XDMF_16_INT "short")
172
set(XDMF_16_U_INT "unsigned short")
173
# These should be Valid
174
if(${XDMF_SIZEOF_FLOAT} MATCHES 4)
175
set(XDMF_32_FLOAT_VALID 1)
176
set(XDMF_FLOAT "float")
177
set(XDMF_32_FLOAT "float")
179
message(SEND_ERROR "Can't Find a 32 Bit Float")
181
if(${XDMF_SIZEOF_DOUBLE} MATCHES 8)
182
set(XDMF_64_FLOAT_VALID 1)
183
set(XDMF_DOUBLE "double")
184
set(XDMF_64_FLOAT "double")
186
message(SEND_ERROR "Can't Find a 64 Bit Float")
188
# These are sometimes different
189
if(${XDMF_SIZEOF_INT} MATCHES 4)
190
set(XDMF_32_INT_VALID 1)
191
set(XDMF_32_INT "int")
192
set(XDMF_32_U_INT "unsigned int")
193
set(XDMF_32_S_INT "int")
195
if(${XDMF_SIZEOF_LONG} MATCHES 4)
196
set(XDMF_32_INT_VALID 1)
197
set(XDMF_32_INT "long")
198
set(XDMF_32_U_INT "unsigned long")
199
set(XDMF_32_S_INT "long")
201
message(SEND_ERROR "Can't Find a 32 Bit Integer")
205
include(${xdmf2_SOURCE_DIR}/CMake/CheckFor64BitStreams.cmake)
206
check_for_64bit_streams(XDMF_HAVE_64BIT_STREAMS)
209
find_path(XDMF_HAVE_FCNTL fcntl.h /usr/include /usr/include/sys)
210
find_path(XDMF_HAVE_NETINET in.h /usr/include/netinet /usr/include /usr/include/sys)
211
find_path(XDMF_HAVE_MMAN mman.h /usr/include/sys /usr/include)
212
mark_as_advanced(XDMF_HAVE_FCNTL XDMF_HAVE_NETINET XDMF_HAVE_MMAN)
214
# Save out config to let other projects use xdmf
215
configure_file(${xdmf2_SOURCE_DIR}/libsrc/XdmfConfig.h.in
216
${xdmf2_BINARY_DIR}/libsrc/XdmfConfig.h)
220
add_definitions(-D_HPUX_SOURCE) #???
223
set(XdmfSources ${XdmfFormatSource} ${XdmfExtraSource} ${XdmfModelSource})
226
#optional portions of xdmf
229
option(XDMF_USE_MYSQL
230
"Build Support for MySQL DataItems" OFF)
231
mark_as_advanced(XDMF_USE_MYSQL)
233
find_path(MYSQL_INCLUDE_PATH
238
/usr/local/include/mysql)
239
find_library(MYSQL_CLIENT_LIBRARY
244
/usr/local/lib/mysql)
245
set(XdmfSources ${XdmfSources} ${XdmfMySQLSource})
246
add_definitions("-DXDMF_USE_MYSQL")
247
include_directories(${MYSQL_INCLUDE_PATH})
251
option(XDMF_USE_GZIP "Build GZip Compression" OFF)
253
set(XdmfSources ${XdmfSources} ${XdmfGzipSource})
254
add_definitions("-DXDMF_USE_GZIP")
258
option(XDMF_USE_BZIP2 "Use bzip2" OFF)
261
set(XDMF_BZIP2_LIBRARIES ${BZIP2_LIBRARIES})
262
set(XDMF_BZIP2_INCLUDE_DIR ${BZIP2_INCLUDE_DIR})
263
include_directories(${BZIP2_INCLUDE_DIR})
264
add_definitions("-DXDMF_USE_BZIP2")
269
set(XdmfSources ${XdmfSources} ${XdmfMpiSource})
271
add_definitions("-DXDMF_NO_MPI")
274
if(BUILD_SHARED_LIBS)
280
#finally make the target that builds the xdmf library itself
281
add_library(vtkxdmf2 ${LIBTYPE} ${XdmfSources})
283
#setup dependencies for the optional parts of library
285
add_definitions("-DXDMF_USE_MYSQL")
286
include_directories(${MYSQL_INCLUDE_PATH})
287
target_link_libraries(Xdmf ${MYSQL_CLIENT_LIBRARY} )
290
target_link_libraries(vtkxdmf2
291
${XDMF_LIBXML2_LIBRARIES}
292
${XDMF_HDF5_LIBRARIES}
293
${XDMF_MPI_LIBRARIES}
294
${XDMF_ZLIB_LIBRARIES}
295
${XDMF_BZIP2_LIBRARIES})
297
if(NOT XDMF_INSTALL_NO_DEVELOPMENT)
298
file(GLOB devFiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h")
301
DESTINATION ${XDMF_INSTALL_INCLUDE_DIR}
302
COMPONENT Development)
304
FILES ${xdmf2_BINARY_DIR}/libsrc/XdmfConfig.h
305
DESTINATION ${XDMF_INSTALL_INCLUDE_DIR}
306
COMPONENT Development)
309
if(XDMF_INSTALL_EXPORT_NAME AND NOT XDMF_INSTALL_NO_LIBRARIES)
310
install(TARGETS vtkxdmf2
311
EXPORT ${XDMF_INSTALL_EXPORT_NAME}
312
RUNTIME DESTINATION ${XDMF_INSTALL_BIN_DIR} COMPONENT Runtime
313
LIBRARY DESTINATION ${XDMF_INSTALL_LIB_DIR} COMPONENT Runtime
314
ARCHIVE DESTINATION ${XDMF_INSTALL_LIB_DIR} COMPONENT Development)