~ubuntu-branches/debian/sid/yade/sid

« back to all changes in this revision

Viewing changes to .pc/20_disable_release-mode.patch/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Anton Gladky
  • Date: 2014-01-13 20:13:14 UTC
  • mfrom: (1.1.9)
  • Revision ID: package-import@ubuntu.com-20140113201314-4x3stisjce4t0pdx
Tags: 1.07.0-1
* [d42c7de] Imported Upstream version 1.07.0
* [a421b10] Remove patch, applied by upstream.
* [d151f88] Set Standards-Version: 3.9.5. No changes.
* [a9616c6] Add upstream file.
* [c078bb4] Inject additional parameters for weak archs. 
            Thanks to Roland Stigge <stigge@antcom.de>. (Closes: #733152)
* [21a2430] Fix version definition for IPython>1.0.0.
* [8204093] Remove google-scripts from documentation.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# The YADE has the following parameters to configure:
2
 
#  INSTALL_PREFIX: path, where Yade will be installed (/usr/local by default)
3
 
#  LIBRARY_OUTPUT_PATH: path to install libraries (lib by default)
4
 
#  DEBUG: compile in debug-mode (OFF by default)
5
 
#  CMAKE_VERBOSE_MAKEFILE: output additional information during compiling (OFF by default)
6
 
#  SUFFIX: suffix, added after binary-names (version number by default)
7
 
#  NOSUFFIX: do not add a suffix after binary-name (OFF by default)
8
 
#  YADE_VERSION: explicitely set version number (is defined from git-directory by default)
9
 
#  ENABLE_GUI: enable GUI option (ON by default)
10
 
#  ENABLE_CGAL: enable CGAL option (ON by default)
11
 
#  ENABLE_VTK: enable VTK-export option (ON by default)
12
 
#  ENABLE_OPENMP: enable OpenMP-parallelizing option (ON by default)
13
 
#  ENABLE_GTS: enable GTS-option (ON by default)
14
 
#  ENABLE_GL2PS: enable GL2PS-option (ON by default)
15
 
#  ENABLE_LINSOLV: enable LINSOLV-option (ON by default)
16
 
#  ENABLE_PFVFLOW: enable PFVFLOW-option, FlowEngine (ON by default)
17
 
#  runtimePREFIX: used for packaging, when install directory is not the same is runtime directory (/usr/local by default)
18
 
#  CHUNKSIZE: set >1, if you want several sources to be compiled at once. Increases compilation speed and RAM-consumption during it (1 by default).
19
 
 
20
 
 
21
 
project(Yade C CXX)
22
 
cmake_minimum_required(VERSION 2.8)
23
 
 
24
 
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cMake")
25
 
 
26
 
INCLUDE(FindPythonLibs)
27
 
INCLUDE(FindPythonInterp)
28
 
INCLUDE(FindOpenMP)
29
 
INCLUDE(FindQt4)
30
 
INCLUDE(FindVTK)
31
 
INCLUDE(FindPkgConfig)
32
 
INCLUDE(GetVersion)
33
 
INCLUDE(FindOpenGL)
34
 
INCLUDE(FindGTS)
35
 
INCLUDE(FindGL2PS)
36
 
INCLUDE(FindCGAL)
37
 
INCLUDE(FindNumPy)
38
 
INCLUDE(FindLoki)
39
 
INCLUDE(FindPythonModule)
40
 
INCLUDE(GNUInstallDirs)
41
 
#===========================================================
42
 
IF (CMAKE_CXX_FLAGS)
43
 
  #If flags are set, add only neccessary flags
44
 
  IF (DEBUG)
45
 
    SET(CMAKE_VERBOSE_MAKEFILE 1)
46
 
    SET(CMAKE_BUILD_TYPE Debug)
47
 
    SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DYADE_PTR_CAST=static_pointer_cast -DYADE_CAST=static_cast -DYADE_DEBUG")
48
 
  ELSE (DEBUG)
49
 
    SET(CMAKE_BUILD_TYPE Release)
50
 
    SET(CMAKE_CXX_FLAGS  "${CMAKE_CXX_FLAGS} -DYADE_PTR_CAST=static_pointer_cast -DYADE_CAST=static_cast -fPIC")
51
 
  ENDIF (DEBUG)
52
 
ELSE (CMAKE_CXX_FLAGS)
53
 
  #If flags are not set, add all useful flags
54
 
  IF (DEBUG)
55
 
    SET(CMAKE_VERBOSE_MAKEFILE 1)
56
 
    SET(CMAKE_BUILD_TYPE Debug)
57
 
    SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}  -DYADE_PTR_CAST=static_pointer_cast -DYADE_CAST=static_cast -DYADE_DEBUG -Wall -fPIC -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security")
58
 
  ELSE (DEBUG)
59
 
    SET(CMAKE_BUILD_TYPE Release)
60
 
    SET(CMAKE_CXX_FLAGS  "-DYADE_PTR_CAST=static_pointer_cast -DYADE_CAST=static_cast -Wall -fPIC -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -s")
61
 
  ENDIF (DEBUG)
62
 
ENDIF (CMAKE_CXX_FLAGS)
63
 
#===========================================================
64
 
# Add possibility to use local boost installation (e.g. -DLocalBoost=1.46.1)
65
 
 
66
 
FIND_PACKAGE(Boost ${LocalBoost} COMPONENTS python thread date_time filesystem iostreams regex serialization system REQUIRED)
67
 
INCLUDE_DIRECTORIES (${Boost_INCLUDE_DIRS})
68
 
# for checking purpose
69
 
MESSAGE("--   Boost_VERSION: " ${Boost_VERSION})
70
 
MESSAGE("--   Boost_LIB_VERSION: " ${Boost_LIB_VERSION})
71
 
MESSAGE("--   Boost_INCLUDE_DIRS: " ${Boost_INCLUDE_DIRS})
72
 
MESSAGE("--   Boost_LIBRARIES: " ${Boost_LIBRARIES})
73
 
 
74
 
#===========================================================
75
 
FIND_PACKAGE(NumPy REQUIRED)
76
 
  INCLUDE_DIRECTORIES(${NUMPY_INCLUDE_DIRS})
77
 
 
78
 
FIND_PACKAGE(Loki REQUIRED)
79
 
  INCLUDE_DIRECTORIES(${LOKI_INCLUDE_DIR})
80
 
FIND_PACKAGE(Eigen3 REQUIRED)
81
 
FIND_PACKAGE(BZip2 REQUIRED)
82
 
FIND_PACKAGE(ZLIB REQUIRED)
83
 
#===========================================================
84
 
 
85
 
SET(DEFAULT ON CACHE INTERNAL "Default value for enabled by default options")
86
 
SET(LINKLIBS "")
87
 
SET(CONFIGURED_FEATS "")
88
 
SET(DISABLED_FEATS "")
89
 
 
90
 
OPTION(ENABLE_VTK "Enable VTK" ${DEFAULT})
91
 
OPTION(ENABLE_OPENMP "Enable OpenMP" ${DEFAULT})
92
 
OPTION(ENABLE_GTS "Enable GTS" ${DEFAULT})
93
 
OPTION(ENABLE_GUI "Enable GUI" ${DEFAULT})
94
 
OPTION(ENABLE_CGAL "Enable CGAL" ${DEFAULT})
95
 
OPTION(ENABLE_GL2PS "Enable GL2PS" ${DEFAULT})
96
 
OPTION(ENABLE_LINSOLV "Enable direct solver for the flow engines (experimental)" ${DEFAULT})
97
 
OPTION(ENABLE_PFVFLOW "Enable flow engine (experimental)" ${DEFAULT})
98
 
 
99
 
#===========================================================
100
 
# Use Eigen3 by default
101
 
IF (EIGEN3_FOUND)
102
 
  INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIR})
103
 
  MESSAGE(STATUS "Found Eigen3")
104
 
  SET(CONFIGURED_FEATS "${CONFIGURED_FEATS} Eigen3")
105
 
ENDIF(EIGEN3_FOUND)
106
 
#===========================================================
107
 
INCLUDE_DIRECTORIES(${BZIP2_INCLUDE_DIR})
108
 
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIRS})
109
 
SET(LINKLIBS  "${LINKLIBS};${BZIP2_LIBRARIES};${ZLIB_LIBRARIES};")
110
 
#===========================================================
111
 
IF(ENABLE_VTK)
112
 
  FIND_PACKAGE(VTK COMPONENTS Common) 
113
 
  IF(VTK_FOUND)
114
 
    INCLUDE_DIRECTORIES(${VTK_INCLUDE_DIRS})
115
 
    LINK_DIRECTORIES( ${VTK_LIBRARY_DIRS} )
116
 
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DYADE_VTK")
117
 
    SET(features "${features} vtk")
118
 
    MESSAGE(STATUS "Found VTK")
119
 
    SET(CONFIGURED_FEATS "${CONFIGURED_FEATS} VTK")
120
 
  ELSE(VTK_FOUND)
121
 
    MESSAGE(STATUS "VTK NOT found")
122
 
    SET(ENABLE_VTK OFF)
123
 
    SET(DISABLED_FEATS "${DISABLED_FEATS} VTK")
124
 
  ENDIF(VTK_FOUND)
125
 
ELSE(ENABLE_VTK)
126
 
  SET(DISABLED_FEATS "${DISABLED_FEATS} VTK")
127
 
ENDIF(ENABLE_VTK)
128
 
#===========================================================
129
 
IF(ENABLE_OPENMP)
130
 
  FIND_PACKAGE(OpenMP)
131
 
  IF(OPENMP_FOUND)
132
 
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DYADE_OPENMP ${OpenMP_CXX_FLAGS}")
133
 
    MESSAGE(STATUS "Found OpenMP")
134
 
    SET(CONFIGURED_FEATS "${CONFIGURED_FEATS} OpenMP")
135
 
    SET(features "${features} openmp")
136
 
  ELSE(OPENMP_FOUND)
137
 
    MESSAGE(STATUS "OpenMP NOT found")
138
 
    SET(ENABLE_OPENMP OFF)
139
 
    SET(DISABLED_FEATS "${DISABLED_FEATS} OPENMP")
140
 
  ENDIF(OPENMP_FOUND)
141
 
ELSE(ENABLE_OPENMP)
142
 
  SET(DISABLED_FEATS "${DISABLED_FEATS} OPENMP")
143
 
ENDIF(ENABLE_OPENMP)
144
 
#===========================================================
145
 
IF(ENABLE_GTS)
146
 
  FIND_PACKAGE(GTS)
147
 
  FIND_PACKAGE(glib2)
148
 
  IF(GTS_FOUND AND GLIB2_FOUND)
149
 
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DYADE_GTS ${CMAKE_GTS_CXX_FLAGS}")
150
 
    SET(CMAKE_LD_FLAGS  "${CMAKE_LD_FLAGS} ${GTS_LIBRARIES}")
151
 
    INCLUDE_DIRECTORIES(${GTS_INCLUDE_DIR})
152
 
    INCLUDE_DIRECTORIES(${GLIB2_INCLUDE_DIRS})
153
 
    MESSAGE(STATUS "Found GTS")
154
 
    SET(CONFIGURED_FEATS "${CONFIGURED_FEATS} GTS")
155
 
    SET(features "${features} gts")
156
 
  ELSE(GTS_FOUND AND GLIB2_FOUND)
157
 
    MESSAGE(STATUS "GTS NOT found")
158
 
    SET(DISABLED_FEATS "${DISABLED_FEATS} GTS")
159
 
    SET(ENABLE_GTS OFF)
160
 
  ENDIF(GTS_FOUND AND GLIB2_FOUND)
161
 
ELSE(ENABLE_GTS)
162
 
  SET(DISABLED_FEATS "${DISABLED_FEATS} GTS")
163
 
ENDIF(ENABLE_GTS)
164
 
#===========================================================
165
 
IF(ENABLE_GUI)
166
 
  FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtOpenGL)
167
 
  FIND_PACKAGE(OpenGL)
168
 
  FIND_PACKAGE(GLUT)
169
 
  FIND_PACKAGE(glib2)
170
 
  FIND_PACKAGE(QGLVIEWER)
171
 
  IF(QT4_FOUND AND OPENGL_FOUND AND GLUT_FOUND AND GLIB2_FOUND AND QGLVIEWER_FOUND)
172
 
    SET(GUI_LIBS ${GLUT_LIBRARY} ${OPENGL_LIBRARY} ${QGLVIEWER_LIBRARIES})
173
 
    SET(GUI_SRC_LIB "lib/opengl/GLUtils.cpp")
174
 
    SET(features "${features} qt4 opengl")
175
 
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DYADE_OPENGL")
176
 
    INCLUDE_DIRECTORIES(${GLIB2_INCLUDE_DIRS})
177
 
    INCLUDE_DIRECTORIES(${QT_INCLUDES})
178
 
    
179
 
    MESSAGE(STATUS "Found GUI-LIBS")
180
 
    SET(CONFIGURED_FEATS "${CONFIGURED_FEATS} GUI")
181
 
  ELSE(QT4_FOUND AND OPENGL_FOUND AND GLUT_FOUND AND GLIB2_FOUND AND QGLVIEWER_FOUND)
182
 
    MESSAGE(STATUS "GUI-LIBS NOT found")
183
 
    SET(DISABLED_FEATS "${DISABLED_FEATS} GUI")
184
 
    SET(ENABLE_GUI OFF)
185
 
  ENDIF(QT4_FOUND AND OPENGL_FOUND AND GLUT_FOUND AND GLIB2_FOUND AND QGLVIEWER_FOUND)
186
 
ELSE(ENABLE_GUI)
187
 
  SET(DISABLED_FEATS "${DISABLED_FEATS} GUI")
188
 
ENDIF(ENABLE_GUI)
189
 
#===========================================================
190
 
# This one will automatically enable CGAL
191
 
IF(ENABLE_PFVFLOW)
192
 
  IF (NOT ENABLE_CGAL)
193
 
    MESSAGE(STATUS "PFVFLOW depends on CGAL, attempting to turn ENABLE_CGAL ON")
194
 
    SET(ENABLE_CGAL ON)
195
 
  ENDIF (NOT ENABLE_CGAL)
196
 
ENDIF(ENABLE_PFVFLOW)
197
 
#===========================================================
198
 
IF(ENABLE_CGAL)  
199
 
  INCLUDE(FindGMP)
200
 
  FIND_PACKAGE(CGAL)
201
 
  FIND_PACKAGE(GMP)
202
 
  IF(CGAL_FOUND AND GMP_FOUND AND (NOT("${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}" MATCHES ".*clang"))) #Check for clang should be removed, when CGAL will be compilable by clang
203
 
    #INCLUDE_DIRECTORIES(${CGAL_INCLUDE_DIR})
204
 
    #INCLUDE_DIRECTORIES(${GMP_INCLUDE_DIR})
205
 
    #INCLUDE_DIRECTORIES(${GMPXX_INCLUDE_DIR})
206
 
    
207
 
    FILE(GLOB CGAL_SRC_LIB "lib/triangulation/*.cpp")
208
 
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CGAL_DEFINITIONS} -DYADE_CGAL")
209
 
    SET(LINKLIBS  "${LINKLIBS};${CGAL_LIBRARIES};${GMP_LIBRARIES};${GMPXX_LIBRARIES};")
210
 
    MESSAGE(STATUS "Found CGAL")
211
 
    SET(CONFIGURED_FEATS "${CONFIGURED_FEATS} CGAL")
212
 
 
213
 
    IF(ENABLE_PFVFLOW)
214
 
      SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DFLOW_ENGINE")
215
 
      SET(CONFIGURED_FEATS "${CONFIGURED_FEATS} PFVflow")
216
 
    ELSE(ENABLE_PFVFLOW)
217
 
      SET(DISABLED_FEATS "${DISABLED_FEATS} PFVflow")
218
 
    ENDIF(ENABLE_PFVFLOW)
219
 
 
220
 
  ELSE(CGAL_FOUND AND GMP_FOUND AND (NOT("${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}" MATCHES ".*clang")))
221
 
    MESSAGE(STATUS "CGAL NOT found")
222
 
    SET(DISABLED_FEATS "${DISABLED_FEATS} CGAL")
223
 
    SET(ENABLE_CGAL OFF)
224
 
    IF(ENABLE_PFVFLOW)
225
 
      SET(DISABLED_FEATS "${DISABLED_FEATS} PFVflow")
226
 
      MESSAGE(STATUS "CGAL NOT found: PFVFLOW disabled")
227
 
    ENDIF(ENABLE_PFVFLOW)
228
 
 
229
 
  ENDIF(CGAL_FOUND AND GMP_FOUND AND (NOT("${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}" MATCHES ".*clang")))
230
 
ELSE(ENABLE_CGAL)
231
 
  SET(DISABLED_FEATS "${DISABLED_FEATS} CGAL")
232
 
ENDIF(ENABLE_CGAL)
233
 
#===========================================================
234
 
IF(ENABLE_LINSOLV)
235
 
  FIND_PACKAGE(Cholmod)
236
 
  FIND_PACKAGE(OpenBlas)
237
 
  FIND_PACKAGE(Metis)
238
 
  IF(CHOLMOD_FOUND AND OPENBLAS_FOUND AND METIS_FOUND)
239
 
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CGAL_DEFINITIONS} -DLINSOLV -DFLOW_ENGINE")
240
 
    SET(LINKLIBS  "${LINKLIBS};${CHOLMOD_LIBRARIES};${AMD_LIBRARY};${CAMD_LIBRARY};${COLAMD_LIBRARY};${CCOLAMD_LIBRARY};${OPENBLAS_LIBRARY};${METIS_LIBRARY}")
241
 
    INCLUDE_DIRECTORIES(${METIS_INCLUDE_DIR} ${CHOLMOD_INCLUDE_DIR})
242
 
    MESSAGE(STATUS "Found Cholmod")
243
 
    MESSAGE(STATUS "Found OpenBlas")
244
 
    MESSAGE(STATUS "Found Metis")
245
 
    SET(CONFIGURED_FEATS "${CONFIGURED_FEATS} LinSolv")
246
 
  ELSE(CHOLMOD_FOUND AND OPENBLAS_FOUND AND METIS_FOUND)
247
 
    MESSAGE(STATUS "CHOLMOD NOT found, LINSOLV disabled")
248
 
    SET(DISABLED_FEATS "${DISABLED_FEATS} LinSolv")
249
 
    SET(ENABLE_LINSOLV OFF)
250
 
  ENDIF(CHOLMOD_FOUND AND OPENBLAS_FOUND AND METIS_FOUND)
251
 
ELSE(ENABLE_LINSOLV)
252
 
  SET(DISABLED_FEATS "${DISABLED_FEATS} LinSolv")
253
 
ENDIF(ENABLE_LINSOLV)
254
 
#===============================================
255
 
IF(ENABLE_GL2PS)
256
 
  FIND_PACKAGE(GL2PS)
257
 
  IF(GL2PS_FOUND)
258
 
    INCLUDE_DIRECTORIES(${GL2PS_INCLUDE_DIR})
259
 
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DYADE_GL2PS")
260
 
    SET(LINKLIBS  "${LINKLIBS};${GL2PS_LIBRARIES};")
261
 
    MESSAGE(STATUS "Found GL2PS")
262
 
    SET(CONFIGURED_FEATS "${CONFIGURED_FEATS} GL2PS")
263
 
  ELSE(GL2PS_FOUND)
264
 
    MESSAGE(STATUS "GL2PS NOT found")
265
 
    SET(DISABLED_FEATS "${DISABLED_FEATS} GL2PS")
266
 
    SET(ENABLE_GL2PS OFF)
267
 
  ENDIF(GL2PS_FOUND)
268
 
ELSE(ENABLE_GL2PS)
269
 
  SET(DISABLED_FEATS "${DISABLED_FEATS} GL2PS")
270
 
ENDIF(ENABLE_GL2PS)
271
 
 
272
 
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_DIRS})
273
 
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extra/floating_point_utilities_v3)
274
 
INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
275
 
 
276
 
#===========================================================
277
 
 
278
 
IF (NOT INSTALL_PREFIX)
279
 
 SET(CMAKE_INSTALL_PREFIX "/usr/local")
280
 
 MESSAGE("Yade will be installed to default path ${CMAKE_INSTALL_PREFIX}, if you want to override it use -DINSTALL_PREFIX option.")
281
 
ELSE (NOT INSTALL_PREFIX)
282
 
        GET_FILENAME_COMPONENT(CMAKE_INSTALL_PREFIX ${INSTALL_PREFIX} ABSOLUTE)
283
 
        MESSAGE("Yade will be installed to ${CMAKE_INSTALL_PREFIX}")
284
 
ENDIF (NOT INSTALL_PREFIX)
285
 
 
286
 
IF (NOT SUFFIX)
287
 
  SET (SUFFIX "-${YADE_VERSION}")
288
 
ENDIF (NOT SUFFIX)
289
 
 
290
 
IF(NOSUFFIX)   #For packaging
291
 
  SET (SUFFIX "")
292
 
ENDIF(NOSUFFIX)   #For packaging
293
 
 
294
 
IF(NOT LIBRARY_OUTPUT_PATH)   #For packaging
295
 
  SET (LIBRARY_OUTPUT_PATH ${CMAKE_INSTALL_LIBDIR})
296
 
ENDIF(NOT LIBRARY_OUTPUT_PATH)   #For packaging
297
 
 
298
 
IF (NOT runtimePREFIX)
299
 
  SET (runtimePREFIX ${CMAKE_INSTALL_PREFIX})
300
 
ENDIF (NOT runtimePREFIX)
301
 
 
302
 
MESSAGE (STATUS "Suffix is set to " ${SUFFIX})
303
 
MESSAGE (STATUS "LIBRARY_OUTPUT_PATH is set to " ${LIBRARY_OUTPUT_PATH})
304
 
MESSAGE (STATUS "runtimePREFIX is set to " ${runtimePREFIX})
305
 
#===========================================================
306
 
 
307
 
SET(YADE_LIB_PATH ${CMAKE_INSTALL_PREFIX}/${LIBRARY_OUTPUT_PATH}/yade${SUFFIX})
308
 
SET(YADE_EXEC_PATH ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})
309
 
SET(YADE_PY_PATH ${YADE_LIB_PATH}/py)
310
 
SET(YADE_DOC_PATH ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/doc/yade${SUFFIX})
311
 
SET(YADE_MAN_PATH ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_MANDIR})
312
 
 
313
 
 
314
 
SET(CMAKE_SKIP_BUILD_RPATH FALSE)
315
 
SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
316
 
SET(CMAKE_INSTALL_RPATH "${YADE_LIB_PATH};${YADE_PY_PATH};${YADE_PY_PATH}/yade/;${YADE_PY_PATH}/yade/qt;${YADE_PY_PATH}/gts")
317
 
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
318
 
 
319
 
#===========================================================
320
 
IF(ENABLE_GUI)
321
 
  ADD_SUBDIRECTORY("${CMAKE_SOURCE_DIR}/gui")
322
 
ENDIF(ENABLE_GUI)
323
 
ADD_SUBDIRECTORY("${CMAKE_SOURCE_DIR}/py")
324
 
#===========================================================
325
 
 
326
 
# this is only a temporary hack, headers should be installed in the build-dir directly
327
 
# perhaps there is a proper way, have to ask
328
 
IF(NOT EXISTS "${CMAKE_BINARY_DIR}/yade")
329
 
  EXECUTE_PROCESS(COMMAND ln -s ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR}/yade)
330
 
ENDIF ()
331
 
#===========================================================
332
 
 
333
 
FILE(GLOB SRC_CORE "core/*.cpp")
334
 
FILE(GLOB_RECURSE SRC_PKG  "pkg/*.cpp")
335
 
FILE(GLOB SRC_LIB  "lib/*.cpp")
336
 
 
337
 
SET(SRC_LIB "${SRC_LIB};lib/base/Math.cpp;lib/factory/ClassFactory.cpp;lib/factory/DynLibManager.cpp;lib/multimethods/Indexable.cpp;lib/serialization/Serializable.cpp;lib/pyutil/gil.cpp;core/main/pyboot.cpp;${GUI_SRC_LIB};${CGAL_SRC_LIB}")
338
 
 
339
 
#===========================================================
340
 
 
341
 
IF (CHUNKSIZE)
342
 
  INCLUDE(CombineSources)
343
 
  COMBINE_SOURCES(${CMAKE_BINARY_DIR}/core "${SRC_CORE}" ${CHUNKSIZE})
344
 
  FILE(GLOB SRC_CORE_COMBINED "${CMAKE_BINARY_DIR}/core.*.cpp")
345
 
  COMBINE_SOURCES(${CMAKE_BINARY_DIR}/pkg "${SRC_PKG}" ${CHUNKSIZE})
346
 
  FILE(GLOB SRC_PKG_COMBINED "${CMAKE_BINARY_DIR}/pkg.*.cpp")
347
 
  COMBINE_SOURCES(${CMAKE_BINARY_DIR}/lib "${SRC_LIB}" ${CHUNKSIZE})
348
 
  FILE(GLOB SRC_LIB_COMBINED "${CMAKE_BINARY_DIR}/lib.*.cpp")
349
 
  ADD_LIBRARY(yade SHARED ${SRC_LIB_COMBINED} ${SRC_CORE_COMBINED} ${SRC_PKG_COMBINED})
350
 
ELSE (CHUNKSIZE)
351
 
  ADD_LIBRARY(yade SHARED ${SRC_CORE} ${SRC_PKG} ${SRC_LIB})
352
 
ENDIF (CHUNKSIZE)
353
 
#===========================================================
354
 
find_python_module(minieigen)
355
 
IF (PY_minieigen)
356
 
  MESSAGE(STATUS "Use system minieigen version")
357
 
ELSE (PY_minieigen)
358
 
  MESSAGE(STATUS "Use embedded version of minieigen. Please, consider installing the corresponding package")
359
 
ENDIF (PY_minieigen)
360
 
find_python_module(Tkinter REQUIRED)
361
 
#===========================================================
362
 
 
363
 
ADD_LIBRARY(boot SHARED ${CMAKE_CURRENT_SOURCE_DIR}/core/main/pyboot.cpp)
364
 
SET_TARGET_PROPERTIES(boot PROPERTIES PREFIX "")
365
 
TARGET_LINK_LIBRARIES(yade ${Boost_LIBRARIES} ${PYTHON_LIBRARIES} ${LINKLIBS} ${LOKI_LIBRARY} -lrt)
366
 
TARGET_LINK_LIBRARIES(boot yade)
367
 
 
368
 
IF(ENABLE_VTK)
369
 
  TARGET_LINK_LIBRARIES(yade vtkHybrid)
370
 
ENDIF(ENABLE_VTK)
371
 
IF(ENABLE_GUI)
372
 
  TARGET_LINK_LIBRARIES(yade _GLViewer ${GUI_LIBS})
373
 
ENDIF(ENABLE_GUI)
374
 
 
375
 
#====================================
376
 
IF (NOT (PY_minieigen))
377
 
  ADD_LIBRARY(miniEigen SHARED py/mathWrap/miniEigen.cpp)
378
 
  SET_TARGET_PROPERTIES(miniEigen PROPERTIES PREFIX "")
379
 
  TARGET_LINK_LIBRARIES(miniEigen ${Boost_LIBRARIES} ${PYTHON_LIBRARIES})
380
 
  INSTALL(TARGETS miniEigen DESTINATION ${YADE_PY_PATH})
381
 
ENDIF (NOT (PY_minieigen))
382
 
#====================================
383
 
#Back compatibility with scons
384
 
SET (realVersion ${YADE_VERSION})
385
 
SET (version ${YADE_VERSION})
386
 
SET (pyExecutable ${PYTHON_EXECUTABLE})
387
 
SET (profile "default")
388
 
SET (sourceRoot "${CMAKE_CURRENT_SOURCE_DIR}")
389
 
#====================================
390
 
 
391
 
CONFIGURE_FILE(core/main/yade-batch.in "${CMAKE_BINARY_DIR}/bins/yade${SUFFIX}-batch")
392
 
CONFIGURE_FILE(core/main/main.py.in "${CMAKE_BINARY_DIR}/bins/yade${SUFFIX}")
393
 
CONFIGURE_FILE(py/config.py.in "${CMAKE_BINARY_DIR}/config.py")
394
 
CONFIGURE_FILE(py/__init__.py.in "${CMAKE_BINARY_DIR}/__init__.py")
395
 
 
396
 
#===========================================================
397
 
 
398
 
INSTALL(PROGRAMS "${CMAKE_BINARY_DIR}/bins/yade${SUFFIX}-batch" DESTINATION ${YADE_EXEC_PATH}/)
399
 
INSTALL(PROGRAMS "${CMAKE_BINARY_DIR}/bins/yade${SUFFIX}" DESTINATION ${YADE_EXEC_PATH}/)
400
 
INSTALL(FILES "${CMAKE_BINARY_DIR}/config.py" DESTINATION ${YADE_PY_PATH}/yade/)
401
 
INSTALL(FILES "${CMAKE_BINARY_DIR}/__init__.py" DESTINATION ${YADE_PY_PATH}/yade/)
402
 
FILE(GLOB filesPYChecks "${CMAKE_CURRENT_SOURCE_DIR}/scripts/checks-and-tests/checks/*.py")
403
 
INSTALL(FILES ${filesPYChecks} DESTINATION ${YADE_PY_PATH}/yade/tests/checks)
404
 
FILE(GLOB filesPYChecksData "${CMAKE_CURRENT_SOURCE_DIR}/scripts/checks-and-tests/checks/data/*")
405
 
INSTALL(FILES ${filesPYChecksData} DESTINATION ${YADE_PY_PATH}/yade/tests/checks/data)
406
 
INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/doc/yade-logo-note.png" DESTINATION "${YADE_DOC_PATH}/img")
407
 
 
408
 
INSTALL(TARGETS boot DESTINATION "${YADE_PY_PATH}/yade/")
409
 
INSTALL(TARGETS yade DESTINATION ${YADE_LIB_PATH})
410
 
 
411
 
#===========================================================
412
 
MESSAGE(STATUS "===========================================================")
413
 
MESSAGE(STATUS "Yade configured with following features:${CONFIGURED_FEATS}")
414
 
MESSAGE(STATUS "Disabled features:${DISABLED_FEATS}")
415
 
IF (DEBUG)
416
 
  MESSAGE(STATUS "Debug build")
417
 
  SET (debugbuild " (debug build)")
418
 
ELSE (DEBUG)
419
 
  MESSAGE(STATUS "Optimized build")
420
 
ENDIF (DEBUG)
421
 
IF (CHUNKSIZE)
422
 
  MESSAGE(STATUS "CHUNKSIZE is set to " ${CHUNKSIZE})
423
 
ENDIF (CHUNKSIZE)
424
 
MESSAGE(STATUS "===========================================================")
425
 
#===========================================================
426
 
#Building doc
427
 
ADD_CUSTOM_TARGET(doc)
428
 
FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/doc)
429
 
FILE(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/doc/sphinx)
430
 
ADD_CUSTOM_COMMAND( 
431
 
                  TARGET doc PRE_BUILD
432
 
                  COMMAND rm -rf ${CMAKE_BINARY_DIR}/doc/sphinx/_build
433
 
                  COMMAND cp -r ${CMAKE_CURRENT_SOURCE_DIR}/doc/* ${CMAKE_BINARY_DIR}/doc
434
 
                  COMMAND PYTHONPATH=${CMAKE_BINARY_DIR}/doc/sphinx ${YADE_EXEC_PATH}/yade${SUFFIX} yadeSphinx.py
435
 
                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/doc/sphinx
436
 
                  DEPENDS ${YADE_EXEC_PATH}/yade${SUFFIX}
437
 
                  )
438
 
ADD_CUSTOM_COMMAND( 
439
 
                  TARGET doc POST_BUILD
440
 
                  COMMAND xelatex Yade.tex
441
 
                  COMMAND xelatex Yade.tex
442
 
                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/doc/sphinx/_build/latex
443
 
                  DEPENDS ${YADE_EXEC_PATH}/yade${SUFFIX} ${CMAKE_BINARY_DIR}/doc/sphinx/_build/latex/Yade.tex
444
 
                  )
445
 
ADD_CUSTOM_COMMAND( 
446
 
                  TARGET doc POST_BUILD
447
 
                  COMMAND rm -rf ${YADE_DOC_PATH}/html
448
 
                  COMMAND mv ${CMAKE_BINARY_DIR}/doc/sphinx/_build/html ${YADE_DOC_PATH}/html
449
 
                  COMMAND mv ${CMAKE_BINARY_DIR}/doc/sphinx/_build/latex/Yade.pdf ${YADE_DOC_PATH}/
450
 
                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/doc/sphinx/_build/latex
451
 
                  DEPENDS ${YADE_EXEC_PATH}/yade${SUFFIX} ${CMAKE_BINARY_DIR}/doc/sphinx/_build/latex/Yade.tex
452
 
                  )
453
 
ADD_CUSTOM_COMMAND( 
454
 
                  TARGET doc POST_BUILD
455
 
                  COMMAND mv ${CMAKE_BINARY_DIR}/doc/sphinx/_build/epub/Yade.epub ${YADE_DOC_PATH}/ || true
456
 
                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/doc/sphinx/_build/latex
457
 
                  DEPENDS ${YADE_EXEC_PATH}/yade${SUFFIX} ${CMAKE_BINARY_DIR}/doc/sphinx/_build/latex/Yade.tex
458
 
                  )
459
 
#===========================================================
460
 
#Building manpage
461
 
ADD_CUSTOM_TARGET(manpage)
462
 
ADD_CUSTOM_COMMAND( 
463
 
                  TARGET manpage POST_BUILD
464
 
                  COMMAND help2man ${YADE_EXEC_PATH}/yade${SUFFIX} > yade${SUFFIX}.1
465
 
                  COMMAND help2man ${YADE_EXEC_PATH}/yade${SUFFIX}-batch > yade${SUFFIX}-batch.1
466
 
                  COMMAND mkdir -p ${YADE_MAN_PATH}
467
 
                  COMMAND mv *.1 ${YADE_MAN_PATH}
468
 
                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
469
 
                  DEPENDS ${YADE_EXEC_PATH}/yade${SUFFIX} /usr/bin/help2man
470
 
                  )
471
 
#===========================================================
472
 
#Execute standard checks
473
 
ADD_CUSTOM_TARGET(check)
474
 
ADD_CUSTOM_COMMAND( 
475
 
                  TARGET check POST_BUILD
476
 
                  COMMAND ${YADE_EXEC_PATH}/yade${SUFFIX} --test
477
 
                  COMMAND ${YADE_EXEC_PATH}/yade${SUFFIX} --check
478
 
                  WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
479
 
                  DEPENDS ${YADE_EXEC_PATH}/yade${SUFFIX}
480
 
                  )
481
 
#===========================================================