~ubuntu-branches/ubuntu/utopic/vtk6/utopic

« back to all changes in this revision

Viewing changes to ThirdParty/xdmf2/vtkxdmf2/libsrc/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Anton Gladky
  • Date: 2014-01-07 21:26:32 UTC
  • Revision ID: package-import@ubuntu.com-20140107212632-vzwzmu3oyc3obmsg
Tags: upstream-6.0.0
ImportĀ upstreamĀ versionĀ 6.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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})
 
9
 
 
10
set( XdmfFormatSource
 
11
  XdmfArray
 
12
  XdmfDOM
 
13
  XdmfDataDesc
 
14
  XdmfExpression
 
15
  XdmfValues
 
16
  XdmfValuesXML
 
17
  XdmfValuesHDF
 
18
  XdmfValuesBinary
 
19
  XdmfHeavyData
 
20
  XdmfHDF
 
21
  XdmfHDFSupport
 
22
  XdmfLightData
 
23
  XdmfInformation
 
24
  XdmfDataItem
 
25
  XdmfDataStructure
 
26
  XdmfDataTransform
 
27
  XdmfElement
 
28
  XdmfObject
 
29
  )
 
30
 
 
31
set( XdmfExtraSource
 
32
  XdmfExprLex
 
33
  XdmfExprYacc
 
34
  )
 
35
 
 
36
set( XdmfModelSource
 
37
  XdmfRoot
 
38
  XdmfDomain
 
39
  XdmfAttribute
 
40
  XdmfGrid
 
41
  XdmfTopology
 
42
  XdmfTime
 
43
  XdmfRegion
 
44
  XdmfSet
 
45
  XdmfMap
 
46
  XdmfGeometry
 
47
  XdmfH5Driver
 
48
  XdmfDsm
 
49
  XdmfDsmBuffer
 
50
  XdmfDsmComm
 
51
  XdmfDsmMsg
 
52
  )
 
53
 
 
54
set(CSHARP_SOURCES
 
55
  SWIGTYPE_p_double.cs
 
56
  SWIGTYPE_p_float.cs
 
57
  SWIGTYPE_p_hid_t.cs
 
58
  SWIGTYPE_p_int.cs
 
59
  SWIGTYPE_p_istream.cs
 
60
  SWIGTYPE_p_long_long.cs
 
61
  SWIGTYPE_p_ostream.cs
 
62
  SWIGTYPE_p_p__xmlDoc.cs
 
63
  SWIGTYPE_p_void.cs
 
64
  SWIGTYPE_p__xmlNode.cs
 
65
  XdmfArray.cs
 
66
  XdmfArrayList.cs
 
67
  XdmfAttribute.cs
 
68
  XdmfCSharp.cs
 
69
  XdmfCSharpPINVOKE.cs
 
70
  XdmfDataDesc.cs
 
71
  XdmfDataItem.cs
 
72
  XdmfDataStructure.cs
 
73
  XdmfDomain.cs
 
74
  XdmfDOM.cs
 
75
  XdmfDsmComm.cs
 
76
  XdmfDsmCommMpi.cs
 
77
  XdmfDsm.cs
 
78
  XdmfElement.cs
 
79
  XdmfGeometry.cs
 
80
  XdmfGrid.cs
 
81
  XdmfHDF.cs
 
82
  XdmfHeavyData.cs
 
83
  XdmfInformation.cs
 
84
  XdmfLightData.cs
 
85
  XdmfMap.cs
 
86
  XdmfObject.cs
 
87
  XdmfRegion.cs
 
88
  XdmfRoot.cs
 
89
  XdmfSet.cs
 
90
  XdmfTime.cs
 
91
  XdmfTopology.cs
 
92
  XdmfValues.cs
 
93
  XdmfValuesHDF.cs
 
94
  XdmfValuesXML.cs
 
95
  XdmfDsmBuffer.cs
 
96
  XdmfDsmMsg.cs
 
97
  XdmfOpenCallback.cs
 
98
  XdmfCloseCallback.cs
 
99
  XdmfReadCallback.cs
 
100
  XdmfWriteCallback.cs
 
101
  )
 
102
 
 
103
set( XdmfGzipSource
 
104
  gzstream
 
105
  )
 
106
 
 
107
set( XdmfMpiSource
 
108
  XdmfDsmCommMpi
 
109
  )
 
110
 
 
111
set( XdmfMySQLSource
 
112
  XdmfValuesMySQL
 
113
  )
 
114
 
 
115
 
 
116
## system introspection - isn't this what Ice is for???
 
117
include (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
 
118
if(WIN32)
 
119
  check_type_size(__int64        SIZEOF___INT64)
 
120
endif()
 
121
check_type_size("long long"    SIZEOF_LONG_LONG)
 
122
 
 
123
include (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
 
124
check_include_file(malloc.h XDMF_HAVE_MALLOC_H)
 
125
 
 
126
# System to Build
 
127
string(REGEX REPLACE "-" "_" XDMF_SYSTEM ${CMAKE_SYSTEM_NAME})
 
128
 
 
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
 
131
#
 
132
add_definitions(-D${ARCH_TO_BUILD})
 
133
 
 
134
include (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
 
135
 
 
136
#TODO: why aren't we getting these from Ice?
 
137
if(VTK_SIZEOF_CHAR)
 
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})
 
144
else()
 
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)
 
151
endif()
 
152
 
 
153
include (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
 
154
if(WIN32)
 
155
  check_type_size(__int64        SIZEOF___INT64)
 
156
endif()
 
157
check_type_size("long long"    SIZEOF_LONG_LONG)
 
158
check_function_exists(strtoll HAVE_STRTOLL)
 
159
 
 
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")
 
178
else ()
 
179
  message(SEND_ERROR "Can't Find a 32 Bit Float")
 
180
endif ()
 
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")
 
185
else ()
 
186
  message(SEND_ERROR "Can't Find a 64 Bit Float")
 
187
endif ()
 
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")
 
194
else ()
 
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")
 
200
  else()
 
201
    message(SEND_ERROR "Can't Find a 32 Bit Integer")
 
202
  endif()
 
203
endif()
 
204
 
 
205
include(${xdmf2_SOURCE_DIR}/CMake/CheckFor64BitStreams.cmake)
 
206
check_for_64bit_streams(XDMF_HAVE_64BIT_STREAMS)
 
207
 
 
208
# Find include files
 
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)
 
213
 
 
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)
 
217
 
 
218
 
 
219
if(NOT WIN32)
 
220
  add_definitions(-D_HPUX_SOURCE) #???
 
221
endif()
 
222
 
 
223
set(XdmfSources ${XdmfFormatSource} ${XdmfExtraSource} ${XdmfModelSource})
 
224
 
 
225
 
 
226
#optional portions of xdmf
 
227
 
 
228
#mySQL
 
229
option(XDMF_USE_MYSQL
 
230
  "Build Support for MySQL DataItems" OFF)
 
231
mark_as_advanced(XDMF_USE_MYSQL)
 
232
if(XDMF_USE_MYSQL)
 
233
    find_path(MYSQL_INCLUDE_PATH
 
234
        mysql.h
 
235
        /usr/include
 
236
        /usr/include/mysql
 
237
        /usr/local/include
 
238
        /usr/local/include/mysql)
 
239
    find_library(MYSQL_CLIENT_LIBRARY
 
240
        mysqlclient
 
241
        /usr/lib
 
242
        /usr/lib/mysql
 
243
        /usr/local/lib
 
244
        /usr/local/lib/mysql)
 
245
    set(XdmfSources ${XdmfSources} ${XdmfMySQLSource})
 
246
    add_definitions("-DXDMF_USE_MYSQL")
 
247
    include_directories(${MYSQL_INCLUDE_PATH})
 
248
endif()
 
249
 
 
250
# gzip compression
 
251
option(XDMF_USE_GZIP "Build GZip Compression" OFF)
 
252
if(XDMF_USE_GZIP)
 
253
  set(XdmfSources ${XdmfSources} ${XdmfGzipSource})
 
254
  add_definitions("-DXDMF_USE_GZIP")
 
255
endif()
 
256
 
 
257
# bz2lib compression
 
258
option(XDMF_USE_BZIP2 "Use bzip2" OFF)
 
259
if(XDMF_USE_BZIP2)
 
260
  find_package(BZip2)
 
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")
 
265
endif()
 
266
 
 
267
## MPI ###
 
268
if(XDMF_BUILD_MPI)
 
269
    set(XdmfSources ${XdmfSources} ${XdmfMpiSource})
 
270
else()
 
271
    add_definitions("-DXDMF_NO_MPI")
 
272
endif()
 
273
 
 
274
if(BUILD_SHARED_LIBS)
 
275
  set(LIBTYPE SHARED)
 
276
else()
 
277
  set(LIBTYPE STATIC)
 
278
endif()
 
279
 
 
280
#finally make the target that builds the xdmf library itself
 
281
add_library(vtkxdmf2 ${LIBTYPE} ${XdmfSources})
 
282
 
 
283
#setup dependencies for the optional parts of library
 
284
if(XDMF_USE_MYSQL)
 
285
    add_definitions("-DXDMF_USE_MYSQL")
 
286
    include_directories(${MYSQL_INCLUDE_PATH})
 
287
    target_link_libraries(Xdmf ${MYSQL_CLIENT_LIBRARY} )
 
288
endif()
 
289
 
 
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})
 
296
 
 
297
if(NOT XDMF_INSTALL_NO_DEVELOPMENT)
 
298
  file(GLOB devFiles RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h")
 
299
  install(
 
300
      FILES ${devFiles}
 
301
      DESTINATION ${XDMF_INSTALL_INCLUDE_DIR}
 
302
      COMPONENT Development)
 
303
  install(
 
304
      FILES ${xdmf2_BINARY_DIR}/libsrc/XdmfConfig.h
 
305
      DESTINATION ${XDMF_INSTALL_INCLUDE_DIR}
 
306
      COMPONENT Development)
 
307
endif()
 
308
 
 
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)
 
315
endif()