root/trunk/core/CMakeLists.txt

Revision 1013, 7.0 kB (checked in by quasiben, 3 years ago)

trunk now reflects version 3.4.1

Line 
1CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
2PROJECT(COMPUCELL3D)
3
4if(COMMAND cmake_policy)
5  cmake_policy(SET CMP0003 NEW)
6endif(COMMAND cmake_policy)
7
8#APPLE CHECK                                                                                                                                               
9IF (APPLE)                                                                                                                             
10        SET (CMAKE_OSX_ARCHITECTURES "i386")            #x86_64 ppc ppc64                                                                 
11        SET (CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.5.sdk")         
12        SET (CMAKE_CXX_FLAGS -mmacosx-version-min=10.4)                                                                                   
13        SET (CMAKE_C_FLAGS -mmacosx-version-min=10.4)                                                                                     
14        MESSAGE ("GOT APPLE")                                                 
15ENDIF (APPLE)
16
17# Should we build shared libraries
18OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON)
19
20# Specify a version for all libs to use
21SET(COMPUCELL3D_MAJOR_VERSION 3)
22SET(COMPUCELL3D_MINOR_VERSION 4)
23SET(COMPUCELL3D_BUILD_VERSION 1)
24SET(COMPUCELL3D_VERSION
25  "${COMPUCELL3D_MAJOR_VERSION}.${COMPUCELL3D_MINOR_VERSION}.${COMPUCELL3D_BUILD_VERSION}")
26
27INCLUDE_DIRECTORIES (
28    ${COMPUCELL3D_SOURCE_DIR}/core
29    )
30   
31SET(COMPUCELL3D_LIBRARY_PROPERTIES ${COMPUCELL3D_LIBRARY_PROPERTIES}
32  VERSION "${COMPUCELL3D_VERSION}"
33  SOVERSION "${COMPUCELL3D_MAJOR_VERSION}.${COMPUCELL3D_MINOR_VERSION}"
34)
35
36# Enable Unit Testing
37OPTION(COMPUCELL3D_TEST "Unit testing of CompuCell3D" OFF)
38MARK_AS_ADVANCED(COMPUCELL3D_TEST)
39
40IF(COMPUCELL3D_TEST)
41        ENABLE_TESTING()
42        INCLUDE(FindCppUnit.cmake)
43        INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIR})
44ENDIF(COMPUCELL3D_TEST)
45
46#if(COMMAND cmake_policy)
47#  cmake_policy(SET CMP0002 NEW)
48#endif(COMMAND cmake_policy)
49
50# Always include the top level source for compiles
51SET_DIRECTORY_PROPERTIES(PROPERTIES
52  INCLUDE_DIRECTORIES ${COMPUCELL3D_SOURCE_DIR})
53
54# Where to install files relative to prefix
55SET(COMPUCELL3D_INSTALL_LIB_DIR "/lib")
56SET(COMPUCELL3D_INSTALL_PLUGIN_DIR "/lib/CompuCell3DPlugins")
57SET(COMPUCELL3D_INSTALL_STEPPABLE_DIR "/lib/CompuCell3DSteppables")
58SET(COMPUCELL3D_INSTALL_INCLUDE_DIR "/include/CompuCell3D")
59
60# Find libz for use in the CompuCell/IO utils
61INCLUDE(FindZLIB)
62
63# Should we build wrappings
64OPTION(BUILD_PYINTERFACE "Build Python language wrappings" ON)
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
113
114MACRO(CAR var)
115  SET(${var} ${ARGV1})
116ENDMACRO(CAR)
117
118
119MACRO(CDR var junk)
120  SET(${var} ${ARGN})
121ENDMACRO(CDR)
122
123
124MACRO(ADD_STATIC_LIBRARY)
125   PARSE_ARGUMENTS(LIBRARY
126    "LINK_LIBRARIES;DEPENDS;SUFFIX"
127    ""
128    ${ARGN}
129    )
130  CAR(LIBRARY_NAME ${LIBRARY_DEFAULT_ARGS})
131  CDR(LIBRARY_SOURCES ${LIBRARY_DEFAULT_ARGS})
132
133  #MESSAGE("*** NAME OF LIBRARY ${LIBRARY_NAME}")
134  #MESSAGE("Sources: ${LIBRARY_SOURCES}")
135  #MESSAGE("Link libraries: ${LIBRARY_LINK_LIBRARIES}")
136
137  ADD_LIBRARY(${LIBRARY_NAME}Static STATIC ${LIBRARY_SOURCES})
138  TARGET_LINK_LIBRARIES(${LIBRARY_NAME}Static ${LIBRARY_LINK_LIBRARIES})
139  SET_TARGET_PROPERTIES(
140  ${LIBRARY_NAME}Static PROPERTIES
141  ${COMPUCELL3D_LIBRARY_PROPERTIES})
142
143  SET_TARGET_PROPERTIES(${LIBRARY_NAME}Static  PROPERTIES OUTPUT_NAME CC3D${LIBRARY_NAME}${LIBRARY_SUFFIX})
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)
169ENDMACRO(ADD_SHARED_LIBRARY)
170
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)
194ENDMACRO(ADD_COMPUCELL3D_PLUGIN)
195
196
197MACRO(ADD_COMPUCELL3D_STEPPABLE)
198   PARSE_ARGUMENTS(LIBRARY
199    "LINK_LIBRARIES;DEPENDS;SUFFIX"
200    ""
201    ${ARGN}
202    )
203  CAR(LIBRARY_NAME ${LIBRARY_DEFAULT_ARGS})
204  CDR(LIBRARY_SOURCES ${LIBRARY_DEFAULT_ARGS})
205
206  #MESSAGE("*** NAME OF LIBRARY ${LIBRARY_NAME}")
207  #MESSAGE("Sources: ${LIBRARY_SOURCES}")
208  #MESSAGE("Link libraries: ${LIBRARY_LINK_LIBRARIES}")
209
210  ADD_LIBRARY(${LIBRARY_NAME}Shared SHARED ${LIBRARY_SOURCES})
211  TARGET_LINK_LIBRARIES(${LIBRARY_NAME}Shared ${LIBRARY_LINK_LIBRARIES})
212  SET_TARGET_PROPERTIES(
213  ${LIBRARY_NAME}Shared PROPERTIES
214  ${COMPUCELL3D_LIBRARY_PROPERTIES})
215
216  SET_TARGET_PROPERTIES(${LIBRARY_NAME}Shared  PROPERTIES OUTPUT_NAME CC3D${LIBRARY_NAME}${LIBRARY_SUFFIX})
217  INSTALL_TARGETS(/lib/CompuCell3DSteppables RUNTIME_DIRECTORY /lib/CompuCell3DSteppables
218  ${LIBRARY_NAME}Shared)
219ENDMACRO(ADD_COMPUCELL3D_STEPPABLE)
220
221ADD_SUBDIRECTORY(core)
222ADD_SUBDIRECTORY(player)
Note: See TracBrowser for help on using the browser.