root/branch/3.3.0/CMakeLists.txt

Revision 669, 7.2 kB (checked in by mswat, 4 years ago)

Fixed player problem with Stop when using screen refresh rate of 1. removed dependency on xerces-c library , deleted XMLCereal and XercesUtils? subprojects. Built new windows installer

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