]> SALOME platform Git repositories - modules/paravis.git/blob - src/ENGINE/CMakeLists.txt
Salome HOME
Merge from BR_PARAVIS_LOT1_2 24/02/2010
[modules/paravis.git] / src / ENGINE / CMakeLists.txt
1
2         SET(VERSION_INFO 0.0.0)
3         SET(SOVERSION_INFO 0)
4         SET(SUBDIRS)
5         SET(AM_CPPFLAGS)
6         SET(AM_CXXFLAGS)
7         SET(LDADD)
8         
9
10                 SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DHAVE_SALOME_CONFIG -I${KERNEL_ROOT_DIR}/include/salome -include SALOMEconfig.h)
11                 SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DHAVE_SALOME_CONFIG -I${KERNEL_ROOT_DIR}/include/salome -include SALOMEconfig.h)
12                 
13 #  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
14 #
15 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
16 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
17 #
18 #  This library is free software; you can redistribute it and/or
19 #  modify it under the terms of the GNU Lesser General Public
20 #  License as published by the Free Software Foundation; either
21 #  version 2.1 of the License.
22 #
23 #  This library is distributed in the hope that it will be useful,
24 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
25 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
26 #  Lesser General Public License for more details.
27 #
28 #  You should have received a copy of the GNU Lesser General Public
29 #  License along with this library; if not, write to the Free Software
30 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
31 #
32 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
33 #
34 #  File   : Makefile.in
35 #  Author : Vitaly Smetannikov
36 #  Module : PARAVIS
37 #  $Header: 
38 #
39 # include $(top_srcdir)/adm_local/unix/make_common_starter.am
40
41 SET(lib_LTLIBRARIES
42     libPARAVISEngine.la
43 )
44
45 SET(salomeinclude_HEADERS
46     PARAVIS_Engine_i.hh
47 )
48
49 SET(dist_libPARAVISEngine_la_SOURCES
50     PARAVIS_Engine_i.cc
51 )
52
53 SET(libPARAVISEngine_la_CPPFLAGS
54     ${KERNEL_CXXFLAGS}
55     ${CORBA_CXXFLAGS}
56     ${CORBA_INCLUDES}
57     -I${CMAKE_BINARY_DIR}/salome_adm/unix
58     -I${CMAKE_BINARY_DIR}/idl
59 )
60
61 SET(libPARAVISEngine_la_LDFLAGS
62     ${KERNEL_LDFLAGS}
63     ${SalomeIDLKernel}
64     ${SalomeNS}
65     ${SalomeContainer}
66     ${CORBA_LIBS}
67     ${CMAKE_BINARY_DIR}/idl/libSalomeIDLPARAVIS.la
68 )
69
70
71             FOREACH(dir ${SUBDIRS})
72             IF(NOT dir STREQUAL .)
73             ADD_SUBDIRECTORY(${dir})
74             ENDIF(NOT dir STREQUAL .)
75             ENDFOREACH(dir ${SUBDIRS})
76             
77
78         FOREACH(amname ${lib_LTLIBRARIES})
79         
80
81         STRING(REPLACE .la _la amname ${amname})
82         
83
84         STRING(LENGTH ${amname} len)
85         MATH(EXPR newlen "${len}-3")
86         STRING(SUBSTRING ${amname} 0 ${newlen} name)
87         
88
89         STRING(REGEX MATCH "^lib" BEGIN_WITH_lib ${name})
90         IF(BEGIN_WITH_lib)
91         STRING(LENGTH ${name} len)
92         MATH(EXPR newlen "${len}-3")
93         STRING(SUBSTRING ${name} 3 ${newlen} name)
94         ENDIF(BEGIN_WITH_lib)
95         
96
97         STRING(REGEX MATCH "IDL" ISIDL ${name})
98         
99
100         IF(ISIDL)
101         IF(WINDOWS)
102         SET(type STATIC)
103         ELSE(WINDOWS)
104         SET(type SHARED)
105         ENDIF(WINDOWS)
106         ELSE(ISIDL)
107         SET(type SHARED)
108         ENDIF(ISIDL)
109         
110
111         SET(srcs)
112         FOREACH(src ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
113         GET_FILENAME_COMPONENT(ext ${src} EXT)
114         IF(ext STREQUAL .f)
115         IF(src STREQUAL trte.f)
116         SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${src})
117         STRING(REPLACE ".f" ".c" src ${src})
118         SET(src ${CMAKE_CURRENT_BINARY_DIR}/${src})
119         SET(output ${src})
120         ADD_CUSTOM_COMMAND(
121         OUTPUT ${output}
122         COMMAND f2c ${input}
123         MAIN_DEPENDENCY ${input}
124         )
125         ELSE(src STREQUAL trte.f)
126         SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${src})
127         STRING(REPLACE ".f" ".o" src ${src})
128         SET(src ${CMAKE_CURRENT_BINARY_DIR}/${src})
129         SET(output ${src})
130         IF(WINDOWS)
131         SET(F77 g77)
132         ELSE(WINDOWS)
133         SET(F77 gfortran)
134         ENDIF(WINDOWS)
135         ADD_CUSTOM_COMMAND(
136         OUTPUT ${output}
137         COMMAND ${F77} -c -o ${output} ${input}
138         MAIN_DEPENDENCY ${input}
139         )
140         ENDIF(src STREQUAL trte.f)
141         ENDIF(ext STREQUAL .f)
142         SET(srcs ${srcs} ${src})
143         ENDFOREACH(src ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
144         
145
146         SET(l ${nodist_${amname}_SOURCES} ${UIC_FILES})
147         FOREACH(f ${l})
148         SET(src ${CMAKE_CURRENT_BINARY_DIR}/${f})
149         SET(srcs ${srcs} ${src})
150         ENDFOREACH(f ${l})
151         
152
153         SET(build_srcs)
154         SET(l ${nodist_${amname}_SOURCES} ${BUILT_SOURCES})
155         FOREACH(f ${l})
156         GET_FILENAME_COMPONENT(ext ${f} EXT)
157         IF(ext STREQUAL .py)
158         ELSE(ext STREQUAL .py)
159         SET(build_srcs ${build_srcs} ${CMAKE_CURRENT_BINARY_DIR}/${f})
160         ENDIF(ext STREQUAL .py)
161         ENDFOREACH(f ${l})
162         
163
164         ADD_LIBRARY(${name} ${type} ${srcs})
165         
166
167         SET(var)
168         IF(WINDOWS)
169         SET(targets)
170         SET(targets ${targets} SalomeIDLKernel)
171         SET(targets ${targets} SalomeDS)
172         SET(targets ${targets} SALOMEDSTest)
173         SET(targets ${targets} SALOMEDS_Client_exe)
174         SET(targets ${targets} SalomeIDLGEOM)
175         SET(targets ${targets} GEOMEngine)
176         SET(targets ${targets} MEDEngine)
177         SET(targets ${targets} SMESHEngine)
178         SET(targets ${targets} SMESH)
179         FOREACH(target ${targets})
180         IF(name STREQUAL ${target})
181         SET(var ${var} -DNOGDI)
182         ENDIF(name STREQUAL ${target})
183         ENDFOREACH(target ${targets})
184         ENDIF(WINDOWS)
185         
186
187         IF(WINDOWS)
188         SET(targets)
189         SET(targets ${targets} MEFISTO2D)
190         FOREACH(target ${targets})
191         IF(name STREQUAL ${target})
192         SET(dir $ENV{F2CHOME})
193         STRING(REPLACE "\\\\" "/" dir ${dir})
194         SET(var ${var} -I${dir})
195         SET(var ${var} -DF2C_BUILD)
196         ENDIF(name STREQUAL ${target})
197         ENDFOREACH(target ${targets})
198         ENDIF(WINDOWS)
199         
200
201         SET(var ${var} ${AM_CPPFLAGS})
202         SET(var ${var} ${AM_CXXFLAGS})
203         
204
205         SET(var ${var} ${PLATFORM_CPPFLAGS})
206         SET(var ${var} ${PTHREAD_CFLAGS})
207         SET(var ${var} ${${amname}_CPPFLAGS})
208         SET(var ${var} ${${amname}_CXXFLAGS})
209         SET(var ${var} ${${amname}_CFLAGS})
210         SET(vars)
211         IF(WINDOWS)
212         SET(vars ${vars} -include SALOMEconfig.h)
213         SET(vars ${vars} -ftemplate-depth-32)
214         SET(vars ${vars} -fPIC)
215         SET(vars ${vars} -g)
216         ENDIF(WINDOWS)
217         SET(flags)
218         FOREACH(f ${var})
219         FOREACH(v ${vars})
220         IF(f STREQUAL v)
221         SET(f)
222         ENDIF(f STREQUAL v)
223         ENDFOREACH(v ${vars})
224         SET(flags "${flags} ${f}")
225         ENDFOREACH(f ${var})
226         SET_TARGET_PROPERTIES(${name} PROPERTIES COMPILE_FLAGS "${flags}")
227         
228
229         SET_TARGET_PROPERTIES(${name} PROPERTIES VERSION ${VERSION_INFO} SOVERSION ${SOVERSION_INFO})
230         
231
232         SET(libadd)
233         
234
235         IF(WINDOWS)
236         SET(targets)
237         SET(targets ${targets} MEFISTO2D)
238         FOREACH(target ${targets})
239         IF(name STREQUAL ${target})
240         SET(dir $ENV{F2CHOME})
241         STRING(REPLACE "\\\\" "/" dir ${dir})
242         SET(libadd ${libadd} ${dir}/LIBF77.lib)
243         SET(libadd ${libadd} ${dir}/LIBI77.lib)
244         ENDIF(name STREQUAL ${target})
245         ENDFOREACH(target ${targets})
246         ENDIF(WINDOWS)
247         
248
249         SET(libs ${PLATFORM_LIBADD} ${PLATFORM_LDFLAGS} ${${amname}_LIBADD} ${${amname}_LDADD} ${${amname}_LDFLAGS})
250         FOREACH(lib SALOMEBasics SalomeBatch)
251         IF(name STREQUAL lib)
252         SET(libs ${libs} ${PTHREAD_LIBS})
253         ENDIF(name STREQUAL lib)
254         ENDFOREACH(lib SALOMEBasics SalomeBatch)
255         
256
257         FOREACH(lib ${libs})
258         GET_FILENAME_COMPONENT(ext ${lib} EXT)
259         IF(ext STREQUAL .la)
260         GET_FILENAME_COMPONENT(lib ${lib} NAME_WE)
261         STRING(REGEX REPLACE "^lib" "" lib ${lib})
262         ENDIF(ext STREQUAL .la)
263         SET(vars)
264         SET(vars ${vars} -no-undefined)
265         SET(vars ${vars} -lvtkWidgets)
266         IF(WINDOWS)
267         SET(vars ${vars} -module)
268         SET(vars ${vars} -Wl,-E)
269         SET(vars ${vars} -Xlinker)
270         SET(vars ${vars} -export-dynamic)
271         SET(vars ${vars} -lm)
272         SET(vars ${vars} -lboost_thread)
273         SET(vars ${vars} -lboost_signals)
274         SET(vars ${vars} -pthread -lpthread -ldl)
275         ENDIF(WINDOWS)
276         FOREACH(v ${vars})
277         IF(lib STREQUAL v)
278         SET(lib)
279         ENDIF(lib STREQUAL v)
280         ENDFOREACH(v ${vars})
281         SET(libadd ${libadd} ${lib})
282         ENDFOREACH(lib ${libs})
283         TARGET_LINK_LIBRARIES(${name} ${libadd})
284         
285
286         IF(WINDOWS)
287         SET(targets)
288         SET(targets ${targets} MEFISTO2D)
289         FOREACH(target ${targets})
290         IF(name STREQUAL ${target})
291         IF(CMAKE_BUILD_TYPE STREQUAL Debug)
292         SET_TARGET_PROPERTIES(${name} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:MSVCRT")
293         ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
294         ENDIF(name STREQUAL ${target})
295         ENDFOREACH(target ${targets})
296         ENDIF(WINDOWS)
297         
298
299                 SET(DEST lib/salome)
300                 
301
302             IF(BEGIN_WITH_lib)
303             INSTALL(TARGETS ${name} DESTINATION ${DEST})
304             
305
306             ELSE(BEGIN_WITH_lib)
307             
308
309             IF(WINDOWS)
310             INSTALL(TARGETS ${name} DESTINATION lib/python${PYTHON_VERSION}/site-packages/salome)
311             IF(CMAKE_BUILD_TYPE STREQUAL Release)
312             INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/lib/python${PYTHON_VERSION}/site-packages/salome/${name}.dll DESTINATION lib/python${PYTHON_VERSION}/site-packages/salome RENAME ${name}.pyd)
313             ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
314             INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/lib/python${PYTHON_VERSION}/site-packages/salome/${name}.dll DESTINATION lib/python${PYTHON_VERSION}/site-packages/salome RENAME ${name}_d.pyd)
315             ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
316             ELSE(WINDOWS)
317             GET_TARGET_PROPERTY(version ${name} VERSION)
318             GET_TARGET_PROPERTY(soversion ${name} SOVERSION)
319             INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION lib/python${PYTHON_VERSION}/site-packages/salome RENAME ${name}.so.${version})
320             INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION lib/python${PYTHON_VERSION}/site-packages/salome RENAME ${name}.so.${soversion})
321             INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION lib/python${PYTHON_VERSION}/site-packages/salome RENAME ${name}.so)
322             ENDIF(WINDOWS)
323             
324
325             ENDIF(BEGIN_WITH_lib)
326             
327
328         ENDFOREACH(amname ${lib_LTLIBRARIES})
329         
330 FOREACH(f ${salomeinclude_HEADERS})
331
332         SET(DEST include/salome)
333         
334
335         STRING(COMPARE EQUAL ${f} SALOMEconfig.h.in test_SALOMEconfig.h.in)
336         IF(test_SALOMEconfig.h.in)
337         INSTALL(FILES SALOMEconfig.ref.in DESTINATION ${DEST} RENAME SALOMEconfig.h.in)
338         ELSE(test_SALOMEconfig.h.in)
339         SET(dummy dummy-NOTFOUND)
340         MARK_AS_ADVANCED(dummy)
341         # FILE(REMOVE ${CMAKE_INSTALL_PREFIX}/${DEST}/${f})
342         FIND_FILE(dummy ${f} PATHS ${CMAKE_CURRENT_SOURCE_DIR} NO_DEFAULT_PATH)
343         IF(dummy)
344         
345
346             GET_FILENAME_COMPONENT(ext ${f} EXT)
347             IF(ext STREQUAL .py)
348             IF(DEST STREQUAL bin/salome)
349             SET(PERMS)
350             SET(PERMS ${PERMS} OWNER_READ OWNER_WRITE OWNER_EXECUTE)
351             SET(PERMS ${PERMS} GROUP_READ GROUP_EXECUTE)
352             SET(PERMS ${PERMS} WORLD_READ WORLD_EXECUTE)
353             INSTALL(FILES ${f} DESTINATION ${DEST} PERMISSIONS ${PERMS})
354             ELSE(DEST STREQUAL bin/salome)
355             INSTALL(FILES ${f} DESTINATION ${DEST})
356             ENDIF(DEST STREQUAL bin/salome)
357             ELSE(ext STREQUAL .py)
358             INSTALL(FILES ${f} DESTINATION ${DEST})
359             ENDIF(ext STREQUAL .py)
360             
361
362         ELSE(dummy)
363         GET_FILENAME_COMPONENT(ext ${f} EXT)
364         IF(ext STREQUAL .qm)
365         STRING(REGEX REPLACE .qm .ts input ${f})
366         
367
368             SET(input ${CMAKE_CURRENT_SOURCE_DIR}/resources/${input})
369             
370
371         SET(output ${CMAKE_CURRENT_BINARY_DIR}/${f})
372         # ADD_CUSTOM_COMMAND(
373         # OUTPUT ${output}
374         # COMMAND ${QT_LRELEASE_EXECUTABLE} ${input} -qm ${output}
375         # MAIN_DEPENDENCY ${input}
376         # )
377         EXECUTE_PROCESS(COMMAND ${QT_LRELEASE_EXECUTABLE} ${input} -qm ${output})
378         ENDIF(ext STREQUAL .qm)
379         INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${f} DESTINATION ${DEST})
380         ENDIF(dummy)
381         ENDIF(test_SALOMEconfig.h.in)
382         
383
384         GET_FILENAME_COMPONENT(ext ${f} EXT)
385         IF(ext STREQUAL .py)
386         INSTALL(CODE "SET(PYTHON_FILE ${f})")
387         INSTALL(CODE "SET(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})")
388         INSTALL(CODE "SET(DEST ${DEST})")
389         INSTALL(CODE "SET(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE})")
390         
391
392             STRING(REPLACE "\\" "/" KERNEL_ROOT_DIR ${KERNEL_ROOT_DIR})
393             INSTALL(SCRIPT ${KERNEL_ROOT_DIR}/salome_adm/cmake_files/install_and_compile_python_file.cmake)
394             
395
396         ENDIF(ext STREQUAL .py)
397         
398 ENDFOREACH(f ${salomeinclude_HEADERS})