1 diff -Naur netgen-4.9.13.occ/Makefile.am netgen-4.9.13/Makefile.am
2 --- netgen-4.9.13.occ/Makefile.am 2009-08-10 11:40:52.000000000 +0000
3 +++ netgen-4.9.13/Makefile.am 2011-04-26 15:48:32.540050641 +0000
8 -SUBDIRS = libsrc ng nglib tutorials doc windows
9 +SUBDIRS = libsrc nglib tutorials doc windows
11 # TESTS = ng/netgen -batchmode
13 diff -Naur netgen-4.9.13.occ/build_cmake netgen-4.9.13/build_cmake
14 --- netgen-4.9.13.occ/build_cmake 1970-01-01 00:00:00.000000000 +0000
15 +++ netgen-4.9.13/build_cmake 2011-04-26 15:16:35.400428886 +0000
20 +CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
22 +python cmake/am2cmake.py --netgen
26 diff -Naur netgen-4.9.13.occ/build_cmake.bat netgen-4.9.13/build_cmake.bat
27 --- netgen-4.9.13.occ/build_cmake.bat 1970-01-01 00:00:00.000000000 +0000
28 +++ netgen-4.9.13/build_cmake.bat 2011-04-26 15:16:50.690050021 +0000
31 +%PYTHONBIN% cmake\am2cmake.py --netgen
32 diff -Naur netgen-4.9.13.occ/cmake/FindCAS.cmake netgen-4.9.13/cmake/FindCAS.cmake
33 --- netgen-4.9.13.occ/cmake/FindCAS.cmake 1970-01-01 00:00:00.000000000 +0000
34 +++ netgen-4.9.13/cmake/FindCAS.cmake 2011-04-26 15:35:58.110362203 +0000
36 +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
38 +# This library is free software; you can redistribute it and/or
39 +# modify it under the terms of the GNU Lesser General Public
40 +# License as published by the Free Software Foundation; either
41 +# version 2.1 of the License.
43 +# This library is distributed in the hope that it will be useful,
44 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
45 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
46 +# Lesser General Public License for more details.
48 +# You should have received a copy of the GNU Lesser General Public
49 +# License along with this library; if not, write to the Free Software
50 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
52 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
55 +SET(CASROOT $ENV{CASROOT})
57 +# SET(OCC_VERSION_MAJOR 6)
58 +# SET(OCC_VERSION_MINOR 3)
59 +# SET(OCC_VERSION_MAINTENANCE 10)
62 +# SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DOCC_VERSION_MAJOR=${OCC_VERSION_MAJOR})
63 +# SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DOCC_VERSION_MINOR=${OCC_VERSION_MINOR})
64 +# SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DOCC_VERSION_MAINTENANCE=${OCC_VERSION_MAINTENANCE})
65 +SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DLIN -DLINTEL -DCSFDB)
66 +SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DNo_exception)
67 +SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DHAVE_CONFIG_H)
68 +SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DHAVE_LIMITS_H)
69 +SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -I${CASROOT}/inc)
71 +IF(CMAKE_SIZEOF_VOID_P STREQUAL 8)
72 + SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -D_OCC64)
73 +ENDIF(CMAKE_SIZEOF_VOID_P STREQUAL 8)
76 + FIND_LIBRARY(Xmu Xmu)
78 + SET(CAS_LDPATH ${Xmu})
83 + IF(CMAKE_BUILD_TYPE STREQUAL Debug)
84 + SET(CASROOT_LIBDIR ${CASROOT}/win32/libd)
85 + ELSE(CMAKE_BUILD_TYPE STREQUAL Debug)
86 + SET(CASROOT_LIBDIR ${CASROOT}/win32/lib)
87 + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
89 + SET(CASROOT_LIBDIR ${CASROOT}/lib)
92 +FIND_LIBRARY(BinLPlugin BinLPlugin PATHS ${CASROOT_LIBDIR})
93 +FIND_LIBRARY(BinPlugin BinPlugin PATHS ${CASROOT_LIBDIR})
94 +FIND_LIBRARY(BinTObjPlugin BinTObjPlugin PATHS ${CASROOT_LIBDIR})
95 +FIND_LIBRARY(BinXCAFPlugin BinXCAFPlugin PATHS ${CASROOT_LIBDIR})
96 +FIND_LIBRARY(FWOSPlugin FWOSPlugin PATHS ${CASROOT_LIBDIR})
97 +# FIND_LIBRARY(mscmd mscmd PATHS ${CASROOT_LIBDIR})
98 +FIND_LIBRARY(PTKernel PTKernel PATHS ${CASROOT_LIBDIR})
99 +FIND_LIBRARY(StdLPlugin StdLPlugin PATHS ${CASROOT_LIBDIR})
100 +FIND_LIBRARY(StdPlugin StdPlugin PATHS ${CASROOT_LIBDIR})
101 +FIND_LIBRARY(TKAdvTools TKAdvTools PATHS ${CASROOT_LIBDIR})
102 +FIND_LIBRARY(TKBin TKBin PATHS ${CASROOT_LIBDIR})
103 +FIND_LIBRARY(TKBinL TKBinL PATHS ${CASROOT_LIBDIR})
104 +FIND_LIBRARY(TKBinTObj TKBinTObj PATHS ${CASROOT_LIBDIR})
105 +FIND_LIBRARY(TKBinXCAF TKBinXCAF PATHS ${CASROOT_LIBDIR})
106 +FIND_LIBRARY(TKBO TKBO PATHS ${CASROOT_LIBDIR})
107 +FIND_LIBRARY(TKBool TKBool PATHS ${CASROOT_LIBDIR})
108 +FIND_LIBRARY(TKBRep TKBRep PATHS ${CASROOT_LIBDIR})
109 +FIND_LIBRARY(TKCAF TKCAF PATHS ${CASROOT_LIBDIR})
110 +FIND_LIBRARY(TKCDF TKCDF PATHS ${CASROOT_LIBDIR})
111 +# FIND_LIBRARY(TKCDLFront TKCDLFront PATHS ${CASROOT_LIBDIR})
112 +# FIND_LIBRARY(TKCPPClient TKCPPClient PATHS ${CASROOT_LIBDIR})
113 +# FIND_LIBRARY(TKCPPExt TKCPPExt PATHS ${CASROOT_LIBDIR})
114 +# FIND_LIBRARY(TKCPPIntExt TKCPPIntExt PATHS ${CASROOT_LIBDIR})
115 +# FIND_LIBRARY(TKCPPJini TKCPPJini PATHS ${CASROOT_LIBDIR})
116 +# FIND_LIBRARY(TKCSFDBSchema TKCSFDBSchema PATHS ${CASROOT_LIBDIR})
117 +# FIND_LIBRARY(TKDCAF TKDCAF PATHS ${CASROOT_LIBDIR})
118 +# FIND_LIBRARY(TKDraw TKDraw PATHS ${CASROOT_LIBDIR})
119 +FIND_LIBRARY(TKernel TKernel PATHS ${CASROOT_LIBDIR})
120 +FIND_LIBRARY(TKFeat TKFeat PATHS ${CASROOT_LIBDIR})
121 +FIND_LIBRARY(TKFillet TKFillet PATHS ${CASROOT_LIBDIR})
122 +FIND_LIBRARY(TKG2d TKG2d PATHS ${CASROOT_LIBDIR})
123 +FIND_LIBRARY(TKG3d TKG3d PATHS ${CASROOT_LIBDIR})
124 +FIND_LIBRARY(TKGeomAlgo TKGeomAlgo PATHS ${CASROOT_LIBDIR})
125 +FIND_LIBRARY(TKGeomBase TKGeomBase PATHS ${CASROOT_LIBDIR})
126 +FIND_LIBRARY(TKHLR TKHLR PATHS ${CASROOT_LIBDIR})
127 +# FIND_LIBRARY(TKIDLFront TKIDLFront PATHS ${CASROOT_LIBDIR})
128 +FIND_LIBRARY(TKIGES TKIGES PATHS ${CASROOT_LIBDIR})
129 +FIND_LIBRARY(TKLCAF TKLCAF PATHS ${CASROOT_LIBDIR})
130 +FIND_LIBRARY(TKMath TKMath PATHS ${CASROOT_LIBDIR})
131 +FIND_LIBRARY(TKMesh TKMesh PATHS ${CASROOT_LIBDIR})
132 +FIND_LIBRARY(TKMeshVS TKMeshVS PATHS ${CASROOT_LIBDIR})
133 +FIND_LIBRARY(TKNIS TKNIS PATHS ${CASROOT_LIBDIR})
134 +FIND_LIBRARY(TKOffset TKOffset PATHS ${CASROOT_LIBDIR})
135 +FIND_LIBRARY(TKOpenGl TKOpenGl PATHS ${CASROOT_LIBDIR})
136 +FIND_LIBRARY(TKPCAF TKPCAF PATHS ${CASROOT_LIBDIR})
137 +FIND_LIBRARY(TKPLCAF TKPLCAF PATHS ${CASROOT_LIBDIR})
138 +FIND_LIBRARY(TKPrim TKPrim PATHS ${CASROOT_LIBDIR})
139 +FIND_LIBRARY(TKPShape TKPShape PATHS ${CASROOT_LIBDIR})
140 +FIND_LIBRARY(TKService TKService PATHS ${CASROOT_LIBDIR})
141 +FIND_LIBRARY(TKShapeSchema TKShapeSchema PATHS ${CASROOT_LIBDIR})
142 +FIND_LIBRARY(TKShHealing TKShHealing PATHS ${CASROOT_LIBDIR})
143 +FIND_LIBRARY(TKStdLSchema TKStdLSchema PATHS ${CASROOT_LIBDIR})
144 +FIND_LIBRARY(TKStdSchema TKStdSchema PATHS ${CASROOT_LIBDIR})
145 +FIND_LIBRARY(TKSTEP TKSTEP PATHS ${CASROOT_LIBDIR})
146 +FIND_LIBRARY(TKSTEP209 TKSTEP209 PATHS ${CASROOT_LIBDIR})
147 +FIND_LIBRARY(TKSTEPAttr TKSTEPAttr PATHS ${CASROOT_LIBDIR})
148 +FIND_LIBRARY(TKSTEPBase TKSTEPBase PATHS ${CASROOT_LIBDIR})
149 +FIND_LIBRARY(TKSTL TKSTL PATHS ${CASROOT_LIBDIR})
150 +# FIND_LIBRARY(TKTCPPExt TKTCPPExt PATHS ${CASROOT_LIBDIR})
151 +FIND_LIBRARY(TKTObj TKTObj PATHS ${CASROOT_LIBDIR})
152 +# FIND_LIBRARY(TKTObjDRAW TKTObjDRAW PATHS ${CASROOT_LIBDIR})
153 +FIND_LIBRARY(TKTopAlgo TKTopAlgo PATHS ${CASROOT_LIBDIR})
154 +# FIND_LIBRARY(TKTopTest TKTopTest PATHS ${CASROOT_LIBDIR})
155 +FIND_LIBRARY(TKV2d TKV2d PATHS ${CASROOT_LIBDIR})
156 +FIND_LIBRARY(TKV3d TKV3d PATHS ${CASROOT_LIBDIR})
157 +# FIND_LIBRARY(TKViewerTest TKViewerTest PATHS ${CASROOT_LIBDIR})
158 +FIND_LIBRARY(TKVRML TKVRML PATHS ${CASROOT_LIBDIR})
159 +# FIND_LIBRARY(TKWOK TKWOK PATHS ${CASROOT_LIBDIR})
160 +# FIND_LIBRARY(TKWOKTcl TKWOKTcl PATHS ${CASROOT_LIBDIR})
161 +FIND_LIBRARY(TKXCAF TKXCAF PATHS ${CASROOT_LIBDIR})
162 +FIND_LIBRARY(TKXCAFSchema TKXCAFSchema PATHS ${CASROOT_LIBDIR})
163 +# FIND_LIBRARY(TKXDEDRAW TKXDEDRAW PATHS ${CASROOT_LIBDIR})
164 +FIND_LIBRARY(TKXDEIGES TKXDEIGES PATHS ${CASROOT_LIBDIR})
165 +FIND_LIBRARY(TKXDESTEP TKXDESTEP PATHS ${CASROOT_LIBDIR})
166 +FIND_LIBRARY(TKXMesh TKXMesh PATHS ${CASROOT_LIBDIR})
167 +FIND_LIBRARY(TKXml TKXml PATHS ${CASROOT_LIBDIR})
168 +FIND_LIBRARY(TKXmlL TKXmlL PATHS ${CASROOT_LIBDIR})
169 +FIND_LIBRARY(TKXmlTObj TKXmlTObj PATHS ${CASROOT_LIBDIR})
170 +FIND_LIBRARY(TKXmlXCAF TKXmlXCAF PATHS ${CASROOT_LIBDIR})
171 +FIND_LIBRARY(TKXSBase TKXSBase PATHS ${CASROOT_LIBDIR})
172 +# FIND_LIBRARY(TKXSDRAW TKXSDRAW PATHS ${CASROOT_LIBDIR})
173 +# FIND_LIBRARY(wokcmd wokcmd PATHS ${CASROOT_LIBDIR})
174 +# FIND_LIBRARY(wokdeliverysteps wokdeliverysteps PATHS ${CASROOT_LIBDIR})
175 +# FIND_LIBRARY(wokdfltsteps wokdfltsteps PATHS ${CASROOT_LIBDIR})
176 +# FIND_LIBRARY(wokobjssteps wokobjssteps PATHS ${CASROOT_LIBDIR})
177 +# FIND_LIBRARY(wokorbixsteps wokorbixsteps PATHS ${CASROOT_LIBDIR})
178 +# FIND_LIBRARY(woksteps woksteps PATHS ${CASROOT_LIBDIR})
179 +# FIND_LIBRARY(woktoolscmd woktoolscmd PATHS ${CASROOT_LIBDIR})
180 +# FIND_LIBRARY(wokutilscmd wokutilscmd PATHS ${CASROOT_LIBDIR})
181 +FIND_LIBRARY(XCAFPlugin XCAFPlugin PATHS ${CASROOT_LIBDIR})
182 +FIND_LIBRARY(XmlLPlugin XmlLPlugin PATHS ${CASROOT_LIBDIR})
183 +FIND_LIBRARY(XmlPlugin XmlPlugin PATHS ${CASROOT_LIBDIR})
184 +FIND_LIBRARY(XmlTObjPlugin XmlTObjPlugin PATHS ${CASROOT_LIBDIR})
185 +FIND_LIBRARY(XmlXCAFPlugin XmlXCAFPlugin PATHS ${CASROOT_LIBDIR})
187 +SET(CAS_KERNEL ${TKernel} ${TKMath})
188 +SET(CAS_OCAF ${TKernel} ${TKMath} ${TKCDF} ${TKLCAF})
189 +SET(CAS_VIEWER ${TKService} ${TKV3d} ${TKG3d} ${TKGeomBase} ${TKBRep})
190 +SET(CAS_OCAFVIS ${TKCAF} ${TKBRep} ${TKG2d})
191 +SET(CAS_MODELER ${TKG3d} ${TKGeomBase} ${TKGeomAlgo} ${TKBRep} ${TKTopAlgo} ${TKG2d})
193 +SET(TKV3d_EA ${TKernel} ${TKMath} ${TKV3d})
194 +SET(TKBool_EA ${TKernel} ${TKMath} ${TKBRep} ${TKG2d} ${TKG3d} ${TKGeomBase} ${TKGeomAlgo} ${TKTopAlgo} ${TKBool})
195 +SET(TKBRep_EA ${TKernel} ${TKMath} ${TKBRep})
196 +SET(TKIGES_EA ${TKernel} ${TKMath} ${TKXSBase} ${TKBRep} ${TKIGES})
197 +SET(TKSTEP_EA ${TKernel} ${TKMath} ${TKXSBase} ${TKBRep} ${TKSTEP})
198 +SET(TKSTL_EA ${TKernel} ${TKMath} ${TKSTL})
199 +SET(TKCAF_EA ${TKPrim} ${TKCAF})
201 +SET(TKV3d ${TKV3d_EA})
202 +SET(TKBool ${TKBool_EA})
203 +SET(TKBRep ${TKBRep_EA})
204 +SET(TKIGES ${TKIGES_EA})
205 +SET(TKSTEP ${TKSTEP_EA})
206 +SET(TKSTL ${TKSTL_EA})
207 +SET(TKCAF ${TKCAF_EA})
208 diff -Naur netgen-4.9.13.occ/cmake/FindPLATFORM.cmake netgen-4.9.13/cmake/FindPLATFORM.cmake
209 --- netgen-4.9.13.occ/cmake/FindPLATFORM.cmake 1970-01-01 00:00:00.000000000 +0000
210 +++ netgen-4.9.13/cmake/FindPLATFORM.cmake 2011-04-28 08:11:30.203175382 +0000
212 +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
214 +# This library is free software; you can redistribute it and/or
215 +# modify it under the terms of the GNU Lesser General Public
216 +# License as published by the Free Software Foundation; either
217 +# version 2.1 of the License.
219 +# This library is distributed in the hope that it will be useful,
220 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
221 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
222 +# Lesser General Public License for more details.
224 +# You should have received a copy of the GNU Lesser General Public
225 +# License along with this library; if not, write to the Free Software
226 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
228 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
231 +MARK_AS_ADVANCED(ISSUE)
232 +FIND_FILE(ISSUE issue /etc)
240 + SET(MACHINE WINDOWS)
242 + SET(MACHINE PCLINUX)
245 +SET(CMAKE_INSTALL_PREFIX_ENV $ENV{CMAKE_INSTALL_PREFIX})
246 +IF(CMAKE_INSTALL_PREFIX_ENV)
247 + SET(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX_ENV} CACHE PATH "installation prefix" FORCE)
248 +ENDIF(CMAKE_INSTALL_PREFIX_ENV)
250 +IF(NOT CMAKE_BUILD_TYPE)
251 + SET(CMAKE_BUILD_TYPE $ENV{CMAKE_BUILD_TYPE})
252 +ENDIF(NOT CMAKE_BUILD_TYPE)
254 +IF(NOT CMAKE_BUILD_TYPE)
255 + SET(CMAKE_BUILD_TYPE Release)
256 +ENDIF(NOT CMAKE_BUILD_TYPE)
261 + SET(NAMES ACCEPT_SALOME_WARNINGS ACCEPT_${MODULE}_WARNINGS I_AM_A_TROLL_I_DO_NOT_FIX_${MODULE}_WARNINGS)
262 + FOREACH(name ${NAMES})
263 + SET(VAL $ENV{${name}})
264 + IF(X${VAL} STREQUAL X0)
266 + ENDIF(X${VAL} STREQUAL X0)
267 + IF(X${VAL} STREQUAL X1)
268 + SET(ADD_WERROR OFF)
269 + ENDIF(X${VAL} STREQUAL X1)
270 + ENDFOREACH(name ${NAMES})
272 + SET(CMAKE_C_FLAGS "-Werror")
273 + SET(CMAKE_CXX_FLAGS "-Werror")
277 +IF(CMAKE_BUILD_TYPE)
279 + MARK_AS_ADVANCED(CLEAR CMAKE_CONFIGURATION_TYPES)
280 + SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE} CACHE STRING "compilation types" FORCE)
282 + IF(CMAKE_BUILD_TYPE STREQUAL Debug)
283 + SET(CMAKE_C_FLAGS_DEBUG "-g")
284 + SET(CMAKE_CXX_FLAGS_DEBUG "-g")
285 + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
286 + IF(CMAKE_BUILD_TYPE STREQUAL Release)
287 + SET(CMAKE_C_FLAGS_RELEASE "-O1 -DNDEBUG")
288 + SET(CMAKE_CXX_FLAGS_RELEASE "-O1 -DNDEBUG")
289 + ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
291 +ENDIF(CMAKE_BUILD_TYPE)
293 +SET(PLATFORM_CPPFLAGS)
294 +SET(PLATFORM_LDFLAGS)
295 +SET(PLATFORM_LIBADD)
297 + SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} /W0)
298 + SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_CRT_SECURE_NO_WARNINGS) # To disable windows warnings for strcpy, fopen, ...
299 + SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_SCL_SECURE_NO_WARNINGS) # To disable windows warnings std::copy, std::transform, ...
300 + SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -DWNT)
301 + SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -DPPRO_NT) # For medfile
302 + SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_USE_MATH_DEFINES) # At least for MEDMEM
303 + SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_WIN32_WINNT=0x0500) # Windows 2000 or later API is required
304 + SET(PLATFORM_LIBADD ${PLATFORM_LIBADD} Ws2_32.lib)
305 + SET(PLATFORM_LIBADD ${PLATFORM_LIBADD} Userenv.lib) # At least for GEOM suit
307 + # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wparentheses)
308 + # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wreturn-type)
309 + # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wmissing-declarations)
310 + # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wunused)
311 + # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wall)
312 + SET(PLATFORM_LIBADD ${PLATFORM_LIBADD} -ldl)
315 +SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -DSIZEOF_FORTRAN_INTEGER=4 -DSIZEOF_LONG=${CMAKE_SIZEOF_VOID_P} -DSIZEOF_INT=4)
317 +# SET(PLATFORM_CPPFLAGS)
318 +# # # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -DWNT -D_CRT_SECURE_NO_WARNINGS)
324 +### SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_DEBUG_)
330 +## MESSAGE(FATAL_ERROR "ZZZZZZZ")
331 diff -Naur netgen-4.9.13.occ/cmake/am2cmake.py netgen-4.9.13/cmake/am2cmake.py
332 --- netgen-4.9.13.occ/cmake/am2cmake.py 1970-01-01 00:00:00.000000000 +0000
333 +++ netgen-4.9.13/cmake/am2cmake.py 2011-04-28 08:16:50.931646630 +0000
335 +# -*- coding: iso-8859-1 -*-
336 +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
338 +# This library is free software; you can redistribute it and/or
339 +# modify it under the terms of the GNU Lesser General Public
340 +# License as published by the Free Software Foundation; either
341 +# version 2.1 of the License.
343 +# This library is distributed in the hope that it will be useful,
344 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
345 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
346 +# Lesser General Public License for more details.
348 +# You should have received a copy of the GNU Lesser General Public
349 +# License along with this library; if not, write to the Free Software
350 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
352 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
358 +# A set of regular expressions used ...
361 +p_multiline = re.compile(r"""
363 +\s* # 0 or more space
367 +p_dollar = re.compile(r"""
369 +(?P<val> # open the group val
370 +[^)]* # the group contain 0 or more non ) characters
375 +p_arobas = re.compile(r"""
377 +(?P<val> # open the group val
378 +[^@]* # the group contain 0 or more non @ characters
383 +p_if = re.compile(r"""
384 +^ # beginning of the string
385 +\s* # 0 or more space
387 +\s+ # 1 or more space
388 +(?P<val> # open the group val
389 +.+ # the group contain 1 or more non space characters
393 +p_else = re.compile(r"""
394 +^ # beginning of the line
395 +\s* # 0 or more space
397 +\s* # 0 or more space
400 +p_endif = re.compile(r"""
401 +^ # beginning of the line
402 +\s* # 0 or more space
404 +\s* # 0 or more space
407 +p_attribution = re.compile(r"""
408 +^ # beginning of the line
409 +(?P<spaces> # open the group spaces
410 +\s* # 0 or more space
412 +(?P<key> # open the group key
413 +\w+ # the group contain 1 or more alphanumeric characters
415 +\s* # 0 or more space
416 +(?P<method> # open the group method
420 +(?P<value> # open the group value
421 +.* # 0 or more any characters
427 +class CMakeFile(object):
429 + def __init__(self, the_root, root, dirs, files, f, module):
431 + self.the_root = the_root
435 + self.module = module
437 + from os.path import join
438 + self.amFile = join(root, f)
439 + self.listsFile = join(root, "CMakeLists.txt")
445 + def parseFile(self):
448 + # Read the Makefile.am file
450 + amFile = self.amFile
451 + stream = open(amFile)
452 + content = stream.read()
456 + # Replace the composed lines separated by "\\n" by an unique line
458 + content = p_multiline.sub(r' ', content)
461 + # Compatibility netgen plugin
463 + content = content.replace("../NETGEN/libNETGEN.la", "${NETGEN_LIBS}")
537 + "vtkCommonPythonD",
538 + "vtkGraphicsPythonD",
539 + "vtkImagingPythonD",
545 + "LifeCycleCORBATest",
546 + "NamingServiceTest",
549 + "ResourcesManager",
552 + "SalomeCommunication",
554 + "SalomeDatastream",
555 + "SalomeDSCContainer",
557 + "SalomeDSCSupervBasic",
560 + "SALOMEDSImplTest",
563 + "SalomeGenericObj",
564 + "SalomeHDFPersist",
567 + "SalomeLifeCycleCORBA",
568 + "SALOMELocalTrace",
569 + "SALOMELocalTraceTest",
570 + "SalomeLoggerServer",
571 + "SalomeMPIContainer",
572 + "SalomeNotification",
574 + "SalomeResourcesManager",
575 + "SalomeTestComponentEngine",
576 + "SalomeTestMPIComponentEngine",
577 + "SALOMETraceCollectorTest",
580 + "with_loggerTraceCollector",
605 + "SalomePyQtGUILight",
640 + "GEOMFiltersSelection",
645 + "GEOM_SupervEngine",
662 + "TransformationGUI",
667 + "InterpKernelTest",
668 + "MEDClientcmodule",
669 + "medcouplingclient",
670 + "medcouplingcorba",
671 + "medcouplingremapper",
686 + "paramedcouplingcorba",
692 + "SalomeIDLMEDTests",
695 + "GeomSelectionTools",
708 + "SMESHFiltersSelection",
712 + "StdMeshersEngine",
716 + full_list = cas_list + vtk_list
717 + full_list += kernel_list + gui_list
718 + full_list += geom_list + med_list + smesh_list
720 + # E.A. : sort by len before substitution ...
721 + # Why ? Thing to "-lMEDWrapper" then "-lMEDWrapper_V2_1" substition
722 + # And you understand ...
724 + full_list.sort(cmp = lambda x, y : cmp(len(y), len(x)))
726 + for key in full_list:
727 + content = content.replace("-l%s"%(key), "${%s}"%(key))
731 + # Split content in lines to treat each one separately
733 + lines = content.split('\n')
736 + # newlines contains the lines of the future CMakeLists.txt file
741 + # opened_ifs is used to deals with nested conditionnals
746 + # the __thedict__ dictionnary contains key, val
747 + # of the Makefile.am file
749 + self.__thedict__ = {}
752 + # Initialize file ... mainly includes other cmake files
754 + self.initialize(newlines)
757 + # Do the job for each line
760 + self.treatLine(line, newlines, opened_ifs)
764 + # Finalize file ... it is in here the cmake job is done
766 + self.finalize(newlines)
769 + # Concatenate newlines into content
771 + content = '\n'.join(newlines)
774 + # Add a CR at end if necessary
776 + lines = content.split('\n')
777 + # lines = [ l.strip() for l in lines ]
778 + if len(lines[-1]) != 0:
781 + content = '\n'.join(lines)
784 + self.content = content
789 + def initialize(self, newlines):
790 + if self.root == self.the_root:
792 + newlines.append("""
793 + CMAKE_MINIMUM_REQUIRED(VERSION 2.4.7 FATAL_ERROR)
794 + IF(COMMAND cmake_policy)
795 + cmake_policy(SET CMP0003 NEW)
796 + ENDIF(COMMAND cmake_policy)
799 + newlines.append("""
803 + newlines.append("""
805 + """%(self.module.upper()))
807 + if self.module == "netgen":
808 + newlines.append("""
809 + INCLUDE(${CMAKE_SOURCE_DIR}/cmake/FindPLATFORM.cmake)
810 + INCLUDE(${CMAKE_SOURCE_DIR}/cmake/FindCAS.cmake)
813 + if self.module == "kernel":
814 + newlines.append("""
815 + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake)
816 + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindPYTHON.cmake)
817 + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake)
818 + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake)
819 + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindHDF5.cmake)
820 + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindBOOST.cmake)
821 + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindLIBXML2.cmake)
822 + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindSWIG.cmake)
823 + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake)
824 + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake)
825 + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindMPI.cmake)
826 + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindLIBBATCH.cmake)
830 + if self.module == "med":
831 + newlines.append("""
832 + SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR})
833 + IF(KERNEL_ROOT_DIR)
834 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake)
835 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPYTHON.cmake)
836 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake)
837 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake)
838 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindHDF5.cmake)
839 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindBOOST.cmake)
840 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBXML2.cmake)
841 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSWIG.cmake)
842 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake)
843 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake)
844 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindMPI.cmake)
845 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBBATCH.cmake)
846 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindKERNEL.cmake)
847 + ELSE(KERNEL_ROOT_DIR)
848 + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local_without_kernel/cmake_files/FindPLATFORM.cmake)
849 + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local_without_kernel/cmake_files/FindMPI.cmake)
850 + ENDIF(KERNEL_ROOT_DIR)
853 + newlines.append("""
854 + SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR})
855 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake)
856 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPYTHON.cmake)
857 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake)
858 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake)
859 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindHDF5.cmake)
860 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindBOOST.cmake)
861 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBXML2.cmake)
862 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSWIG.cmake)
863 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake)
864 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake)
865 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindMPI.cmake)
866 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBBATCH.cmake)
867 + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindKERNEL.cmake)
870 + if self.module == "gui":
871 + newlines.append("""
872 + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindCAS.cmake)
873 + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindQT4.cmake)
874 + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindOPENGL.cmake)
875 + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindVTK.cmake)
876 + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindQWT.cmake)
877 + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindSIPPYQT.cmake)
880 + newlines.append("""
881 + SET(GUI_ROOT_DIR $ENV{GUI_ROOT_DIR})
883 + INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindCAS.cmake)
884 + INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindQT4.cmake)
885 + INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindOPENGL.cmake)
886 + INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindVTK.cmake)
887 + INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindQWT.cmake)
888 + INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindSIPPYQT.cmake)
889 + INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindGUI.cmake)
890 + ENDIF(GUI_ROOT_DIR)
892 + if self.module == "med":
893 + newlines.append("""
894 + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindMEDFILE.cmake)
896 + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindXDR.cmake)
900 + if self.module == "smesh":
901 + newlines.append("""
902 + SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR})
903 + SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
904 + INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake)
905 + INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMEDFILE.cmake)
906 + INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
909 + if self.module == "netgenplugin":
910 + newlines.append("""
911 + SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR})
912 + SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
913 + SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR})
914 + INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake)
915 + INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
916 + INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake)
917 + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindNETGEN.cmake)
920 + if self.module == "blsurfplugin":
921 + newlines.append("""
922 + SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR})
923 + SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
924 + SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR})
925 + INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake)
926 + INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
927 + INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake)
928 + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindBLSURF.cmake)
931 + if self.module in ["ghs3dplugin", "hexoticplugin"]:
932 + newlines.append("""
933 + SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR})
934 + SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
935 + SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR})
936 + INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake)
937 + INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
938 + INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake)
941 + if self.module == "ghs3dprlplugin":
942 + newlines.append("""
943 + SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR})
944 + SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
945 + SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR})
946 + INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake)
947 + INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMEDFILE.cmake)
948 + INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
949 + INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake)
952 + if self.module == "visu":
953 + newlines.append("""
954 + SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
955 + INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
958 + if self.module == "yacs":
959 + newlines.append("""
960 + INCLUDE(${CMAKE_SOURCE_DIR}/adm/cmake/FindEXPAT.cmake)
961 + INCLUDE(${CMAKE_SOURCE_DIR}/adm/cmake/FindGRAPHVIZ.cmake)
964 + if self.module == "hxx2salome":
965 + newlines.append("""
966 + SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
967 + INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMEDFILE.cmake)
968 + INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
975 + newlines.append("""
976 + SET(DOXYGEN_IS_OK 0)
978 + if self.module not in ['med']:
979 + newlines.append("""
981 + SET(CPPUNIT_IS_OK 0)
986 + if self.module == "kernel":
987 + newlines.append("""
990 + SET(CALCIUM_IDL_INT_F77 long)
991 + SET(CALCIUM_CORBA_INT_F77 CORBA::Long)
992 + SET(LONG_OR_INT int)
994 + elif self.module == "gui":
995 + newlines.append("""
996 + SET(GUI_ENABLE_CORBA ${CORBA_GEN})
997 + SET(ENABLE_VTKVIEWER ON)
998 + SET(ENABLE_SALOMEOBJECT ON)
999 + SET(ENABLE_OCCVIEWER ON)
1000 + SET(ENABLE_GLVIEWER ON)
1001 + SET(ENABLE_PLOT2DVIEWER ON)
1002 + SET(ENABLE_PYCONSOLE ON)
1003 + SET(ENABLE_SUPERVGRAPHVIEWER ON)
1004 + SET(ENABLE_QXGRAPHVIEWER ON)
1007 + elif self.module == "jobmanager":
1008 + newlines.append("""
1011 + ENDIF(GUI_ROOT_DIR)
1014 + elif self.module == "geom":
1015 + newlines.append("""
1017 + SET(GEOM_ENABLE_GUI ON)
1018 + ENDIF(GUI_ROOT_DIR)
1021 + elif self.module == "medfile":
1022 + newlines.append("""
1023 + SET(MED_NUM_MAJEUR 2)
1024 + SET(MED_NUM_MINEUR 3)
1025 + SET(MED_NUM_RELEASE 5)
1026 + SET(LONG_OR_INT int)
1028 + SET(FLIBS -lgfortranbegin -lgfortran)
1029 + ENDIF(NOT WINDOWS)
1032 + elif self.module == "med":
1033 + newlines.append("""
1034 + IF(KERNEL_ROOT_DIR)
1035 + SET(MED_ENABLE_KERNEL ON)
1037 + SET(MED_ENABLE_SPLITTER ON)
1038 + ENDIF(NOT WINDOWS)
1039 + ENDIF(KERNEL_ROOT_DIR)
1041 + SET(MED_ENABLE_GUI ON)
1042 + ENDIF(GUI_ROOT_DIR)
1045 + elif self.module == "smesh":
1046 + newlines.append("""
1048 + SET(SMESH_ENABLE_GUI ON)
1049 + ENDIF(GUI_ROOT_DIR)
1052 + elif self.module == "netgen":
1053 + newlines.append("""
1054 + SET(OCCFLAGS ${CAS_CPPFLAGS})
1055 + SET(OCCLIBS ${CAS_LDPATH})
1056 + SET(OCCLIBS ${OCCLIBS} ${TKernel} ${TKGeomBase} ${TKMath} ${TKG2d} ${TKG3d} ${TKXSBase} ${TKOffset} ${TKFillet} ${TKShHealing})
1057 + SET(OCCLIBS ${OCCLIBS} ${TKMesh} ${TKMeshVS} ${TKTopAlgo} ${TKGeomAlgo} ${TKBool} ${TKPrim} ${TKBO} ${TKIGES} ${TKBRep})
1058 + SET(OCCLIBS ${OCCLIBS} ${TKSTEPBase} ${TKSTEP} ${TKSTL} ${TKSTEPAttr} ${TKSTEP209} ${TKXDESTEP} ${TKXDEIGES} ${TKXCAF} ${TKLCAF} ${FWOSPlugin})
1061 + elif self.module == "netgenplugin":
1062 + newlines.append("""
1064 + SET(NETGENPLUGIN_ENABLE_GUI ON)
1065 + ENDIF(GUI_ROOT_DIR)
1068 + elif self.module == "blsurfplugin":
1069 + newlines.append("""
1071 + SET(BLSURFPLUGIN_ENABLE_GUI ON)
1072 + ENDIF(GUI_ROOT_DIR)
1075 + elif self.module == "ghs3dplugin":
1076 + newlines.append("""
1078 + SET(GHS3DPLUGIN_ENABLE_GUI ON)
1079 + ENDIF(GUI_ROOT_DIR)
1082 + elif self.module == "hexoticplugin":
1083 + newlines.append("""
1085 + SET(HEXOTICPLUGIN_ENABLE_GUI ON)
1086 + ENDIF(GUI_ROOT_DIR)
1089 + elif self.module == "ghs3dprlplugin":
1090 + newlines.append("""
1092 + SET(GHS3DPRLPLUGIN_ENABLE_GUI ON)
1093 + ENDIF(GUI_ROOT_DIR)
1096 + elif self.module == "yacs":
1097 + newlines.append("""
1098 + SET(SALOME_KERNEL ON)
1104 + newlines.append("""
1105 + set(VERSION 6.3.0)
1106 + set(XVERSION 0x060300)
1110 + newlines.append("""
1111 + SET(VERSION_INFO 0.0.0)
1112 + SET(SOVERSION_INFO 0)
1117 + SET(pythondir lib/python${PYTHON_VERSION}/site-packages)
1118 + SET(salomepythondir ${pythondir}/salome)
1119 + SET(salomepypkgdir ${salomepythondir}/salome)
1121 + if self.module == "netgen":
1122 + newlines.append(r'''
1123 + SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DNO_PARALLEL_THREADS -DOCCGEOMETRY -I${CMAKE_BINARY_DIR} -I${CMAKE_CURRENT_SOURCE_DIR})
1125 + elif self.module == "kernel":
1126 + newlines.append(r'''
1127 + SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DHAVE_SALOME_CONFIG -I${CMAKE_BINARY_DIR}/salome_adm/unix -include SALOMEconfig.h)
1128 + SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DHAVE_SALOME_CONFIG -I${CMAKE_BINARY_DIR}/salome_adm/unix -include SALOMEconfig.h)
1131 + if self.module not in ["yacs"]:
1132 + newlines.append(r'''
1133 + IF(KERNEL_ROOT_DIR)
1134 + SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DHAVE_SALOME_CONFIG -I${KERNEL_ROOT_DIR}/include/salome -include SALOMEconfig.h)
1135 + SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DHAVE_SALOME_CONFIG -I${KERNEL_ROOT_DIR}/include/salome -include SALOMEconfig.h)
1136 + ENDIF(KERNEL_ROOT_DIR)
1139 + if self.module == "gui":
1140 + newlines.append(r'''
1141 + IF(KERNEL_ROOT_DIR)
1142 + SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DWITH_SALOMEDS_OBSERVER)
1143 + SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DWITH_SALOMEDS_OBSERVER)
1144 + ENDIF(KERNEL_ROOT_DIR)
1147 + if self.module in ["smesh", "netgenplugin", "blsurfplugin", "ghs3dplugin"]:
1148 + newlines.append(r'''
1149 + SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DWITH_SMESH_CANCEL_COMPUTE)
1150 + SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DWITH_SMESH_CANCEL_COMPUTE)
1153 + if self.module == "hxx2salome":
1155 + if self.the_root[-len(key):] != key:
1156 + msg = "Source dir must finished with %s !"%(key)
1157 + raise Exception(msg)
1158 + hxxmodule = self.the_root[:-len(key)]
1159 + from os.path import basename
1160 + hxxmodule = basename(hxxmodule)
1161 + hxxmodule = hxxmodule.lower()
1162 + self.hxxmodule = hxxmodule
1163 + newlines.append(r'''
1164 + SET(HXXCPP_ROOT_DIR $ENV{%sCPP_ROOT_DIR})
1165 + SET(AM_CPPFLAGS ${AM_CPPFLAGS} -I${HXXCPP_ROOT_DIR}/include)
1166 + SET(AM_CXXFLAGS ${AM_CXXFLAGS} -I${HXXCPP_ROOT_DIR}/include)
1167 + SET(LDADD ${LDADD} -L${HXXCPP_ROOT_DIR}/lib)
1168 + '''%(hxxmodule.upper()))
1174 + def treatLine(self, line, newlines, opened_ifs):
1177 + # Print the comment above the line itself
1179 + if line.find('#') >= 0:
1180 + fields = line.split('#')
1182 + comment = '#'.join([''] + fields[1:])
1183 + newlines.append(comment)
1184 + if len(line) == 0:
1189 + # If the line begins with 'include ', just comment it
1191 + if line.find("include ") == 0:
1192 + newlines.append("# " + line)
1196 + # If the line begins with '-include', just comment it
1198 + if line.find("-include") == 0:
1199 + newlines.append("# " + line)
1203 + # If the line is a definition of a make rule, just comment it
1205 + if line.count(':') == 1:
1206 + newlines.append("# " + line)
1210 + # A particuliar case where there are two ":" on the same line
1212 + if line.find('install-exec-local:') == 0:
1213 + newlines.append("# " + line)
1217 + # If the line begin by a tabulation, consider it's a makefile command and comment it
1219 + if line.find("\t") == 0:
1220 + newlines.append("# " + line)
1225 + key = "-version-info"
1226 + if line.find(key) >= 0:
1228 + before = line.split(key)[0]
1229 + after = line[len(before)+len(key):]
1232 + version_info = after.split()[0]
1233 + line = line.replace(key+sep+version_info, "")
1235 + version_info = version_info.replace(':', '.')
1236 + soversion_info = version_info.split('.')[0]
1237 + newlines.append("SET(VERSION_INFO " + version_info + ")")
1238 + newlines.append("SET(SOVERSION_INFO " + soversion_info + ")")
1243 + # Replace the $(TOTO) by ${TOTO}
1244 + # Replace the @TOTO@ by ${TOTO}
1246 + line = p_dollar.sub(r"${\1}", line)
1247 + line = p_arobas.sub(r"${\1}", line)
1250 + line = line.replace(r"${top_builddir}", r"${CMAKE_BINARY_DIR}")
1251 + line = line.replace(r"${top_srcdir}", r"${CMAKE_SOURCE_DIR}")
1252 + line = line.replace(r"${srcdir}", r"${CMAKE_CURRENT_SOURCE_DIR}")
1253 + line = line.replace(r"${builddir}", r"${CMAKE_CURRENT_BINARY_DIR}")
1254 + line = line.replace(r"${datadir}", r"${CMAKE_INSTALL_PREFIX}/share")
1257 + # Check if the line is a 'if' condition
1258 + # If yes, replace it by a cmake grammar
1260 + match = p_if.match(line)
1262 + theif = match.group("val")
1263 + if theif[0] == "!":
1264 + theif = "NOT " + theif[1:]
1266 + line = p_if.sub(r"IF(%s)"%(theif), line)
1267 + opened_ifs.append(theif)
1268 + newlines.append(line)
1272 + # Check if the line is a 'else' condition
1273 + # If yes, replace it by a cmake grammar
1275 + match = p_else.match(line)
1277 + line = "ELSE(%s)"%(opened_ifs[-1])
1278 + newlines.append(line)
1282 + # Check if the line is a 'endif' condition
1283 + # If yes, replace it by a cmake grammar
1285 + match = p_endif.match(line)
1287 + line = "ENDIF(%s)"%(opened_ifs[-1])
1288 + opened_ifs[-1:] = []
1289 + newlines.append(line)
1293 + # Check if the line is an attribution '=' or '+='
1295 + match = p_attribution.match(line)
1297 + self.treatAttribution(match, newlines)
1301 + newlines.append(line)
1306 + def treatAttribution(self, match, newlines):
1308 + spaces = match.group("spaces")
1309 + key = match.group("key")
1310 + method = match.group("method")
1311 + value = match.group("value")
1312 + # print [spaces, key, method, value]
1315 + # Open cmake SET command
1317 + newlines.append(spaces + "SET(" + key)
1320 + # If method is '+=', put the previous definition as first value
1322 + if method == "+=":
1323 + newlines.append("%s ${%s}"%(spaces, key))
1327 + fields = value.split()
1328 + for i in range(len(fields)):
1329 + newlines.append("%s %s"%(spaces, fields[i]))
1333 + if method == "+=":
1335 + # The try: except KeyError is here if the +=
1336 + # is an error which occurs in salome ...
1339 + self.__thedict__[key] += fields[:]
1341 + self.__thedict__[key] = fields[:]
1345 + self.__thedict__[key] = fields[:]
1349 + # Close cmake SET command
1352 + newlines.append("%s)"%(spaces))
1356 + def finalize(self, newlines):
1359 + # Convert the .in files in build dir
1364 + if mod in ['kernel', 'gui'] and self.root[-len('gui'):] == 'gui' or mod == 'med' and operator.contains(self.root, 'doxygen'):
1365 + newlines.append(r'''
1367 + ${CMAKE_BINARY_DIR}
1370 + ${CMAKE_SOURCE_DIR}
1373 + ${CMAKE_CURRENT_SOURCE_DIR}
1376 + ${CMAKE_CURRENT_BINARY_DIR}
1379 + ${CMAKE_INSTALL_PREFIX}/share
1382 + ${datadir}/doc/salome
1385 + self.files.append("static/header.html.in")
1386 + elif self.root[-len(mod):] == mod.upper() and operator.contains(self.root, 'doc') or mod in ['kernel', 'gui', 'geom', 'med', 'smesh', 'visu'] and self.root[-len('tui'):] == 'tui':
1387 + newlines.append(r'''
1389 + ${CMAKE_BINARY_DIR}
1392 + ${CMAKE_SOURCE_DIR}
1395 + ${CMAKE_CURRENT_SOURCE_DIR}
1398 + ${CMAKE_CURRENT_BINARY_DIR}
1401 + ${CMAKE_INSTALL_PREFIX}/share
1404 + ${datadir}/doc/salome
1407 + self.files.append("static/header.html.in")
1408 + if self.module == "yacs":
1410 + if self.root[-len(key):] == key:
1411 + self.files.append("resources/YACSCatalog.xml.in")
1414 + for f in self.files:
1415 + if f[-3:] == ".in":
1416 + if self.module == 'yacs' and f == "Doxyfile.in":
1418 + if f == "sstream.in":
1420 + if f in ["runContainer.in", "stopContainer.in"]:
1421 + if self.module == "med":
1422 + if self.root[-3:] == "csh":
1426 + if f == "SALOMEconfig.ref.in":
1427 + out = "SALOMEconfig.h"
1431 + newlines.append(r'''
1432 + SET(input ${CMAKE_CURRENT_SOURCE_DIR}/%s)
1434 + newlines.append(r'''
1435 + SET(output ${CMAKE_CURRENT_BINARY_DIR}/%s)
1437 + newlines.append(r'''
1438 + MESSAGE(STATUS "Creation of ${output}")
1439 + CONFIGURE_FILE(${input} ${output})
1445 + # add commands for generating of user's documentation
1448 + upmod = self.module.upper()
1449 + doc_gui_destination = "${CMAKE_INSTALL_PREFIX}/share/doc/salome/gui/%s"%(upmod)
1450 + doc_tui_destination = "${CMAKE_INSTALL_PREFIX}/share/doc/salome/tui/%s"%(upmod)
1451 + doc_destination = "${CMAKE_INSTALL_PREFIX}/share/doc/salome"
1452 + head_source = "${CMAKE_CURRENT_SOURCE_DIR}/images/head.png"
1453 + if mod == 'kernel':
1454 + copytree_src = "${CMAKE_SOURCE_DIR}/salome_adm/cmake_files"
1456 + copytree_src = "$ENV{KERNEL_ROOT_DIR}/salome_adm/cmake_files"
1457 + str = "import re \nimport sys \noutfile = open(sys.argv[1], 'wb') \nfor line in open(sys.argv[2], 'rb').readlines():"
1458 + str += "\n if re.match('class '+sys.argv[3]+'DC', line): \n continue \n line = re.sub(r'^\s+\#', '#', line) \n line = re.sub(r'^\s+def', 'def', line) \n line = re.sub(sys.argv[3]+'DC', sys.argv[3], line)"
1459 + str += "\n outfile.write(line) \noutfile.close()"
1461 + if mod in ['kernel', 'gui'] and self.root[-len('gui'):] == 'gui' or mod == 'med' and operator.contains(self.root, 'doxygen'):
1463 + doc_source = "${CMAKE_CURRENT_BINARY_DIR}/doc_ref_user/html"
1464 + input = "Doxyfile_med_user"
1466 + doc_source = "${CMAKE_CURRENT_BINARY_DIR}/%s"%(upmod)
1468 + newlines.append("""\t ADD_CUSTOM_TARGET(usr_docs ${DOXYGEN_EXECUTABLE} %s
1469 + COMMAND ${PYTHON_EXECUTABLE} -c "import shutil, sys; sys.path.append(r'''%s'''); shutil.rmtree(r'''%s''', True); import copytree1; copytree1.copytree(r'''%s''', r'''%s'''); shutil.copy(r'''%s''', r'''%s''')"
1471 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
1472 + )"""%(input, copytree_src, doc_gui_destination, doc_source, doc_gui_destination, head_source, doc_gui_destination))
1474 + if mod in ['geom', 'smesh', 'visu'] and self.root[-len(mod):] == upmod and operator.contains(self.root, 'doc'):
1475 + ign = r"""'tempfile', '*usr_docs*', '*CMakeFiles*', '*.cmake', 'doxyfile*', '*.vcproj', 'static', 'Makefile*'"""
1476 + if mod in ['geom', 'smesh']:
1479 + input = "COMMAND ${DOXYGEN_EXECUTABLE} doxyfile_tui \n\t\t"
1483 + newlines.append(r"""
1484 + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tempfile "%s")
1485 + ADD_CUSTOM_TARGET(usr_docs ${PYTHON_EXECUTABLE} tempfile ${CMAKE_BINARY_DIR}/src/%s_SWIG/%s.py ${CMAKE_SOURCE_DIR}/src/%s_SWIG/%sDC.py %s
1486 + %sCOMMAND ${DOXYGEN_EXECUTABLE} doxyfile_py
1487 + COMMAND ${DOXYGEN_EXECUTABLE} doxyfile
1488 + COMMAND ${PYTHON_EXECUTABLE} -c "import os; os.remove(r'''${CMAKE_BINARY_DIR}/src/%s_SWIG/%s.py''')"
1489 + COMMAND ${PYTHON_EXECUTABLE} -c "import shutil, sys; sys.path.append(r'''%s'''); shutil.rmtree(r'''%s''', True); import copytree1; copytree1.copytree(r'''${CMAKE_CURRENT_BINARY_DIR}''', r'''%s''', ignore=copytree1.ignore_patterns(%s)); shutil.copy(r'''%s''', r'''%s''')"
1491 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
1492 + )"""%(str, upmod, tmp, upmod, tmp, tmp, input, upmod, tmp, copytree_src, doc_gui_destination, doc_gui_destination, ign, head_source, doc_gui_destination))
1494 + newlines.append("""\t ADD_CUSTOM_TARGET(usr_docs ${DOXYGEN_EXECUTABLE} doxyfile_idl
1495 + COMMAND ${DOXYGEN_EXECUTABLE} doxyfile
1496 + COMMAND ${PYTHON_EXECUTABLE} -c "import shutil, sys; sys.path.append(r'''%s'''); shutil.rmtree(r'''%s''',True); import copytree1; copytree1.copytree(r'''${CMAKE_CURRENT_BINARY_DIR}''',r'''%s''', ignore=copytree1.ignore_patterns(%s)); shutil.copy(r'''%s''',r'''%s''')"
1498 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
1499 + )"""%(copytree_src, doc_gui_destination, doc_gui_destination, ign, head_source, doc_gui_destination))
1502 + # add commands for generating of developer's documentation
1505 + upmod = self.module.upper()
1506 + if mod in ['kernel', 'gui', 'med', 'smesh', 'visu'] and self.root[-len('tui'):] == 'tui':
1507 + if mod == 'kernel':
1508 + tmp = """\tADD_CUSTOM_TARGET(dev_docs ${DOXYGEN_EXECUTABLE} -u
1509 + COMMAND ${DOXYGEN_EXECUTABLE}
1510 + COMMAND ${PYTHON_EXECUTABLE} -c "import os; os.remove(r'''${CMAKE_CURRENT_BINARY_DIR}/doxyfile.bak''')" """
1513 + tmp = """\tADD_CUSTOM_TARGET(dev_docs ${DOXYGEN_EXECUTABLE}"""
1515 + tmp1= r"""\n COMMAND ${PYTHON_EXECUTABLE} -c "from shutil import copy; copy(r'''${CMAKE_CURRENT_SOURCE_DIR}/images/visuscreen.png''', r'''%s''')" """%(doc_tui_destination)
1516 + elif mod == 'smesh':
1517 + extra_srcdir = "${CMAKE_CURRENT_SOURCE_DIR}/extra"
1518 + tmp1= """\n COMMAND ${PYTHON_EXECUTABLE} -c "from shutil import copy; copy(r'''${CMAKE_CURRENT_SOURCE_DIR}/images/smeshscreen.png''', r'''%s'''); copy(r'''%s/AddNetgenInSalome2.pdf''', r'''%s'''); copy(r'''%s/PluginMeshers.html''', r'''%s''')"
1519 + COMMAND ${PYTHON_EXECUTABLE} -c "from shutil import copy; copy(r'''%s/AddNetgenInSalome2.ps''', r'''%s'''); copy(r'''%s/AddNetgenInSalome2.sxw''', r'''%s''')" """%(doc_tui_destination, extra_srcdir,doc_destination, extra_srcdir,doc_destination, extra_srcdir,doc_destination,extra_srcdir,doc_destination)
1522 + doc_source = "${CMAKE_CURRENT_BINARY_DIR}/%s"%(upmod)
1523 + newlines.append(tmp + """
1524 + COMMAND ${PYTHON_EXECUTABLE} -c "import shutil, sys; sys.path.append(r'''%s'''); shutil.rmtree(r'''%s''', True); import copytree1; copytree1.copytree(r'''%s''', r'''%s'''); shutil.copy(r'''%s''', r'''%s''')" """%(copytree_src, doc_tui_destination, doc_source, doc_tui_destination, head_source, doc_tui_destination) + tmp1 + """
1526 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
1528 + if mod == 'geom' and self.root[-len('tui'):] == 'tui':
1530 + doc_source = "${CMAKE_CURRENT_BINARY_DIR}/%s"%(upmod)
1531 + newlines.append(r"""
1532 + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tempfile "%s")
1533 + ADD_CUSTOM_TARGET(dev_docs ${PYTHON_EXECUTABLE} tempfile ${CMAKE_BINARY_DIR}/src/%s_SWIG/%s.py ${CMAKE_SOURCE_DIR}/src/%s_SWIG/%sDC.py %s
1534 + COMMAND ${DOXYGEN_EXECUTABLE} doxyfile
1535 + COMMAND ${PYTHON_EXECUTABLE} -c "import os; os.remove(r'''${CMAKE_BINARY_DIR}/src/%s_SWIG/%s.py''')"
1536 + COMMAND ${PYTHON_EXECUTABLE} -c "import shutil, sys; sys.path.append(r'''%s'''); shutil.rmtree(r'''%s''', True); import copytree1; copytree1.copytree(r'''%s''', r'''%s'''); shutil.copy(r'''%s''', r'''%s'''); shutil.copy(r'''${CMAKE_CURRENT_SOURCE_DIR}/images/geomscreen.png''', r'''%s''')"
1538 + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
1539 + )"""%(str, upmod, tmp, upmod, tmp, tmp, upmod, tmp, copytree_src, doc_tui_destination, doc_source, doc_tui_destination, head_source, doc_tui_destination, doc_tui_destination))
1542 + # convert the SUBDIRS in cmake grammar
1544 + if 1: # self.__thedict__.has_key("SUBDIRS"):
1545 + newlines.append(r'''
1546 + FOREACH(dir ${SUBDIRS})
1547 + IF(NOT dir STREQUAL .)
1548 + ADD_SUBDIRECTORY(${dir})
1549 + ENDIF(NOT dir STREQUAL .)
1550 + ENDFOREACH(dir ${SUBDIRS})
1556 + for key in ["lib_LTLIBRARIES", "noinst_LTLIBRARIES", "salomepyexec_LTLIBRARIES"]:
1557 + if self.__thedict__.has_key(key):
1558 + self.addLibTarget(key, newlines)
1564 + for key in ["bin_PROGRAMS", "check_PROGRAMS"]:
1565 + if self.__thedict__.has_key(key):
1566 + self.addBinTarget(key, newlines)
1572 + if self.__thedict__.has_key("BASEIDL_FILES"):
1573 + if not self.__thedict__.has_key("IDL_FILES"):
1574 + self.__thedict__["IDL_FILES"] = self.__thedict__["BASEIDL_FILES"]
1575 + newlines.append('''
1576 + SET(IDL_FILES ${BASEIDL_FILES})
1585 + if self.__thedict__.has_key(key):
1586 + if self.module == "kernel":
1587 + newlines.append('''
1588 + SET(IDL_FILES ${IDL_FILES} Calcium_Ports.idl)
1591 + newlines.append('''
1592 + FOREACH(input ${IDL_FILES})
1593 + STRING(REGEX REPLACE ".idl" "" base ${input})
1594 + SET(src ${CMAKE_CURRENT_BINARY_DIR}/${base}SK.cc)
1595 + SET(outputs ${src})
1596 + SET(dynsrc ${CMAKE_CURRENT_BINARY_DIR}/${base}DynSK.cc)
1597 + SET(outputs ${outputs} ${dynsrc})
1598 + SET(inc ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh)
1599 + SET(outputs ${outputs} ${inc})
1600 + IF(input STREQUAL Calcium_Ports.idl)
1601 + SET(input ${CMAKE_CURRENT_BINARY_DIR}/${input})
1602 + ELSE(input STREQUAL Calcium_Ports.idl)
1603 + SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
1604 + ENDIF(input STREQUAL Calcium_Ports.idl)
1605 + SET(flags ${IDLCXXFLAGS} ${OMNIORB_IDLCXXFLAGS})
1606 + STRING(REGEX MATCH "-bcxx" ISBCXX ${flags})
1608 + SET(flags -bcxx ${flags})
1610 + ADD_CUSTOM_COMMAND(
1612 + COMMAND ${OMNIORB_IDL} ${flags} ${input}
1613 + MAIN_DEPENDENCY ${input}
1616 + newlines.append('''
1617 + install(FILES ${input} DESTINATION idl/salome)
1619 + if self.module not in ["pyhello"]:
1620 + newlines.append('''
1621 + SET(IDL_HEADER ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh)
1622 + install(FILES ${IDL_HEADER} DESTINATION include/salome)
1625 + newlines.append('''
1626 + INSTALL(CODE "SET(IDL_FILE ${input})")
1627 + INSTALL(CODE "SET(DIR ${salomepythondir})")
1629 + INSTALL(CODE "SET(DIR bin/salome)")
1631 + INSTALL(CODE "SET(CMAKE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})")
1632 + INSTALL(CODE "SET(OMNIORB_IDL_PYTHON ${OMNIORB_IDL_PYTHON})")
1635 + FOREACH(f ${IDLPYFLAGS})
1636 + SET(flags "${flags} ${f}")
1637 + ENDFOREACH(f ${IDLPYFLAGS})
1638 + STRING(REGEX MATCH "-bpython" ISBPYTHON ${flags})
1640 + SET(flags "-bpython ${flags}")
1641 + ENDIF(NOT ISBPYTHON)
1642 + SET(IDLPYFLAGS ${flags})
1643 + STRING(REPLACE "\\\\" "/" IDLPYFLAGS ${IDLPYFLAGS})
1644 + INSTALL(CODE "SET(IDLPYFLAGS ${IDLPYFLAGS})")
1647 + if self.module == "kernel":
1648 + newlines.append('''
1649 + INSTALL(SCRIPT ${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/install_python_from_idl.cmake)
1652 + newlines.append('''
1653 + STRING(REPLACE "\\\\" "/" KERNEL_ROOT_DIR ${KERNEL_ROOT_DIR})
1654 + INSTALL(SCRIPT ${KERNEL_ROOT_DIR}/salome_adm/cmake_files/install_python_from_idl.cmake)
1657 + newlines.append('''
1658 + ENDFOREACH(input ${IDL_FILES})
1664 + for key in ["SWIG_SRC", "SWIGSOURCES", "SWIG_DEF"]:
1665 + if self.__thedict__.has_key(key):
1666 + newlines.append('''
1667 + SET(SWIG_SOURCES ${%s})
1669 + self.__thedict__["SWIG_SOURCES"] = self.__thedict__[key]
1675 + if self.__thedict__.has_key("SWIG_SOURCES"):
1676 + newlines.append('''
1677 + IF(SWIG_SOURCES MATCHES ";")
1678 + STRING(REGEX REPLACE ";.*" "" SWIG_SOURCES_FIRST "${SWIG_SOURCES}")
1679 + ELSE(SWIG_SOURCES MATCHES ";")
1680 + SET(SWIG_SOURCES_FIRST "${SWIG_SOURCES}")
1681 + ENDIF(SWIG_SOURCES MATCHES ";")
1683 + FOREACH(f ${SWIG_FLAGS} ${MY_SWIG_FLAGS})
1686 + LIST(FIND flags ${f} index)
1687 + IF(NOT index EQUAL -1)
1689 + ENDIF(NOT index EQUAL -1)
1692 + SET(flags ${flags} ${f})
1694 + ENDFOREACH(f ${SWIG_FLAGS} ${MY_SWIG_FLAGS})
1695 + ADD_CUSTOM_COMMAND(
1696 + OUTPUT ${build_srcs}
1697 + COMMAND ${SWIG_EXECUTABLE} ${flags} -o ${build_srcs} ${CMAKE_CURRENT_SOURCE_DIR}/${SWIG_SOURCES_FIRST}
1698 + MAIN_DEPENDENCY ${SWIG_SOURCES}
1705 + if self.__thedict__.has_key("BUILT_SOURCES"):
1706 + newlines.append('''
1707 + FOREACH(f ${BUILT_SOURCES})
1708 + IF(f MATCHES "WRAP.cxx$")
1709 + # STRING(REGEX REPLACE "WRAP.cxx" "WRAP.h" inc ${f})
1710 + STRING(REGEX REPLACE "WRAP.cxx" ".i" input ${f})
1711 + ADD_CUSTOM_COMMAND(
1712 + OUTPUT ${f} # ${inc}
1713 + COMMAND ${SWIG_EXECUTABLE} ${SWIG_FLAGS} ${SWIG_PYTHON_INCLUDES} ${MYSWIG_FLAGS} -o ${f} ${CMAKE_CURRENT_SOURCE_DIR}/${input}
1714 + MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${input}
1716 + ENDIF(f MATCHES "WRAP.cxx$")
1717 + ENDFOREACH(f ${BUILT_SOURCES})
1724 + if self.__thedict__.has_key(key):
1725 + newlines.append('''
1726 + FOREACH(output ${MOC_FILES})
1728 + if self.module in ["jobmanager", "yacs"]:
1729 + newlines.append('''
1730 + STRING(REGEX REPLACE _moc.cxx .hxx input ${output})
1733 + newlines.append('''
1734 + STRING(REGEX REPLACE _moc.cxx .h input ${output})
1737 + newlines.append('''
1738 + SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
1739 + SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output})
1740 + ADD_CUSTOM_COMMAND(
1742 + COMMAND ${QT_MOC_EXECUTABLE} ${MOC_FLAGS} ${input} -o ${output}
1743 + MAIN_DEPENDENCY ${input}
1745 + ENDFOREACH(output ${MOC_FILES})
1752 + if self.__thedict__.has_key(key):
1753 + newlines.append('''
1754 + FOREACH(output ${UIC_FILES})
1755 + STRING(REPLACE "ui_" "" input ${output})
1756 + STRING(REPLACE ".h" ".ui" input ${input})
1757 + SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
1758 + SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output})
1759 + ADD_CUSTOM_COMMAND(
1761 + COMMAND ${QT_UIC_EXECUTABLE} -o ${output} ${input}
1762 + MAIN_DEPENDENCY ${input}
1764 + ENDFOREACH(output ${UIC_FILES})
1771 + if self.__thedict__.has_key(key):
1772 + newlines.append('''
1773 + FOREACH(output ${QRC_FILES})
1774 + STRING(REGEX REPLACE "qrc_" "" input ${output})
1775 + STRING(REGEX REPLACE ".cxx" ".qrc" input ${input})
1776 + STRING(REGEX REPLACE ".qrc" "" name ${input})
1777 + SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
1778 + SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output})
1779 + ADD_CUSTOM_COMMAND(
1781 + COMMAND ${QT_RCC_EXECUTABLE} ${input} -o ${output} -name ${name}
1782 + MAIN_DEPENDENCY ${input}
1784 + ENDFOREACH(output ${QRC_FILES})
1791 + if self.__thedict__.has_key(key):
1792 + newlines.append('''
1793 + FOREACH(input ${SIP_FILES})
1794 + SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
1796 + FOREACH(out ${SIP_SRC})
1797 + SET(output ${output} ${CMAKE_CURRENT_BINARY_DIR}/${out})
1798 + ENDFOREACH(out ${SIP_SRC})
1799 + ADD_CUSTOM_COMMAND(
1801 + COMMAND ${SIP_EXECUTABLE} ${PYQT_SIPFLAGS} ${input}
1802 + MAIN_DEPENDENCY ${input}
1804 + ENDFOREACH(input ${SIP_FILES})
1811 + for key in ["TESTS"]:
1812 + if self.__thedict__.has_key(key):
1813 + newlines.append('''
1814 + SET(UNIT_TEST_PROG ${%s})
1816 + self.__thedict__["UNIT_TEST_PROG"] = self.__thedict__[key]
1819 + key = "UNIT_TEST_PROG"
1820 + if self.__thedict__.has_key(key):
1821 + newlines.append('''
1822 + FOREACH(input ${UNIT_TEST_PROG})
1823 + GET_FILENAME_COMPONENT(ext ${input} EXT)
1824 + IF(ext STREQUAL .py)
1825 + SET(test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${input})
1826 + ELSE(ext STREQUAL .py)
1828 + SET(test ${CMAKE_CURRENT_BINARY_DIR}/${input}_exe.exe)
1830 + SET(test ${CMAKE_CURRENT_BINARY_DIR}/${input}_exe)
1832 + ENDIF(ext STREQUAL .py)
1833 + ADD_TEST(${input} ${test})
1834 + SET(fail_regex "KO")
1835 + SET_PROPERTY(TEST ${input} PROPERTY FAIL_REGULAR_EXPRESSION "${fail_regex}")
1837 + # ADD_TEST(${input}_valgrind valgrind ${test})
1838 + # SET_PROPERTY(TEST ${input}_valgrind PROPERTY FAIL_REGULAR_EXPRESSION "${fail_regex}")
1839 + # SET_PROPERTY(TEST ${input}_valgrind PROPERTY PASS_REGULAR_EXPRESSION "no leaks are possible")
1841 + ENDFOREACH(input ${UNIT_TEST_PROG})
1846 + # Treat the install targets
1848 + resdir = self.module
1849 + if resdir == "hxx2salome":
1850 + resdir = self.hxxmodule
1853 + "salomeadmux_DATA" : "salome_adm/unix",
1854 + "dist_salomeadmux_DATA" : "salome_adm/unix",
1855 + "dist_salome_cmake_DATA" : "salome_adm/cmake_files",
1856 + "dist_salomem4_DATA" : "salome_adm/unix/config_files",
1857 + "dist_salome4depr_DATA" : "salome_adm/unix/config_files/DEPRECATED",
1858 + "dist_admlocalm4_DATA" : "adm_local/unix/config_files",
1859 + "dist_admlocal_cmake_DATA" : "adm_local/cmake_files",
1860 + "salomeinclude_DATA" : "include/salome",
1861 + "salomeinclude_HEADERS" : "include/salome",
1862 + "nodist_salomeinclude_HEADERS" : "include/salome",
1863 + "dist_salomeres_DATA" : "share/salome/resources/%s"%(resdir),
1864 + "nodist_salomeres_DATA" : "share/salome/resources/%s"%(resdir),
1865 + "nodist_salomeres_SCRIPTS" : "share/salome/resources/%s"%(resdir),
1866 + "dist_salomescript_SCRIPTS" : "bin/salome",
1867 + "dist_salomescript_DATA" : "bin/salome",
1868 + "dist_salomescript_PYTHON" : "bin/salome",
1869 + "nodist_salomescript_DATA" : "bin/salome",
1870 + "salomepython_PYTHON" : "${salomepythondir}",
1871 + "nodist_salomepython_PYTHON" : "${salomepythondir}",
1872 + "dist_salomepython_DATA" : "${salomepythondir}",
1873 + "sharedpkgpython_PYTHON" : "${salomepythondir}/shared_modules",
1874 + "salomepypkg_PYTHON" : "${salomepypkgdir}",
1875 + "mypkgpython_PYTHON" : "${mypkgpythondir}",
1877 + if self.module == "jobmanager":
1878 + d["bin_SCRIPTS"] = "bin"
1880 + if self.module == "medfile":
1882 + "include_HEADERS" : "include",
1883 + "nodist_include_HEADERS" : "include",
1884 + "bin_SCRIPTS" : "bin",
1885 + "doc_DATA" : "${docdir}",
1888 + if self.module == "netgen":
1890 + "include_HEADERS" : "include",
1891 + "noinst_HEADERS" : "share/netgen/include",
1892 + "dist_pkgdata_DATA" : "share/netgen",
1893 + "dist_doc_DATA" : "share/doc/netgen",
1896 + for key, value in d.items():
1897 + if self.__thedict__.has_key(key):
1898 + self.addInstallTarget(key, value, newlines)
1905 + def setLibAdd(self, key, newlines):
1907 + newlines.append(r'''
1911 + newlines.append(r'''
1914 + SET(targets ${targets} MEFISTO2D)
1915 + FOREACH(target ${targets})
1916 + IF(name STREQUAL ${target})
1917 + SET(dir $ENV{F2CHOME})
1918 + STRING(REPLACE "\\\\" "/" dir ${dir})
1919 + SET(libadd ${libadd} ${dir}/LIBF77.lib)
1920 + SET(libadd ${libadd} ${dir}/LIBI77.lib)
1921 + ENDIF(name STREQUAL ${target})
1922 + ENDFOREACH(target ${targets})
1926 + newlines.append(r'''
1927 + SET(libs ${PLATFORM_LIBADD} ${PLATFORM_LDFLAGS} ${LDADD} ${${amname}_LIBADD} ${${amname}_LDADD} ${${amname}_LDFLAGS})
1928 + FOREACH(lib SALOMEBasics SalomeBatch)
1929 + IF(name STREQUAL lib)
1930 + SET(libs ${libs} ${PTHREAD_LIBS})
1931 + ENDIF(name STREQUAL lib)
1932 + ENDFOREACH(lib SALOMEBasics SalomeBatch)
1935 + newlines.append(r'''
1936 + FOREACH(lib ${libs})
1937 + GET_FILENAME_COMPONENT(ext ${lib} EXT)
1938 + IF(ext STREQUAL .la)
1939 + GET_FILENAME_COMPONENT(lib ${lib} NAME_WE)
1940 + STRING(REGEX REPLACE "^lib" "" lib ${lib})
1941 + ENDIF(ext STREQUAL .la)
1943 + SET(vars ${vars} -no-undefined)
1944 + SET(vars ${vars} -lvtkWidgets)
1946 + SET(vars ${vars} -module)
1947 + SET(vars ${vars} -Wl,-E)
1948 + SET(vars ${vars} -Xlinker)
1949 + SET(vars ${vars} -export-dynamic)
1950 + SET(vars ${vars} -lm)
1951 + SET(vars ${vars} -lboost_thread)
1952 + SET(vars ${vars} -lboost_signals)
1953 + SET(vars ${vars} -pthread -lpthread -ldl)
1955 + FOREACH(v ${vars})
1956 + IF(lib STREQUAL v)
1958 + ENDIF(lib STREQUAL v)
1959 + ENDFOREACH(v ${vars})
1962 + STRING(REGEX MATCH "^-lQt" test ${lib})
1965 + SET(libadd ${libadd} ${lib})
1967 + ENDFOREACH(lib ${libs})
1968 + TARGET_LINK_LIBRARIES(${name} ${libadd})
1971 + newlines.append(r'''
1974 + SET(targets ${targets} MEFISTO2D)
1975 + FOREACH(target ${targets})
1976 + IF(name STREQUAL ${target})
1977 + IF(CMAKE_BUILD_TYPE STREQUAL Debug)
1978 + SET_TARGET_PROPERTIES(${name} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:MSVCRT")
1979 + ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
1980 + ENDIF(name STREQUAL ${target})
1981 + ENDFOREACH(target ${targets})
1987 + def setCompilationFlags(self, key, newlines):
1988 + newlines.append(r'''
1992 + SET(targets ${targets} SalomeIDLKernel)
1993 + SET(targets ${targets} SalomeDS)
1994 + SET(targets ${targets} SALOMEDSTest)
1995 + SET(targets ${targets} SALOMEDS_Client_exe)
1996 + SET(targets ${targets} SalomeIDLGEOM)
1997 + SET(targets ${targets} GEOMEngine)
1998 + SET(targets ${targets} MEDEngine)
1999 + SET(targets ${targets} SMESHEngine)
2000 + SET(targets ${targets} SMESH)
2001 + FOREACH(target ${targets})
2002 + IF(name STREQUAL ${target})
2003 + SET(var ${var} -DNOGDI)
2004 + ENDIF(name STREQUAL ${target})
2005 + ENDFOREACH(target ${targets})
2009 + if self.module in ["medfile", "yacs"]:
2010 + newlines.append(r'''
2012 + SET(var ${var} -DNOGDI)
2017 + newlines.append(r'''
2020 + SET(targets ${targets} MEFISTO2D)
2021 + FOREACH(target ${targets})
2022 + IF(name STREQUAL ${target})
2023 + SET(dir $ENV{F2CHOME})
2024 + STRING(REPLACE "\\\\" "/" dir ${dir})
2025 + SET(var ${var} -I${dir})
2026 + SET(var ${var} -DF2C_BUILD)
2027 + ENDIF(name STREQUAL ${target})
2028 + ENDFOREACH(target ${targets})
2032 + if self.module in ["geom", "med"]:
2033 + newlines.append(r'''
2034 + SET(var ${var} -I${CMAKE_CURRENT_SOURCE_DIR})
2035 + SET(var ${var} -I${CMAKE_CURRENT_BINARY_DIR})
2038 + newlines.append(r'''
2039 + SET(var ${var} ${AM_CPPFLAGS})
2040 + SET(var ${var} ${AM_CXXFLAGS})
2043 + newlines.append(r'''
2044 + IF(type STREQUAL STATIC)
2045 + SET(var ${var} -fPIC)
2046 + ENDIF(type STREQUAL STATIC)
2049 + if self.module == "yacs":
2050 + newlines.append(r'''
2051 + SET(var ${var} -DYACS_PTHREAD)
2052 + SET(var ${var} -DCMAKE_BUILD)
2053 + SET(var ${var} -DSALOME_KERNEL)
2054 + SET(var ${var} -DDSC_PORTS)
2055 + SET(var ${var} -DOMNIORB)
2058 + newlines.append(r'''
2059 + SET(var ${var} ${PLATFORM_CPPFLAGS})
2060 + SET(var ${var} ${PTHREAD_CFLAGS})
2061 + SET(var ${var} ${${amname}_CPPFLAGS})
2062 + SET(var ${var} ${${amname}_CXXFLAGS})
2063 + SET(var ${var} ${${amname}_CFLAGS})
2066 + SET(vars ${vars} -include SALOMEconfig.h)
2067 + SET(vars ${vars} -ftemplate-depth-32)
2068 + SET(vars ${vars} -fPIC)
2069 + SET(vars ${vars} -g)
2073 + FOREACH(v ${vars})
2076 + ENDIF(f STREQUAL v)
2077 + ENDFOREACH(v ${vars})
2079 + string(REGEX MATCH "^-I" test_include ${f})
2081 + string(REGEX REPLACE "^-I" "" include_dir ${f})
2083 + if(include_dir STREQUAL /usr/include)
2084 + else(include_dir STREQUAL /usr/include)
2085 + string(REGEX MATCH "^\\." test_dot ${include_dir})
2087 + set(include_dir ${CMAKE_CURRENT_BINARY_DIR}/${include_dir})
2089 + include_directories(${include_dir})
2090 + endif(include_dir STREQUAL /usr/include)
2091 + endif(include_dir)
2092 + else(test_include)
2093 + SET(flags "${flags} ${f}")
2094 + endif(test_include)
2096 + ENDFOREACH(f ${var})
2097 + SET_TARGET_PROPERTIES(${name} PROPERTIES COMPILE_FLAGS "${flags}")
2101 + def addLibTarget(self, key, newlines):
2102 + newlines.append(r'''
2103 + FOREACH(amname ${%s})
2106 + # Replace .la by _la ...
2108 + newlines.append(r'''
2109 + STRING(REPLACE .la _la amname ${amname})
2112 + # Remove the _la for the cmake name
2114 + newlines.append(r'''
2115 + STRING(LENGTH ${amname} len)
2116 + MATH(EXPR newlen "${len}-3")
2117 + STRING(SUBSTRING ${amname} 0 ${newlen} name)
2120 + # Does the target begins with lib ??
2121 + # If yes, remove lib at beginning for cmake name
2123 + newlines.append(r'''
2124 + STRING(REGEX MATCH "^lib" BEGIN_WITH_lib ${name})
2125 + IF(BEGIN_WITH_lib)
2126 + STRING(LENGTH ${name} len)
2127 + MATH(EXPR newlen "${len}-3")
2128 + STRING(SUBSTRING ${name} 3 ${newlen} name)
2129 + ENDIF(BEGIN_WITH_lib)
2132 + # Does the target is an idl library
2134 + newlines.append(r'''
2135 + STRING(REGEX MATCH "IDL" ISIDL ${name})
2138 + # Set the type of the library
2140 + newlines.append(r'''
2151 + if key == "noinst_LTLIBRARIES":
2152 + newlines.append(r'''
2161 + # Set sources for the library
2163 + newlines.append(r'''
2165 + FOREACH(src ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
2166 + GET_FILENAME_COMPONENT(ext ${src} EXT)
2167 + IF(ext STREQUAL .f)
2168 + IF(src STREQUAL trte.f)
2169 + SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${src})
2170 + STRING(REPLACE ".f" ".c" src ${src})
2171 + SET(src ${CMAKE_CURRENT_BINARY_DIR}/${src})
2172 + SET(output ${src})
2175 + IF(CMAKE_SIZEOF_VOID_P STREQUAL 8)
2176 + SET(cmd valgrind f2c) # f2c seems to be buggy on 64 bits ... but with valgrind, it works :)
2178 + ENDIF(NOT WINDOWS)
2179 + ADD_CUSTOM_COMMAND(
2181 + COMMAND ${cmd} ${input}
2182 + MAIN_DEPENDENCY ${input}
2184 + ELSE(src STREQUAL trte.f)
2185 + SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${src})
2186 + STRING(REPLACE ".f" ".o" src ${src})
2187 + SET(src ${CMAKE_CURRENT_BINARY_DIR}/${src})
2188 + SET(output ${src})
2194 + ADD_CUSTOM_COMMAND(
2196 + COMMAND ${F77} -c -o ${output} ${input}
2197 + MAIN_DEPENDENCY ${input}
2199 + ENDIF(src STREQUAL trte.f)
2200 + ENDIF(ext STREQUAL .f)
2201 + SET(srcs ${srcs} ${src})
2202 + ENDFOREACH(src ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
2204 + newlines.append(r'''
2205 + SET(l ${nodist_${amname}_SOURCES} ${UIC_FILES})
2207 + SET(src ${CMAKE_CURRENT_BINARY_DIR}/${f})
2208 + SET(srcs ${srcs} ${src})
2209 + ENDFOREACH(f ${l})
2211 + newlines.append(r'''
2213 + SET(l ${nodist_${amname}_SOURCES} ${BUILT_SOURCES})
2215 + GET_FILENAME_COMPONENT(ext ${f} EXT)
2216 + IF(ext STREQUAL .py)
2218 + ELSE(ext STREQUAL .py)
2219 + SET(fff ${CMAKE_CURRENT_BINARY_DIR}/${f})
2220 + ENDIF(ext STREQUAL .py)
2223 + LIST(FIND build_srcs ${fff} index)
2224 + IF(NOT index EQUAL -1)
2226 + ENDIF(NOT index EQUAL -1)
2230 + SET(build_srcs ${build_srcs} ${fff})
2232 + ENDFOREACH(f ${l})
2235 + # Add the library to cmake
2237 + newlines.append(r'''
2238 + ADD_LIBRARY(${name} ${type} ${srcs})
2241 + # The compilation flags
2243 + self.setCompilationFlags(key, newlines)
2245 + newlines.append(r'''
2246 + SET_TARGET_PROPERTIES(${name} PROPERTIES VERSION ${VERSION_INFO} SOVERSION ${SOVERSION_INFO})
2249 + self.setLibAdd(key, newlines)
2251 + if 1: # key != "noinst_LTLIBRARIES":
2252 + newlines.append(r'''
2255 + newlines.append(r'''
2257 + IF(${key} STREQUAL noinst_LTLIBRARIES)
2259 + ENDIF(${key} STREQUAL noinst_LTLIBRARIES)
2261 + if self.module == "netgen" :
2262 + newlines.append(r'''
2263 + IF(${key} STREQUAL noinst_LTLIBRARIES)
2267 + ENDIF(${key} STREQUAL noinst_LTLIBRARIES)
2270 + newlines.append(r'''
2273 + if self.module in ["medfile", "netgen"]:
2274 + newlines.append(r'''
2278 + newlines.append(r'''
2279 + SET(DEST lib/salome)
2282 + newlines.append(r'''
2283 + IF(BEGIN_WITH_lib)
2284 + INSTALL(TARGETS ${name} DESTINATION ${DEST})
2286 + if self.module == "gui":
2287 + newlines.append(r'''
2288 + FOREACH(lib SalomePyQt)
2289 + IF(name STREQUAL lib)
2291 + IF(CMAKE_BUILD_TYPE STREQUAL Release)
2292 + INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME ${name}.pyd)
2293 + ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
2294 + INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME ${name}_d.pyd)
2295 + ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
2297 + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so DESTINATION ${DEST} RENAME ${name}.so)
2299 + ENDIF(name STREQUAL lib)
2300 + ENDFOREACH(lib SalomePyQt)
2301 + FOREACH(lib SalomePy)
2302 + IF(name STREQUAL lib)
2304 + IF(CMAKE_BUILD_TYPE STREQUAL Release)
2305 + INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME lib${name}.pyd)
2306 + ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
2307 + INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME lib${name}_d.pyd)
2308 + ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
2310 + ENDIF(name STREQUAL lib)
2311 + ENDFOREACH(lib SalomePy)
2314 + if self.module == "geom":
2315 + newlines.append(r'''
2317 + STRING(REGEX MATCH "Export" ISExport ${name})
2319 + INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME lib${name}.dll)
2321 + STRING(REGEX MATCH "Import" ISImport ${name})
2323 + INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME lib${name}.dll)
2328 + newlines.append(r'''
2329 + ELSE(BEGIN_WITH_lib)
2331 + newlines.append(r'''
2333 + INSTALL(TARGETS ${name} DESTINATION ${salomepythondir})
2334 + IF(CMAKE_BUILD_TYPE STREQUAL Release)
2335 + INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${salomepythondir}/${name}.dll DESTINATION ${salomepythondir} RENAME ${name}.pyd)
2336 + ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
2337 + INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${salomepythondir}/${name}.dll DESTINATION ${salomepythondir} RENAME ${name}_d.pyd)
2338 + ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
2340 + GET_TARGET_PROPERTY(version ${name} VERSION)
2341 + GET_TARGET_PROPERTY(soversion ${name} SOVERSION)
2342 + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION ${salomepythondir} RENAME ${name}.so.${version})
2343 + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION ${salomepythondir} RENAME ${name}.so.${soversion})
2344 + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION ${salomepythondir} RENAME ${name}.so)
2347 + newlines.append(r'''
2348 + ENDIF(BEGIN_WITH_lib)
2350 + newlines.append(r'''
2355 + newlines.append(r'''
2356 + ENDFOREACH(amname ${%s})
2361 + def addBinTarget(self, key, newlines):
2363 + newlines.append(r'''
2364 + FOREACH(amname ${%s})
2367 + newlines.append(r'''
2370 + if key == "check_PROGRAMS":
2371 + newlines.append(r'''
2373 + STRING(REGEX MATCH ${amname} is_present ${bin_PROGRAMS})
2377 + ENDIF(bin_PROGRAMS)
2380 + newlines.append(r'''
2384 + newlines.append(r'''
2385 + SET(name "${amname}_exe")
2386 + SET(srcs ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
2387 + SET(l ${nodist_${amname}_SOURCES})
2389 + SET(src ${CMAKE_CURRENT_BINARY_DIR}/${f})
2390 + SET(srcs ${srcs} ${src})
2391 + ENDFOREACH(f ${l})
2392 + LIST(LENGTH srcs nb)
2394 + ADD_EXECUTABLE(${name} ${srcs})
2397 + self.setCompilationFlags(key, newlines)
2399 + self.setLibAdd(key, newlines)
2401 + if self.module in ["jobmanager", "medfile", "netgen"]:
2402 + newlines.append(r'''
2406 + newlines.append(r'''
2407 + SET(DEST bin/salome)
2411 + if key == "bin_PROGRAMS":
2412 + newlines.append(r'''
2414 + INSTALL(TARGETS ${name} DESTINATION ${DEST})
2415 + INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.exe DESTINATION ${DEST} RENAME ${amname}.exe)
2416 + INSTALL(CODE "FILE(REMOVE ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.exe)")
2419 + SET(PERMS ${PERMS} OWNER_READ OWNER_WRITE OWNER_EXECUTE)
2420 + SET(PERMS ${PERMS} GROUP_READ GROUP_EXECUTE)
2421 + SET(PERMS ${PERMS} WORLD_READ WORLD_EXECUTE)
2422 + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${name} DESTINATION ${DEST} PERMISSIONS ${PERMS} RENAME ${amname})
2427 + newlines.append(r'''
2431 + newlines.append(r'''
2434 + newlines.append(r'''
2435 + ENDFOREACH(amname ${%s})
2440 + def addInstallTarget(self, key, destination, newlines):
2441 + newlines.append(r"FOREACH(f ${%s})"%(key))
2442 + newlines.append(r'''
2444 + '''%(destination))
2445 + newlines.append(r'''
2446 + STRING(COMPARE EQUAL ${f} SALOMEconfig.h.in test_SALOMEconfig.h.in)
2447 + IF(test_SALOMEconfig.h.in)
2448 + INSTALL(FILES SALOMEconfig.ref.in DESTINATION ${DEST} RENAME SALOMEconfig.h.in)
2449 + ELSE(test_SALOMEconfig.h.in)
2450 + SET(dummy dummy-NOTFOUND)
2451 + MARK_AS_ADVANCED(dummy)
2452 + # FILE(REMOVE ${CMAKE_INSTALL_PREFIX}/${DEST}/${f})
2453 + FIND_FILE(dummy ${f} PATHS ${CMAKE_CURRENT_SOURCE_DIR} NO_DEFAULT_PATH)
2456 + if key in ['dist_salomescript_SCRIPTS']:
2457 + newlines.append(r'''
2459 + SET(PERMS ${PERMS} OWNER_READ OWNER_WRITE OWNER_EXECUTE)
2460 + SET(PERMS ${PERMS} GROUP_READ GROUP_EXECUTE)
2461 + SET(PERMS ${PERMS} WORLD_READ WORLD_EXECUTE)
2462 + INSTALL(FILES ${f} DESTINATION ${DEST} PERMISSIONS ${PERMS})
2465 + newlines.append(r'''
2466 + GET_FILENAME_COMPONENT(ext ${f} EXT)
2467 + IF(ext STREQUAL .py)
2468 + IF(DEST STREQUAL bin/salome)
2470 + SET(PERMS ${PERMS} OWNER_READ OWNER_WRITE OWNER_EXECUTE)
2471 + SET(PERMS ${PERMS} GROUP_READ GROUP_EXECUTE)
2472 + SET(PERMS ${PERMS} WORLD_READ WORLD_EXECUTE)
2473 + INSTALL(FILES ${f} DESTINATION ${DEST} PERMISSIONS ${PERMS})
2474 + ELSE(DEST STREQUAL bin/salome)
2475 + INSTALL(FILES ${f} DESTINATION ${DEST})
2476 + ENDIF(DEST STREQUAL bin/salome)
2477 + ELSE(ext STREQUAL .py)
2478 + INSTALL(FILES ${f} DESTINATION ${DEST})
2479 + ENDIF(ext STREQUAL .py)
2482 + newlines.append(r'''
2484 + GET_FILENAME_COMPONENT(ext ${f} EXT)
2485 + IF(ext STREQUAL .qm)
2486 + STRING(REGEX REPLACE .qm .ts input ${f})
2488 + if self.module in ["kernel", "gui", "yacs"]:
2489 + newlines.append(r'''
2490 + SET(input ${CMAKE_CURRENT_SOURCE_DIR}/resources/${input})
2493 + newlines.append(r'''
2494 + SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
2497 + newlines.append(r'''
2498 + SET(output ${CMAKE_CURRENT_BINARY_DIR}/${f})
2499 + # ADD_CUSTOM_COMMAND(
2500 + # OUTPUT ${output}
2501 + # COMMAND ${QT_LRELEASE_EXECUTABLE} ${input} -qm ${output}
2502 + # MAIN_DEPENDENCY ${input}
2504 + EXECUTE_PROCESS(COMMAND ${QT_LRELEASE_EXECUTABLE} ${input} -qm ${output})
2505 + ENDIF(ext STREQUAL .qm)
2506 + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${f} DESTINATION ${DEST})
2508 + ENDIF(test_SALOMEconfig.h.in)
2510 + newlines.append(r'''
2511 + GET_FILENAME_COMPONENT(ext ${f} EXT)
2512 + IF(ext STREQUAL .py)
2513 + INSTALL(CODE "SET(PYTHON_FILE ${f})")
2514 + INSTALL(CODE "SET(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})")
2515 + INSTALL(CODE "SET(DEST ${DEST})")
2516 + INSTALL(CODE "SET(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE})")
2518 + if self.module == "kernel":
2519 + newlines.append('''
2520 + IF(f STREQUAL SALOME_ContainerPy.py)
2521 + ELSE(f STREQUAL SALOME_ContainerPy.py)
2522 + IF(f STREQUAL am2cmake.py)
2523 + ELSE(f STREQUAL am2cmake.py)
2524 + IF(f STREQUAL copytree1.py)
2525 + ELSE(f STREQUAL copytree1.py)
2526 + INSTALL(SCRIPT ${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/install_and_compile_python_file.cmake)
2527 + ENDIF(f STREQUAL copytree1.py)
2528 + ENDIF(f STREQUAL am2cmake.py)
2529 + ENDIF(f STREQUAL SALOME_ContainerPy.py)
2532 + newlines.append('''
2533 + STRING(REPLACE "\\\\" "/" KERNEL_ROOT_DIR ${KERNEL_ROOT_DIR})
2534 + INSTALL(SCRIPT ${KERNEL_ROOT_DIR}/salome_adm/cmake_files/install_and_compile_python_file.cmake)
2537 + newlines.append(r'''
2538 + ENDIF(ext STREQUAL .py)
2540 + newlines.append(r"ENDFOREACH(f ${%s})"%(key))
2543 + def writeListsFile(self):
2544 + f = open(self.listsFile, "w")
2545 + f.write(self.content)
2551 +def convertAmFile(the_root, root, dirs, files, f, module):
2552 + cmake = CMakeFile(the_root, root, dirs, files, f, module)
2553 + cmake.writeListsFile()
2556 +def usage(exit_status):
2557 + from sys import exit
2558 + from sys import argv
2559 + print "Usage: %s --module"%(argv[0])
2563 +if __name__ == "__main__":
2565 + from sys import argv
2566 + if len(argv) != 2:
2571 + if module.find('--') != 0:
2574 + module = module[2:]
2575 + if len(module) == 0:
2579 + from os import getcwd
2580 + the_root = getcwd()
2584 + from os import walk
2585 + for root, dirs, files in walk(the_root):
2587 + # E.A. : Remove 'CVS' in dirs
2588 + # E.A. : It allows to not recurse in CVS dirs
2589 + # E.A. : See os module python documentation
2592 + dirs.remove('CVS')
2593 + except ValueError:
2596 + if "Makefile.am.cmake" in files:
2597 + if "Makefile.am" in files:
2598 + files.remove("Makefile.am")
2602 + from sys import stdout
2604 + if f in ["Makefile.am", "Makefile.am.cmake"]:
2605 + convertAmFile(the_root, root, dirs, files, f, module)
2613 + msg = "%s file has been converted to cmake"%(nok)
2615 + msg = "%s files have been converted to cmake"%(nok)
2618 + stdout.write("\n")
2622 diff -Naur netgen-4.9.13.occ/config.h.in netgen-4.9.13/config.h.in
2623 --- netgen-4.9.13.occ/config.h.in 2010-05-20 23:29:37.000000000 +0000
2624 +++ netgen-4.9.13/config.h.in 2011-04-28 08:21:18.760077010 +0000
2626 #undef PACKAGE_TARNAME
2628 /* Define to the version of this package. */
2629 -#undef PACKAGE_VERSION
2630 +#define PACKAGE_VERSION "4.9.13"
2632 /* Define to 1 if you have the ANSI C header files. */
2634 diff -Naur netgen-4.9.13.occ/libsrc/include/Makefile.am netgen-4.9.13/libsrc/include/Makefile.am
2635 --- netgen-4.9.13.occ/libsrc/include/Makefile.am 2009-08-10 11:40:50.000000000 +0000
2636 +++ netgen-4.9.13/libsrc/include/Makefile.am 2011-04-26 15:48:56.300050773 +0000
2638 -noinst_HEADERS = acisgeom.hpp gprim.hpp meshing.hpp occgeom.hpp \
2639 +noinst_HEADERS_orig = acisgeom.hpp gprim.hpp meshing.hpp occgeom.hpp \
2640 visual.hpp csg.hpp incvis.hpp myadt.hpp opti.hpp geometry2d.hpp \
2641 linalg.hpp mydefs.hpp parallel.hpp stlgeom.hpp mystdlib.h
2643 +noinst_HEADERS = incvis.hpp mydefs.hpp mystdlib.h
2645 include_HEADERS = nginterface.h nginterface_v2.hpp parallelinterface.hpp