root/branch/3.2.2/CMakeLists.txt

Revision 488, 6.9 kB (checked in by dexity, 4 years ago)

Tested for the first time the method FlexibleDiffusionSolverFE::readConcentrationField(). I used real classes instead of stubs.

Line 
1CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
2
3IF(COMMAND CMAKE_POLICY)
4  CMAKE_POLICY(SET CMP0003 NEW)
5ENDIF(COMMAND CMAKE_POLICY)
6
7#CMAKE_POLICY(VERSION 2.4)
8PROJECT(COMPUCELL3D)
9
10# Should we build shared libraries
11OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON)
12
13# Specify a version for all libs to use
14SET(COMPUCELL3D_MAJOR_VERSION 3)
15SET(COMPUCELL3D_MINOR_VERSION 2)
16SET(COMPUCELL3D_BUILD_VERSION 1)
17SET(COMPUCELL3D_VERSION
18  "${COMPUCELL3D_MAJOR_VERSION}.${COMPUCELL3D_MINOR_VERSION}.${COMPUCELL3D_BUILD_VERSION}")
19
20SET(COMPUCELL3D_LIBRARY_PROPERTIES ${COMPUCELL3D_LIBRARY_PROPERTIES}
21  VERSION "${COMPUCELL3D_VERSION}"
22  SOVERSION "${COMPUCELL3D_MAJOR_VERSION}.${COMPUCELL3D_MINOR_VERSION}"
23)
24
25# Enable Unit Testing
26OPTION(COMPUCELL3D_TEST "Unit testing of CompuCell3D" OFF)
27MARK_AS_ADVANCED(COMPUCELL3D_TEST)
28
29IF(COMPUCELL3D_TEST)
30        ENABLE_TESTING()
31        INCLUDE(FindCppUnit.cmake)
32        INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIR})
33ENDIF(COMPUCELL3D_TEST)
34
35# Always include the top level source for compiles
36SET_DIRECTORY_PROPERTIES(PROPERTIES
37  INCLUDE_DIRECTORIES ${COMPUCELL3D_SOURCE_DIR})
38
39# Where to install files relative to prefix
40SET(COMPUCELL3D_INSTALL_LIB_DIR "/lib")
41SET(COMPUCELL3D_INSTALL_PLUGIN_DIR "/lib/CompuCell3DPlugins")
42SET(COMPUCELL3D_INSTALL_STEPPABLE_DIR "/lib/CompuCell3DSteppables")
43SET(COMPUCELL3D_INSTALL_INCLUDE_DIR "/include/CompuCell3D")
44
45# Find libz for use in the CompuCell/IO utils
46INCLUDE(FindZLIB)
47
48# Should we build wrappings
49OPTION(BUILD_PYINTERFACE "Build Python language wrappings" ON)
50
51# Xerces-c dependency
52FIND_PATH(XERCESC_INCLUDE_DIR xercesc/util/XercesDefs.hpp
53  /usr/include
54  /usr/local/include
55  /opt/local/include
56  ${COMPUCELL3D_SOURCE_DIR}/xercesc/include
57  )
58
59FIND_LIBRARY(XERCESC_LIBRARY xerces-c
60  /usr/lib
61  /usr/local/lib
62  /opt/local/lib
63  ${COMPUCELL3D_SOURCE_DIR}/xercesc/lib
64  )
65
66
67SET(COMPUCELL3D_PLUGIN_PATH
68    /lib/CompuCell3DPlugins)
69#ENDIF(NOT COMPUCELL3D_PLUGIN_PATH)
70
71
72SET(COMPUCELL3D_STEPPABLE_PATH
73    /lib/CompuCell3DSteppables)
74
75#helpful macros
76MACRO(LIST_CONTAINS var value)
77  SET(${var})
78  FOREACH (value2 ${ARGN})
79    IF (${value} STREQUAL ${value2})
80      SET(${var} TRUE)
81    ENDIF (${value} STREQUAL ${value2})
82  ENDFOREACH (value2)
83ENDMACRO(LIST_CONTAINS)
84
85MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
86  SET(DEFAULT_ARGS)
87  FOREACH(arg_name ${arg_names})
88    SET(${prefix}_${arg_name})
89  ENDFOREACH(arg_name)
90  FOREACH(option ${option_names})
91    SET(${prefix}_${option} FALSE)
92  ENDFOREACH(option)
93
94  SET(current_arg_name DEFAULT_ARGS)
95  SET(current_arg_list)
96  FOREACH(arg ${ARGN})
97    LIST_CONTAINS(is_arg_name ${arg} ${arg_names})
98    IF (is_arg_name)
99      SET(${prefix}_${current_arg_name} ${current_arg_list})
100      SET(current_arg_name ${arg})
101      SET(current_arg_list)
102    ELSE (is_arg_name)
103      LIST_CONTAINS(is_option ${arg} ${option_names})
104      IF (is_option)
105        SET(${prefix}_${arg} TRUE)
106      ELSE (is_option)
107        SET(current_arg_list ${current_arg_list} ${arg})
108      ENDIF (is_option)
109    ENDIF (is_arg_name)
110  ENDFOREACH(arg)
111  SET(${prefix}_${current_arg_name} ${current_arg_list})
112ENDMACRO(PARSE_ARGUMENTS)
113
114MACRO(CAR var)
115  SET(${var} ${ARGV1})
116ENDMACRO(CAR)
117
118MACRO(CDR var junk)
119  SET(${var} ${ARGN})
120ENDMACRO(CDR)
121
122
123MACRO(ADD_STATIC_LIBRARY)
124   PARSE_ARGUMENTS(LIBRARY
125    "LINK_LIBRARIES;DEPENDS;SUFFIX"
126    ""
127    ${ARGN}
128    )
129  CAR(LIBRARY_NAME ${LIBRARY_DEFAULT_ARGS})
130  CDR(LIBRARY_SOURCES ${LIBRARY_DEFAULT_ARGS})
131
132  #MESSAGE("*** NAME OF LIBRARY ${LIBRARY_NAME}")
133  #MESSAGE("Sources: ${LIBRARY_SOURCES}")
134  #MESSAGE("Link libraries: ${LIBRARY_LINK_LIBRARIES}")
135
136  ADD_LIBRARY(${LIBRARY_NAME}Static STATIC ${LIBRARY_SOURCES})
137  TARGET_LINK_LIBRARIES(${LIBRARY_NAME}Static ${LIBRARY_LINK_LIBRARIES})
138  SET_TARGET_PROPERTIES(
139  ${LIBRARY_NAME}Static PROPERTIES
140  ${COMPUCELL3D_LIBRARY_PROPERTIES})
141
142  SET_TARGET_PROPERTIES(${LIBRARY_NAME}Static  PROPERTIES OUTPUT_NAME CC3D${LIBRARY_NAME}${LIBRARY_SUFFIX})
143
144
145  INSTALL_TARGETS(/lib ${LIBRARY_NAME}Static)
146ENDMACRO(ADD_STATIC_LIBRARY)
147
148
149MACRO(ADD_SHARED_LIBRARY)
150   PARSE_ARGUMENTS(LIBRARY
151    "LINK_LIBRARIES;DEPENDS;SUFFIX"
152    ""
153    ${ARGN}
154    )
155  CAR(LIBRARY_NAME ${LIBRARY_DEFAULT_ARGS})
156  CDR(LIBRARY_SOURCES ${LIBRARY_DEFAULT_ARGS})
157
158  #MESSAGE("*** NAME OF LIBRARY ${LIBRARY_NAME}")
159  #MESSAGE("Sources: ${LIBRARY_SOURCES}")
160  #MESSAGE("Link libraries: ${LIBRARY_LINK_LIBRARIES}")
161
162  ADD_LIBRARY(${LIBRARY_NAME}Shared SHARED ${LIBRARY_SOURCES})
163  TARGET_LINK_LIBRARIES(${LIBRARY_NAME}Shared ${LIBRARY_LINK_LIBRARIES})
164  SET_TARGET_PROPERTIES(
165  ${LIBRARY_NAME}Shared PROPERTIES
166  ${COMPUCELL3D_LIBRARY_PROPERTIES})
167
168  SET_TARGET_PROPERTIES(${LIBRARY_NAME}Shared  PROPERTIES OUTPUT_NAME CC3D${LIBRARY_NAME}${LIBRARY_SUFFIX})
169  INSTALL_TARGETS(/lib ${LIBRARY_NAME}Shared)
170
171ENDMACRO(ADD_SHARED_LIBRARY)
172
173MACRO(ADD_COMPUCELL3D_PLUGIN)
174   PARSE_ARGUMENTS(LIBRARY
175    "LINK_LIBRARIES;DEPENDS;SUFFIX"
176    ""
177    ${ARGN}
178    )
179  CAR(LIBRARY_NAME ${LIBRARY_DEFAULT_ARGS})
180  CDR(LIBRARY_SOURCES ${LIBRARY_DEFAULT_ARGS})
181
182  #MESSAGE("*** NAME OF LIBRARY ${LIBRARY_NAME}")
183  #MESSAGE("Sources: ${LIBRARY_SOURCES}")
184  #MESSAGE("Link libraries: ${LIBRARY_LINK_LIBRARIES}")
185
186  ADD_LIBRARY(${LIBRARY_NAME}Shared SHARED ${LIBRARY_SOURCES})
187  TARGET_LINK_LIBRARIES(${LIBRARY_NAME}Shared ${LIBRARY_LINK_LIBRARIES})
188  SET_TARGET_PROPERTIES(
189  ${LIBRARY_NAME}Shared PROPERTIES
190  ${COMPUCELL3D_LIBRARY_PROPERTIES})
191
192  SET_TARGET_PROPERTIES(${LIBRARY_NAME}Shared  PROPERTIES OUTPUT_NAME CC3D${LIBRARY_NAME}${LIBRARY_SUFFIX})
193  INSTALL_TARGETS(/lib/CompuCell3DPlugins RUNTIME_DIRECTORY /lib/CompuCell3DPlugins
194  ${LIBRARY_NAME}Shared)
195
196
197ENDMACRO(ADD_COMPUCELL3D_PLUGIN)
198
199
200MACRO(ADD_COMPUCELL3D_STEPPABLE)
201   PARSE_ARGUMENTS(LIBRARY
202    "LINK_LIBRARIES;DEPENDS;SUFFIX"
203    ""
204    ${ARGN}
205    )
206  CAR(LIBRARY_NAME ${LIBRARY_DEFAULT_ARGS})
207  CDR(LIBRARY_SOURCES ${LIBRARY_DEFAULT_ARGS})
208
209  #MESSAGE("*** NAME OF LIBRARY ${LIBRARY_NAME}")
210  #MESSAGE("Sources: ${LIBRARY_SOURCES}")
211  #MESSAGE("Link libraries: ${LIBRARY_LINK_LIBRARIES}")
212
213  ADD_LIBRARY(${LIBRARY_NAME}Shared SHARED ${LIBRARY_SOURCES})
214  TARGET_LINK_LIBRARIES(${LIBRARY_NAME}Shared ${LIBRARY_LINK_LIBRARIES})
215  SET_TARGET_PROPERTIES(
216  ${LIBRARY_NAME}Shared PROPERTIES
217  ${COMPUCELL3D_LIBRARY_PROPERTIES})
218
219  SET_TARGET_PROPERTIES(${LIBRARY_NAME}Shared  PROPERTIES OUTPUT_NAME CC3D${LIBRARY_NAME}${LIBRARY_SUFFIX})
220  INSTALL_TARGETS(/lib/CompuCell3DSteppables RUNTIME_DIRECTORY /lib/CompuCell3DSteppables
221  ${LIBRARY_NAME}Shared)
222
223
224ENDMACRO(ADD_COMPUCELL3D_STEPPABLE)
225
226
227
228# Recurse into subprojects
229#ADD_SUBDIRECTORY(CustomAction)
230#ADD_SUBDIRECTORY(dummy) #used to trick VS2005 to run Custom Action after all the files have been copied to target directory
231
232#ADD_SUBDIRECTORY(VTK)
233ADD_SUBDIRECTORY(BasicUtils)
234
235ADD_SUBDIRECTORY(Utils)
236ADD_SUBDIRECTORY(XercesUtils)
237ADD_SUBDIRECTORY(XMLCereal)
238
239ADD_SUBDIRECTORY(PublicUtilities)
240
241ADD_SUBDIRECTORY(CompuCell3D)
242
243#Adding Player
244ADD_SUBDIRECTORY(CompuCellPlayer)
245
246IF(BUILD_PYINTERFACE)
247  ADD_SUBDIRECTORY(pyinterface)
248ENDIF(BUILD_PYINTERFACE)
249
250
251add_subdirectory(post_install_tasks)
252
253
254
255
256
257
258
259
Note: See TracBrowser for help on using the browser.