--- /dev/null
+diff -Naur netgen-4.9.13.occ/Makefile.am netgen-4.9.13/Makefile.am
+--- netgen-4.9.13.occ/Makefile.am 2009-08-10 11:40:52.000000000 +0000
++++ netgen-4.9.13/Makefile.am 2011-04-26 15:48:32.540050641 +0000
+@@ -2,7 +2,7 @@
+
+ METASOURCES = AUTO
+
+-SUBDIRS = libsrc ng nglib tutorials doc windows
++SUBDIRS = libsrc nglib tutorials doc windows
+
+ # TESTS = ng/netgen -batchmode
+
+diff -Naur netgen-4.9.13.occ/build_cmake netgen-4.9.13/build_cmake
+--- netgen-4.9.13.occ/build_cmake 1970-01-01 00:00:00.000000000 +0000
++++ netgen-4.9.13/build_cmake 2011-04-26 15:16:35.400428886 +0000
+@@ -0,0 +1,9 @@
++#!/bin/sh
++
++CURRENT_DIR=`pwd`
++CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
++cd ${CONF_DIR}
++python cmake/am2cmake.py --netgen
++status=$?
++cd ${CURRENT_DIR}
++exit $status
+diff -Naur netgen-4.9.13.occ/build_cmake.bat netgen-4.9.13/build_cmake.bat
+--- netgen-4.9.13.occ/build_cmake.bat 1970-01-01 00:00:00.000000000 +0000
++++ netgen-4.9.13/build_cmake.bat 2011-04-26 15:16:50.690050021 +0000
+@@ -0,0 +1,2 @@
++
++%PYTHONBIN% cmake\am2cmake.py --netgen
+diff -Naur netgen-4.9.13.occ/cmake/FindCAS.cmake netgen-4.9.13/cmake/FindCAS.cmake
+--- netgen-4.9.13.occ/cmake/FindCAS.cmake 1970-01-01 00:00:00.000000000 +0000
++++ netgen-4.9.13/cmake/FindCAS.cmake 2011-04-26 15:35:58.110362203 +0000
+@@ -0,0 +1,172 @@
++# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
++#
++# This library is free software; you can redistribute it and/or
++# modify it under the terms of the GNU Lesser General Public
++# License as published by the Free Software Foundation; either
++# version 2.1 of the License.
++#
++# This library is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# Lesser General Public License for more details.
++#
++# You should have received a copy of the GNU Lesser General Public
++# License along with this library; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++#
++# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
++#
++
++SET(CASROOT $ENV{CASROOT})
++
++# SET(OCC_VERSION_MAJOR 6)
++# SET(OCC_VERSION_MINOR 3)
++# SET(OCC_VERSION_MAINTENANCE 10)
++
++SET(CAS_CPPFLAGS)
++# SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DOCC_VERSION_MAJOR=${OCC_VERSION_MAJOR})
++# SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DOCC_VERSION_MINOR=${OCC_VERSION_MINOR})
++# SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DOCC_VERSION_MAINTENANCE=${OCC_VERSION_MAINTENANCE})
++SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DLIN -DLINTEL -DCSFDB)
++SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DNo_exception)
++SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DHAVE_CONFIG_H)
++SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -DHAVE_LIMITS_H)
++SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -I${CASROOT}/inc)
++
++IF(CMAKE_SIZEOF_VOID_P STREQUAL 8)
++ SET(CAS_CPPFLAGS ${CAS_CPPFLAGS} -D_OCC64)
++ENDIF(CMAKE_SIZEOF_VOID_P STREQUAL 8)
++
++IF(NOT WINDOWS)
++ FIND_LIBRARY(Xmu Xmu)
++ IF(Xmu)
++ SET(CAS_LDPATH ${Xmu})
++ ENDIF(Xmu)
++ENDIF(NOT WINDOWS)
++
++IF(WINDOWS)
++ IF(CMAKE_BUILD_TYPE STREQUAL Debug)
++ SET(CASROOT_LIBDIR ${CASROOT}/win32/libd)
++ ELSE(CMAKE_BUILD_TYPE STREQUAL Debug)
++ SET(CASROOT_LIBDIR ${CASROOT}/win32/lib)
++ ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
++ELSE(WINDOWS)
++ SET(CASROOT_LIBDIR ${CASROOT}/lib)
++ENDIF(WINDOWS)
++
++FIND_LIBRARY(BinLPlugin BinLPlugin PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(BinPlugin BinPlugin PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(BinTObjPlugin BinTObjPlugin PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(BinXCAFPlugin BinXCAFPlugin PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(FWOSPlugin FWOSPlugin PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(mscmd mscmd PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(PTKernel PTKernel PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(StdLPlugin StdLPlugin PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(StdPlugin StdPlugin PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKAdvTools TKAdvTools PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKBin TKBin PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKBinL TKBinL PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKBinTObj TKBinTObj PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKBinXCAF TKBinXCAF PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKBO TKBO PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKBool TKBool PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKBRep TKBRep PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKCAF TKCAF PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKCDF TKCDF PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKCDLFront TKCDLFront PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKCPPClient TKCPPClient PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKCPPExt TKCPPExt PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKCPPIntExt TKCPPIntExt PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKCPPJini TKCPPJini PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKCSFDBSchema TKCSFDBSchema PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKDCAF TKDCAF PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKDraw TKDraw PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKernel TKernel PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKFeat TKFeat PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKFillet TKFillet PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKG2d TKG2d PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKG3d TKG3d PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKGeomAlgo TKGeomAlgo PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKGeomBase TKGeomBase PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKHLR TKHLR PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKIDLFront TKIDLFront PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKIGES TKIGES PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKLCAF TKLCAF PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKMath TKMath PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKMesh TKMesh PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKMeshVS TKMeshVS PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKNIS TKNIS PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKOffset TKOffset PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKOpenGl TKOpenGl PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKPCAF TKPCAF PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKPLCAF TKPLCAF PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKPrim TKPrim PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKPShape TKPShape PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKService TKService PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKShapeSchema TKShapeSchema PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKShHealing TKShHealing PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKStdLSchema TKStdLSchema PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKStdSchema TKStdSchema PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKSTEP TKSTEP PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKSTEP209 TKSTEP209 PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKSTEPAttr TKSTEPAttr PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKSTEPBase TKSTEPBase PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKSTL TKSTL PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKTCPPExt TKTCPPExt PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKTObj TKTObj PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKTObjDRAW TKTObjDRAW PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKTopAlgo TKTopAlgo PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKTopTest TKTopTest PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKV2d TKV2d PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKV3d TKV3d PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKViewerTest TKViewerTest PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKVRML TKVRML PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKWOK TKWOK PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKWOKTcl TKWOKTcl PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKXCAF TKXCAF PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKXCAFSchema TKXCAFSchema PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKXDEDRAW TKXDEDRAW PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKXDEIGES TKXDEIGES PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKXDESTEP TKXDESTEP PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKXMesh TKXMesh PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKXml TKXml PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKXmlL TKXmlL PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKXmlTObj TKXmlTObj PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKXmlXCAF TKXmlXCAF PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKXSBase TKXSBase PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(TKXSDRAW TKXSDRAW PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(wokcmd wokcmd PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(wokdeliverysteps wokdeliverysteps PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(wokdfltsteps wokdfltsteps PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(wokobjssteps wokobjssteps PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(wokorbixsteps wokorbixsteps PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(woksteps woksteps PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(woktoolscmd woktoolscmd PATHS ${CASROOT_LIBDIR})
++# FIND_LIBRARY(wokutilscmd wokutilscmd PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(XCAFPlugin XCAFPlugin PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(XmlLPlugin XmlLPlugin PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(XmlPlugin XmlPlugin PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(XmlTObjPlugin XmlTObjPlugin PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(XmlXCAFPlugin XmlXCAFPlugin PATHS ${CASROOT_LIBDIR})
++
++SET(CAS_KERNEL ${TKernel} ${TKMath})
++SET(CAS_OCAF ${TKernel} ${TKMath} ${TKCDF} ${TKLCAF})
++SET(CAS_VIEWER ${TKService} ${TKV3d} ${TKG3d} ${TKGeomBase} ${TKBRep})
++SET(CAS_OCAFVIS ${TKCAF} ${TKBRep} ${TKG2d})
++SET(CAS_MODELER ${TKG3d} ${TKGeomBase} ${TKGeomAlgo} ${TKBRep} ${TKTopAlgo} ${TKG2d})
++
++SET(TKV3d_EA ${TKernel} ${TKMath} ${TKV3d})
++SET(TKBool_EA ${TKernel} ${TKMath} ${TKBRep} ${TKG2d} ${TKG3d} ${TKGeomBase} ${TKGeomAlgo} ${TKTopAlgo} ${TKBool})
++SET(TKBRep_EA ${TKernel} ${TKMath} ${TKBRep})
++SET(TKIGES_EA ${TKernel} ${TKMath} ${TKXSBase} ${TKBRep} ${TKIGES})
++SET(TKSTEP_EA ${TKernel} ${TKMath} ${TKXSBase} ${TKBRep} ${TKSTEP})
++SET(TKSTL_EA ${TKernel} ${TKMath} ${TKSTL})
++SET(TKCAF_EA ${TKPrim} ${TKCAF})
++
++SET(TKV3d ${TKV3d_EA})
++SET(TKBool ${TKBool_EA})
++SET(TKBRep ${TKBRep_EA})
++SET(TKIGES ${TKIGES_EA})
++SET(TKSTEP ${TKSTEP_EA})
++SET(TKSTL ${TKSTL_EA})
++SET(TKCAF ${TKCAF_EA})
+diff -Naur netgen-4.9.13.occ/cmake/FindPLATFORM.cmake netgen-4.9.13/cmake/FindPLATFORM.cmake
+--- netgen-4.9.13.occ/cmake/FindPLATFORM.cmake 1970-01-01 00:00:00.000000000 +0000
++++ netgen-4.9.13/cmake/FindPLATFORM.cmake 2011-04-28 08:11:30.203175382 +0000
+@@ -0,0 +1,119 @@
++# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
++#
++# This library is free software; you can redistribute it and/or
++# modify it under the terms of the GNU Lesser General Public
++# License as published by the Free Software Foundation; either
++# version 2.1 of the License.
++#
++# This library is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# Lesser General Public License for more details.
++#
++# You should have received a copy of the GNU Lesser General Public
++# License along with this library; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++#
++# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
++#
++
++MARK_AS_ADVANCED(ISSUE)
++FIND_FILE(ISSUE issue /etc)
++IF(ISSUE)
++ SET(WINDOWS 0)
++ELSE()
++ SET(WINDOWS 1)
++ENDIF(ISSUE)
++
++IF(WINDOWS)
++ SET(MACHINE WINDOWS)
++ELSE(WINDOWS)
++ SET(MACHINE PCLINUX)
++ENDIF(WINDOWS)
++
++SET(CMAKE_INSTALL_PREFIX_ENV $ENV{CMAKE_INSTALL_PREFIX})
++IF(CMAKE_INSTALL_PREFIX_ENV)
++ SET(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX_ENV} CACHE PATH "installation prefix" FORCE)
++ENDIF(CMAKE_INSTALL_PREFIX_ENV)
++
++IF(NOT CMAKE_BUILD_TYPE)
++ SET(CMAKE_BUILD_TYPE $ENV{CMAKE_BUILD_TYPE})
++ENDIF(NOT CMAKE_BUILD_TYPE)
++
++IF(NOT CMAKE_BUILD_TYPE)
++ SET(CMAKE_BUILD_TYPE Release)
++ENDIF(NOT CMAKE_BUILD_TYPE)
++
++IF(WINDOWS)
++ELSE(WINDOWS)
++ SET(ADD_WERROR ON)
++ SET(NAMES ACCEPT_SALOME_WARNINGS ACCEPT_${MODULE}_WARNINGS I_AM_A_TROLL_I_DO_NOT_FIX_${MODULE}_WARNINGS)
++ FOREACH(name ${NAMES})
++ SET(VAL $ENV{${name}})
++ IF(X${VAL} STREQUAL X0)
++ SET(ADD_WERROR ON)
++ ENDIF(X${VAL} STREQUAL X0)
++ IF(X${VAL} STREQUAL X1)
++ SET(ADD_WERROR OFF)
++ ENDIF(X${VAL} STREQUAL X1)
++ ENDFOREACH(name ${NAMES})
++ IF(ADD_WERROR)
++ SET(CMAKE_C_FLAGS "-Werror")
++ SET(CMAKE_CXX_FLAGS "-Werror")
++ ENDIF(ADD_WERROR)
++ENDIF(WINDOWS)
++
++IF(CMAKE_BUILD_TYPE)
++ IF(WINDOWS)
++ MARK_AS_ADVANCED(CLEAR CMAKE_CONFIGURATION_TYPES)
++ SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE} CACHE STRING "compilation types" FORCE)
++ ELSE(WINDOWS)
++ IF(CMAKE_BUILD_TYPE STREQUAL Debug)
++ SET(CMAKE_C_FLAGS_DEBUG "-g")
++ SET(CMAKE_CXX_FLAGS_DEBUG "-g")
++ ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
++ IF(CMAKE_BUILD_TYPE STREQUAL Release)
++ SET(CMAKE_C_FLAGS_RELEASE "-O1 -DNDEBUG")
++ SET(CMAKE_CXX_FLAGS_RELEASE "-O1 -DNDEBUG")
++ ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
++ ENDIF(WINDOWS)
++ENDIF(CMAKE_BUILD_TYPE)
++
++SET(PLATFORM_CPPFLAGS)
++SET(PLATFORM_LDFLAGS)
++SET(PLATFORM_LIBADD)
++IF(WINDOWS)
++ SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} /W0)
++ SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_CRT_SECURE_NO_WARNINGS) # To disable windows warnings for strcpy, fopen, ...
++ SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_SCL_SECURE_NO_WARNINGS) # To disable windows warnings std::copy, std::transform, ...
++ SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -DWNT)
++ SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -DPPRO_NT) # For medfile
++ SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_USE_MATH_DEFINES) # At least for MEDMEM
++ SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_WIN32_WINNT=0x0500) # Windows 2000 or later API is required
++ SET(PLATFORM_LIBADD ${PLATFORM_LIBADD} Ws2_32.lib)
++ SET(PLATFORM_LIBADD ${PLATFORM_LIBADD} Userenv.lib) # At least for GEOM suit
++ELSE(WINDOWS)
++ # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wparentheses)
++ # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wreturn-type)
++ # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wmissing-declarations)
++ # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wunused)
++ # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -Wall)
++ SET(PLATFORM_LIBADD ${PLATFORM_LIBADD} -ldl)
++ENDIF(WINDOWS)
++
++SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -DSIZEOF_FORTRAN_INTEGER=4 -DSIZEOF_LONG=${CMAKE_SIZEOF_VOID_P} -DSIZEOF_INT=4)
++
++# SET(PLATFORM_CPPFLAGS)
++# # # SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -DWNT -D_CRT_SECURE_NO_WARNINGS)
++# # SET(RM del)
++#ELSE(WINDOWS)
++# # SET(RM /bin/rm)
++#ENDIF(WINDOWS)
++
++### SET(PLATFORM_CPPFLAGS ${PLATFORM_CPPFLAGS} -D_DEBUG_)
++
++##SET(RCP rcp)
++##SET(RSH rsh)
++##SET(RCP rcp)
++
++## MESSAGE(FATAL_ERROR "ZZZZZZZ")
+diff -Naur netgen-4.9.13.occ/cmake/am2cmake.py netgen-4.9.13/cmake/am2cmake.py
+--- netgen-4.9.13.occ/cmake/am2cmake.py 1970-01-01 00:00:00.000000000 +0000
++++ netgen-4.9.13/cmake/am2cmake.py 2011-04-28 08:16:50.931646630 +0000
+@@ -0,0 +1,2287 @@
++# -*- coding: iso-8859-1 -*-
++# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
++#
++# This library is free software; you can redistribute it and/or
++# modify it under the terms of the GNU Lesser General Public
++# License as published by the Free Software Foundation; either
++# version 2.1 of the License.
++#
++# This library is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++# Lesser General Public License for more details.
++#
++# You should have received a copy of the GNU Lesser General Public
++# License along with this library; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++#
++# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
++#
++
++import re
++
++# ----
++# A set of regular expressions used ...
++# ----
++
++p_multiline = re.compile(r"""
++\\ # One backslash
++\s* # 0 or more space
++\n # One CR
++""", re.VERBOSE)
++
++p_dollar = re.compile(r"""
++\$\( # a $ then a (
++(?P<val> # open the group val
++[^)]* # the group contain 0 or more non ) characters
++) # close the group
++\) # a ) at the end
++""", re.VERBOSE)
++
++p_arobas = re.compile(r"""
++@ # a @
++(?P<val> # open the group val
++[^@]* # the group contain 0 or more non @ characters
++) # close the group
++@ # a @ at the end
++""", re.VERBOSE)
++
++p_if = re.compile(r"""
++^ # beginning of the string
++\s* # 0 or more space
++if # an if
++\s+ # 1 or more space
++(?P<val> # open the group val
++.+ # the group contain 1 or more non space characters
++) # close the group
++""", re.VERBOSE)
++
++p_else = re.compile(r"""
++^ # beginning of the line
++\s* # 0 or more space
++else #
++\s* # 0 or more space
++""", re.VERBOSE)
++
++p_endif = re.compile(r"""
++^ # beginning of the line
++\s* # 0 or more space
++endif # a endif
++\s* # 0 or more space
++""", re.VERBOSE)
++
++p_attribution = re.compile(r"""
++^ # beginning of the line
++(?P<spaces> # open the group spaces
++\s* # 0 or more space
++) # close the group
++(?P<key> # open the group key
++\w+ # the group contain 1 or more alphanumeric characters
++) # close the group
++\s* # 0 or more space
++(?P<method> # open the group method
++\+? # 0 or 1 +
++= # One =
++) # close the group
++(?P<value> # open the group value
++.* # 0 or more any characters
++) # close the group
++""", re.VERBOSE)
++
++# -----
++
++class CMakeFile(object):
++
++ def __init__(self, the_root, root, dirs, files, f, module):
++ #
++ self.the_root = the_root
++ self.root = root
++ self.dirs = dirs
++ self.files = files
++ self.module = module
++ #
++ from os.path import join
++ self.amFile = join(root, f)
++ self.listsFile = join(root, "CMakeLists.txt")
++ #
++ self.parseFile()
++ #
++ return
++
++ def parseFile(self):
++
++ # --
++ # Read the Makefile.am file
++ # --
++ amFile = self.amFile
++ stream = open(amFile)
++ content = stream.read()
++ stream.close()
++
++ # --
++ # Replace the composed lines separated by "\\n" by an unique line
++ # --
++ content = p_multiline.sub(r' ', content)
++
++ # --
++ # Compatibility netgen plugin
++ # --
++ content = content.replace("../NETGEN/libNETGEN.la", "${NETGEN_LIBS}")
++
++ # --
++ cas_list = [
++ "BinLPlugin",
++ "BinPlugin",
++ "BinTObjPlugin",
++ "BinXCAFPlugin",
++ "FWOSPlugin",
++ "PTKernel",
++ "StdLPlugin",
++ "StdPlugin",
++ "TKAdvTools",
++ "TKBin",
++ "TKBinL",
++ "TKBinTObj",
++ "TKBinXCAF",
++ "TKBO",
++ "TKBool",
++ "TKBRep",
++ "TKCAF",
++ "TKCDF",
++ "TKernel",
++ "TKFeat",
++ "TKFillet",
++ "TKG2d",
++ "TKG3d",
++ "TKGeomAlgo",
++ "TKGeomBase",
++ "TKHLR",
++ "TKIGES",
++ "TKLCAF",
++ "TKMath",
++ "TKMesh",
++ "TKMeshVS",
++ "TKNIS",
++ "TKOffset",
++ "TKOpenGl",
++ "TKPCAF",
++ "TKPLCAF",
++ "TKPrim",
++ "TKPShape",
++ "TKService",
++ "TKShapeSchema",
++ "TKShHealing",
++ "TKStdLSchema",
++ "TKStdSchema",
++ "TKSTEP",
++ "TKSTEP209",
++ "TKSTEPAttr",
++ "TKSTEPBase",
++ "TKSTL",
++ "TKTObj",
++ "TKTopAlgo",
++ "TKV2d",
++ "TKV3d",
++ "TKVRML",
++ "TKXCAF",
++ "TKXCAFSchema",
++ "TKXDEIGES",
++ "TKXDESTEP",
++ "TKXMesh",
++ "TKXml",
++ "TKXmlL",
++ "TKXmlTObj",
++ "TKXmlXCAF",
++ "TKXSBase",
++ "XCAFPlugin",
++ "XmlLPlugin",
++ "XmlPlugin",
++ "XmlTObjPlugin",
++ "XmlXCAFPlugin",
++ ]
++ vtk_list = [
++ "vtkCommonPythonD",
++ "vtkGraphicsPythonD",
++ "vtkImagingPythonD",
++ ]
++ kernel_list = [
++ "CalciumC",
++ "DF",
++ "Launcher",
++ "LifeCycleCORBATest",
++ "NamingServiceTest",
++ "OpUtil",
++ "Registry",
++ "ResourcesManager",
++ "SALOMEBasics",
++ "SalomeCatalog",
++ "SalomeCommunication",
++ "SalomeContainer",
++ "SalomeDatastream",
++ "SalomeDSCContainer",
++ "SalomeDSClient",
++ "SalomeDSCSupervBasic",
++ "SalomeDSCSuperv",
++ "SalomeDSImpl",
++ "SALOMEDSImplTest",
++ "SalomeDS",
++ "SALOMEDSTest",
++ "SalomeGenericObj",
++ "SalomeHDFPersist",
++ "SalomeIDLKernel",
++ "SalomeLauncher",
++ "SalomeLifeCycleCORBA",
++ "SALOMELocalTrace",
++ "SALOMELocalTraceTest",
++ "SalomeLoggerServer",
++ "SalomeMPIContainer",
++ "SalomeNotification",
++ "SalomeNS",
++ "SalomeResourcesManager",
++ "SalomeTestComponentEngine",
++ "SalomeTestMPIComponentEngine",
++ "SALOMETraceCollectorTest",
++ "TOOLSDS",
++ "UtilsTest",
++ "with_loggerTraceCollector",
++ ]
++ gui_list = [
++ "caf",
++ "CAM",
++ "CASCatch",
++ "DDS",
++ "Event",
++ "GLViewer",
++ "LightApp",
++ "LogWindow",
++ "ObjBrowser",
++ "OCCViewer",
++ "OpenGLUtils",
++ "Plot2d",
++ "PyConsole",
++ "PyInterp",
++ "QDS",
++ "qtx",
++ "QxScene",
++ "SalomeApp",
++ "SalomeAppTest",
++ "SalomeIDLGUI",
++ "SalomeObject",
++ "SalomePrs",
++ "SalomePyQtGUILight",
++ "SalomePyQtGUI",
++ "SalomePyQt",
++ "SalomePy",
++ "SalomeSession",
++ "SalomeStyle",
++ "SOCC",
++ "SPlot2d",
++ "std",
++ "SUITApp",
++ "suit",
++ "SUPERVGraph",
++ "SVTK",
++ "ToolsGUI",
++ "ViewerTools",
++ "VTKViewer",
++ ]
++ geom_list = [
++ "AdvancedGUI",
++ "BasicGUI",
++ "BlocksGUI",
++ "BooleanGUI",
++ "BREPExport",
++ "BREPImport",
++ "BuildGUI",
++ "DisplayGUI",
++ "DlgRef",
++ "EntityGUI",
++ "GenerationGUI",
++ "GEOMAlgo",
++ "GEOMArchimede",
++ "GEOMBase",
++ "GEOMbasic",
++ "GEOMClient",
++ "GEOMEngine",
++ "GEOMFiltersSelection",
++ "GEOMimpl",
++ "GEOMObject",
++ "GEOMSketcher",
++ "GEOM",
++ "GEOM_SupervEngine",
++ "GEOMToolsGUI",
++ "GroupGUI",
++ "IGESExport",
++ "IGESImport",
++ "MeasureGUI",
++ "NMTDS",
++ "NMTTools",
++ "OCC2VTK",
++ "OperationGUI",
++ "PrimitiveGUI",
++ "RepairGUI",
++ "SalomeIDLGEOM",
++ "ShHealOper",
++ "STEPExport",
++ "STEPImport",
++ "STLExport",
++ "TransformationGUI",
++ "VTKExport",
++ ]
++ med_list = [
++ "interpkernel",
++ "InterpKernelTest",
++ "MEDClientcmodule",
++ "medcouplingclient",
++ "medcouplingcorba",
++ "medcouplingremapper",
++ "medcoupling",
++ "MEDEngine",
++ "medloader",
++ "MEDMEMCppTest",
++ "MEDMEMImpl",
++ "medmem",
++ "MED",
++ "medsplitter",
++ "MEDSPLITTERTest",
++ "med_V2_1",
++ "MEDWrapperBase",
++ "MEDWrapper",
++ "MEDWrapper_V2_1",
++ "MEDWrapper_V2_2",
++ "paramedcouplingcorba",
++ "paramedloader",
++ "paramedmemcompo",
++ "paramedmem",
++ "ParaMEDMEMTest",
++ "SalomeIDLMED",
++ "SalomeIDLMEDTests",
++ ]
++ smesh_list = [
++ "GeomSelectionTools",
++ "MEFISTO2D",
++ "MeshDriverDAT",
++ "MeshDriverMED",
++ "MeshDriver",
++ "MeshDriverSTL",
++ "MeshDriverUNV",
++ "SalomeIDLSMESH",
++ "SMDS",
++ "SMESHClient",
++ "SMESHControls",
++ "SMESHDS",
++ "SMESHEngine",
++ "SMESHFiltersSelection",
++ "SMESHimpl",
++ "SMESHObject",
++ "SMESH",
++ "StdMeshersEngine",
++ "StdMeshersGUI",
++ "StdMeshers",
++ ]
++ full_list = cas_list + vtk_list
++ full_list += kernel_list + gui_list
++ full_list += geom_list + med_list + smesh_list
++ # --
++ # E.A. : sort by len before substitution ...
++ # Why ? Thing to "-lMEDWrapper" then "-lMEDWrapper_V2_1" substition
++ # And you understand ...
++ # --
++ full_list.sort(cmp = lambda x, y : cmp(len(y), len(x)))
++ # --
++ for key in full_list:
++ content = content.replace("-l%s"%(key), "${%s}"%(key))
++ pass
++
++ # --
++ # Split content in lines to treat each one separately
++ # --
++ lines = content.split('\n')
++
++ # --
++ # newlines contains the lines of the future CMakeLists.txt file
++ # --
++ newlines = []
++
++ # --
++ # opened_ifs is used to deals with nested conditionnals
++ # --
++ opened_ifs = []
++
++ # --
++ # the __thedict__ dictionnary contains key, val
++ # of the Makefile.am file
++ # --
++ self.__thedict__ = {}
++
++ # --
++ # Initialize file ... mainly includes other cmake files
++ # --
++ self.initialize(newlines)
++
++ # --
++ # Do the job for each line
++ # --
++ for line in lines:
++ self.treatLine(line, newlines, opened_ifs)
++ pass
++
++ # --
++ # Finalize file ... it is in here the cmake job is done
++ # --
++ self.finalize(newlines)
++
++ # --
++ # Concatenate newlines into content
++ # --
++ content = '\n'.join(newlines)
++
++ # --
++ # Add a CR at end if necessary
++ # --
++ lines = content.split('\n')
++ # lines = [ l.strip() for l in lines ]
++ if len(lines[-1]) != 0:
++ lines.append('')
++ pass
++ content = '\n'.join(lines)
++
++ # --
++ self.content = content
++
++ # --
++ return
++
++ def initialize(self, newlines):
++ if self.root == self.the_root:
++ # --
++ newlines.append("""
++ CMAKE_MINIMUM_REQUIRED(VERSION 2.4.7 FATAL_ERROR)
++ IF(COMMAND cmake_policy)
++ cmake_policy(SET CMP0003 NEW)
++ ENDIF(COMMAND cmake_policy)
++ """)
++ # --
++ newlines.append("""
++ ENABLE_TESTING()
++ """)
++ # --
++ newlines.append("""
++ SET(MODULE %s)
++ """%(self.module.upper()))
++ # --
++ if self.module == "netgen":
++ newlines.append("""
++ INCLUDE(${CMAKE_SOURCE_DIR}/cmake/FindPLATFORM.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/cmake/FindCAS.cmake)
++ """)
++ else:
++ if self.module == "kernel":
++ newlines.append("""
++ INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindPYTHON.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindHDF5.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindBOOST.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindLIBXML2.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindSWIG.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindMPI.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindLIBBATCH.cmake)
++ """)
++ pass
++ else:
++ if self.module == "med":
++ newlines.append("""
++ SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR})
++ IF(KERNEL_ROOT_DIR)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPYTHON.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindHDF5.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindBOOST.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBXML2.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSWIG.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindMPI.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBBATCH.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindKERNEL.cmake)
++ ELSE(KERNEL_ROOT_DIR)
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm_local_without_kernel/cmake_files/FindPLATFORM.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm_local_without_kernel/cmake_files/FindMPI.cmake)
++ ENDIF(KERNEL_ROOT_DIR)
++ """)
++ else:
++ newlines.append("""
++ SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR})
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPYTHON.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindHDF5.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindBOOST.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBXML2.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSWIG.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindMPI.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBBATCH.cmake)
++ INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindKERNEL.cmake)
++ """)
++ pass
++ if self.module == "gui":
++ newlines.append("""
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindCAS.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindQT4.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindOPENGL.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindVTK.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindQWT.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindSIPPYQT.cmake)
++ """)
++ else:
++ newlines.append("""
++ SET(GUI_ROOT_DIR $ENV{GUI_ROOT_DIR})
++ IF(GUI_ROOT_DIR)
++ INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindCAS.cmake)
++ INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindQT4.cmake)
++ INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindOPENGL.cmake)
++ INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindVTK.cmake)
++ INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindQWT.cmake)
++ INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindSIPPYQT.cmake)
++ INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindGUI.cmake)
++ ENDIF(GUI_ROOT_DIR)
++ """)
++ if self.module == "med":
++ newlines.append("""
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindMEDFILE.cmake)
++ IF(WINDOWS)
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindXDR.cmake)
++ ENDIF(WINDOWS)
++ """)
++ pass
++ if self.module == "smesh":
++ newlines.append("""
++ SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR})
++ SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
++ INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake)
++ INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMEDFILE.cmake)
++ INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
++ """)
++ pass
++ if self.module == "netgenplugin":
++ newlines.append("""
++ SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR})
++ SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
++ SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR})
++ INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake)
++ INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
++ INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindNETGEN.cmake)
++ """)
++ pass
++ if self.module == "blsurfplugin":
++ newlines.append("""
++ SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR})
++ SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
++ SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR})
++ INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake)
++ INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
++ INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindBLSURF.cmake)
++ """)
++ pass
++ if self.module in ["ghs3dplugin", "hexoticplugin"]:
++ newlines.append("""
++ SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR})
++ SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
++ SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR})
++ INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake)
++ INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
++ INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake)
++ """)
++ pass
++ if self.module == "ghs3dprlplugin":
++ newlines.append("""
++ SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR})
++ SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
++ SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR})
++ INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake)
++ INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMEDFILE.cmake)
++ INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
++ INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake)
++ """)
++ pass
++ if self.module == "visu":
++ newlines.append("""
++ SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
++ INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
++ """)
++ pass
++ if self.module == "yacs":
++ newlines.append("""
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm/cmake/FindEXPAT.cmake)
++ INCLUDE(${CMAKE_SOURCE_DIR}/adm/cmake/FindGRAPHVIZ.cmake)
++ """)
++ pass
++ if self.module == "hxx2salome":
++ newlines.append("""
++ SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR})
++ INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMEDFILE.cmake)
++ INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake)
++ """)
++ pass
++ pass
++ pass
++ pass
++ # --
++ newlines.append("""
++ SET(DOXYGEN_IS_OK 0)
++ """)
++ if self.module not in ['med']:
++ newlines.append("""
++ IF(WINDOWS)
++ SET(CPPUNIT_IS_OK 0)
++ ENDIF(WINDOWS)
++ """)
++ pass
++ # --
++ if self.module == "kernel":
++ newlines.append("""
++ SET(WITH_LOCAL 1)
++ SET(WITH_BATCH 1)
++ SET(CALCIUM_IDL_INT_F77 long)
++ SET(CALCIUM_CORBA_INT_F77 CORBA::Long)
++ SET(LONG_OR_INT int)
++ """)
++ elif self.module == "gui":
++ newlines.append("""
++ SET(GUI_ENABLE_CORBA ${CORBA_GEN})
++ SET(ENABLE_VTKVIEWER ON)
++ SET(ENABLE_SALOMEOBJECT ON)
++ SET(ENABLE_OCCVIEWER ON)
++ SET(ENABLE_GLVIEWER ON)
++ SET(ENABLE_PLOT2DVIEWER ON)
++ SET(ENABLE_PYCONSOLE ON)
++ SET(ENABLE_SUPERVGRAPHVIEWER ON)
++ SET(ENABLE_QXGRAPHVIEWER ON)
++ """)
++ pass
++ elif self.module == "jobmanager":
++ newlines.append("""
++ IF(GUI_ROOT_DIR)
++ SET(HAS_GUI ON)
++ ENDIF(GUI_ROOT_DIR)
++ """)
++ pass
++ elif self.module == "geom":
++ newlines.append("""
++ IF(GUI_ROOT_DIR)
++ SET(GEOM_ENABLE_GUI ON)
++ ENDIF(GUI_ROOT_DIR)
++ """)
++ pass
++ elif self.module == "medfile":
++ newlines.append("""
++ SET(MED_NUM_MAJEUR 2)
++ SET(MED_NUM_MINEUR 3)
++ SET(MED_NUM_RELEASE 5)
++ SET(LONG_OR_INT int)
++ IF(NOT WINDOWS)
++ SET(FLIBS -lgfortranbegin -lgfortran)
++ ENDIF(NOT WINDOWS)
++ """)
++ pass
++ elif self.module == "med":
++ newlines.append("""
++ IF(KERNEL_ROOT_DIR)
++ SET(MED_ENABLE_KERNEL ON)
++ IF(NOT WINDOWS)
++ SET(MED_ENABLE_SPLITTER ON)
++ ENDIF(NOT WINDOWS)
++ ENDIF(KERNEL_ROOT_DIR)
++ IF(GUI_ROOT_DIR)
++ SET(MED_ENABLE_GUI ON)
++ ENDIF(GUI_ROOT_DIR)
++ """)
++ pass
++ elif self.module == "smesh":
++ newlines.append("""
++ IF(GUI_ROOT_DIR)
++ SET(SMESH_ENABLE_GUI ON)
++ ENDIF(GUI_ROOT_DIR)
++ """)
++ pass
++ elif self.module == "netgen":
++ newlines.append("""
++ SET(OCCFLAGS ${CAS_CPPFLAGS})
++ SET(OCCLIBS ${CAS_LDPATH})
++ SET(OCCLIBS ${OCCLIBS} ${TKernel} ${TKGeomBase} ${TKMath} ${TKG2d} ${TKG3d} ${TKXSBase} ${TKOffset} ${TKFillet} ${TKShHealing})
++ SET(OCCLIBS ${OCCLIBS} ${TKMesh} ${TKMeshVS} ${TKTopAlgo} ${TKGeomAlgo} ${TKBool} ${TKPrim} ${TKBO} ${TKIGES} ${TKBRep})
++ SET(OCCLIBS ${OCCLIBS} ${TKSTEPBase} ${TKSTEP} ${TKSTL} ${TKSTEPAttr} ${TKSTEP209} ${TKXDESTEP} ${TKXDEIGES} ${TKXCAF} ${TKLCAF} ${FWOSPlugin})
++ """)
++ pass
++ elif self.module == "netgenplugin":
++ newlines.append("""
++ IF(GUI_ROOT_DIR)
++ SET(NETGENPLUGIN_ENABLE_GUI ON)
++ ENDIF(GUI_ROOT_DIR)
++ """)
++ pass
++ elif self.module == "blsurfplugin":
++ newlines.append("""
++ IF(GUI_ROOT_DIR)
++ SET(BLSURFPLUGIN_ENABLE_GUI ON)
++ ENDIF(GUI_ROOT_DIR)
++ """)
++ pass
++ elif self.module == "ghs3dplugin":
++ newlines.append("""
++ IF(GUI_ROOT_DIR)
++ SET(GHS3DPLUGIN_ENABLE_GUI ON)
++ ENDIF(GUI_ROOT_DIR)
++ """)
++ pass
++ elif self.module == "hexoticplugin":
++ newlines.append("""
++ IF(GUI_ROOT_DIR)
++ SET(HEXOTICPLUGIN_ENABLE_GUI ON)
++ ENDIF(GUI_ROOT_DIR)
++ """)
++ pass
++ elif self.module == "ghs3dprlplugin":
++ newlines.append("""
++ IF(GUI_ROOT_DIR)
++ SET(GHS3DPRLPLUGIN_ENABLE_GUI ON)
++ ENDIF(GUI_ROOT_DIR)
++ """)
++ pass
++ elif self.module == "yacs":
++ newlines.append("""
++ SET(SALOME_KERNEL ON)
++ SET(HAS_GUI ON)
++ SET(WITH_QT4 ON)
++ """)
++ pass
++ # --
++ newlines.append("""
++ set(VERSION 6.3.0)
++ set(XVERSION 0x060300)
++ """)
++ pass
++ # --
++ newlines.append("""
++ SET(VERSION_INFO 0.0.0)
++ SET(SOVERSION_INFO 0)
++ SET(SUBDIRS)
++ SET(AM_CPPFLAGS)
++ SET(AM_CXXFLAGS)
++ SET(LDADD)
++ SET(pythondir lib/python${PYTHON_VERSION}/site-packages)
++ SET(salomepythondir ${pythondir}/salome)
++ SET(salomepypkgdir ${salomepythondir}/salome)
++ """)
++ if self.module == "netgen":
++ newlines.append(r'''
++ SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DNO_PARALLEL_THREADS -DOCCGEOMETRY -I${CMAKE_BINARY_DIR} -I${CMAKE_CURRENT_SOURCE_DIR})
++ ''')
++ elif self.module == "kernel":
++ newlines.append(r'''
++ SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DHAVE_SALOME_CONFIG -I${CMAKE_BINARY_DIR}/salome_adm/unix -include SALOMEconfig.h)
++ SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DHAVE_SALOME_CONFIG -I${CMAKE_BINARY_DIR}/salome_adm/unix -include SALOMEconfig.h)
++ ''')
++ else:
++ if self.module not in ["yacs"]:
++ newlines.append(r'''
++ IF(KERNEL_ROOT_DIR)
++ SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DHAVE_SALOME_CONFIG -I${KERNEL_ROOT_DIR}/include/salome -include SALOMEconfig.h)
++ SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DHAVE_SALOME_CONFIG -I${KERNEL_ROOT_DIR}/include/salome -include SALOMEconfig.h)
++ ENDIF(KERNEL_ROOT_DIR)
++ ''')
++ pass
++ if self.module == "gui":
++ newlines.append(r'''
++ IF(KERNEL_ROOT_DIR)
++ SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DWITH_SALOMEDS_OBSERVER)
++ SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DWITH_SALOMEDS_OBSERVER)
++ ENDIF(KERNEL_ROOT_DIR)
++ ''')
++ pass
++ if self.module in ["smesh", "netgenplugin", "blsurfplugin", "ghs3dplugin"]:
++ newlines.append(r'''
++ SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DWITH_SMESH_CANCEL_COMPUTE)
++ SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DWITH_SMESH_CANCEL_COMPUTE)
++ ''')
++ pass
++ if self.module == "hxx2salome":
++ key = "_SRC"
++ if self.the_root[-len(key):] != key:
++ msg = "Source dir must finished with %s !"%(key)
++ raise Exception(msg)
++ hxxmodule = self.the_root[:-len(key)]
++ from os.path import basename
++ hxxmodule = basename(hxxmodule)
++ hxxmodule = hxxmodule.lower()
++ self.hxxmodule = hxxmodule
++ newlines.append(r'''
++ SET(HXXCPP_ROOT_DIR $ENV{%sCPP_ROOT_DIR})
++ SET(AM_CPPFLAGS ${AM_CPPFLAGS} -I${HXXCPP_ROOT_DIR}/include)
++ SET(AM_CXXFLAGS ${AM_CXXFLAGS} -I${HXXCPP_ROOT_DIR}/include)
++ SET(LDADD ${LDADD} -L${HXXCPP_ROOT_DIR}/lib)
++ '''%(hxxmodule.upper()))
++ pass
++ pass
++ # --
++ return
++
++ def treatLine(self, line, newlines, opened_ifs):
++
++ # --
++ # Print the comment above the line itself
++ # --
++ if line.find('#') >= 0:
++ fields = line.split('#')
++ line = fields[0]
++ comment = '#'.join([''] + fields[1:])
++ newlines.append(comment)
++ if len(line) == 0:
++ return
++ pass
++
++ # --
++ # If the line begins with 'include ', just comment it
++ # --
++ if line.find("include ") == 0:
++ newlines.append("# " + line)
++ return
++
++ # --
++ # If the line begins with '-include', just comment it
++ # --
++ if line.find("-include") == 0:
++ newlines.append("# " + line)
++ return
++
++ # --
++ # If the line is a definition of a make rule, just comment it
++ # --
++ if line.count(':') == 1:
++ newlines.append("# " + line)
++ return
++
++ # --
++ # A particuliar case where there are two ":" on the same line
++ # --
++ if line.find('install-exec-local:') == 0:
++ newlines.append("# " + line)
++ return
++
++ # --
++ # If the line begin by a tabulation, consider it's a makefile command and comment it
++ # --
++ if line.find("\t") == 0:
++ newlines.append("# " + line)
++ return
++
++ # --
++ # --
++ key = "-version-info"
++ if line.find(key) >= 0:
++ # --
++ before = line.split(key)[0]
++ after = line[len(before)+len(key):]
++ sep = after[0]
++ after = after[1:]
++ version_info = after.split()[0]
++ line = line.replace(key+sep+version_info, "")
++ # --
++ version_info = version_info.replace(':', '.')
++ soversion_info = version_info.split('.')[0]
++ newlines.append("SET(VERSION_INFO " + version_info + ")")
++ newlines.append("SET(SOVERSION_INFO " + soversion_info + ")")
++ # --
++ pass
++
++ # --
++ # Replace the $(TOTO) by ${TOTO}
++ # Replace the @TOTO@ by ${TOTO}
++ # --
++ line = p_dollar.sub(r"${\1}", line)
++ line = p_arobas.sub(r"${\1}", line)
++
++ # --
++ line = line.replace(r"${top_builddir}", r"${CMAKE_BINARY_DIR}")
++ line = line.replace(r"${top_srcdir}", r"${CMAKE_SOURCE_DIR}")
++ line = line.replace(r"${srcdir}", r"${CMAKE_CURRENT_SOURCE_DIR}")
++ line = line.replace(r"${builddir}", r"${CMAKE_CURRENT_BINARY_DIR}")
++ line = line.replace(r"${datadir}", r"${CMAKE_INSTALL_PREFIX}/share")
++
++ # --
++ # Check if the line is a 'if' condition
++ # If yes, replace it by a cmake grammar
++ # --
++ match = p_if.match(line)
++ if match:
++ theif = match.group("val")
++ if theif[0] == "!":
++ theif = "NOT " + theif[1:]
++ pass
++ line = p_if.sub(r"IF(%s)"%(theif), line)
++ opened_ifs.append(theif)
++ newlines.append(line)
++ return
++
++ # --
++ # Check if the line is a 'else' condition
++ # If yes, replace it by a cmake grammar
++ # --
++ match = p_else.match(line)
++ if match:
++ line = "ELSE(%s)"%(opened_ifs[-1])
++ newlines.append(line)
++ return
++
++ # --
++ # Check if the line is a 'endif' condition
++ # If yes, replace it by a cmake grammar
++ # --
++ match = p_endif.match(line)
++ if match:
++ line = "ENDIF(%s)"%(opened_ifs[-1])
++ opened_ifs[-1:] = []
++ newlines.append(line)
++ return
++
++ # --
++ # Check if the line is an attribution '=' or '+='
++ # --
++ match = p_attribution.match(line)
++ if match:
++ self.treatAttribution(match, newlines)
++ return
++
++ # --
++ newlines.append(line)
++
++ # --
++ return
++
++ def treatAttribution(self, match, newlines):
++
++ spaces = match.group("spaces")
++ key = match.group("key")
++ method = match.group("method")
++ value = match.group("value")
++ # print [spaces, key, method, value]
++
++ # --
++ # Open cmake SET command
++ # --
++ newlines.append(spaces + "SET(" + key)
++
++ # --
++ # If method is '+=', put the previous definition as first value
++ # --
++ if method == "+=":
++ newlines.append("%s ${%s}"%(spaces, key))
++ pass
++
++ # --
++ fields = value.split()
++ for i in range(len(fields)):
++ newlines.append("%s %s"%(spaces, fields[i]))
++ pass
++
++ # --
++ if method == "+=":
++ # --
++ # The try: except KeyError is here if the +=
++ # is an error which occurs in salome ...
++ # --
++ try:
++ self.__thedict__[key] += fields[:]
++ except KeyError:
++ self.__thedict__[key] = fields[:]
++ pass
++ pass
++ else:
++ self.__thedict__[key] = fields[:]
++ pass
++
++ # --
++ # Close cmake SET command
++ # --
++
++ newlines.append("%s)"%(spaces))
++
++ return
++
++ def finalize(self, newlines):
++
++ # --
++ # Convert the .in files in build dir
++ # --
++
++ import operator
++ mod = self.module
++ if mod in ['kernel', 'gui'] and self.root[-len('gui'):] == 'gui' or mod == 'med' and operator.contains(self.root, 'doxygen'):
++ newlines.append(r'''
++ SET(top_builddir
++ ${CMAKE_BINARY_DIR}
++ )
++ SET(top_srcdir
++ ${CMAKE_SOURCE_DIR}
++ )
++ SET(srcdir
++ ${CMAKE_CURRENT_SOURCE_DIR}
++ )
++ SET(builddir
++ ${CMAKE_CURRENT_BINARY_DIR}
++ )
++ SET(datadir
++ ${CMAKE_INSTALL_PREFIX}/share
++ )
++ SET(docdir
++ ${datadir}/doc/salome
++ )
++ ''')
++ self.files.append("static/header.html.in")
++ 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':
++ newlines.append(r'''
++ SET(top_builddir
++ ${CMAKE_BINARY_DIR}
++ )
++ SET(top_srcdir
++ ${CMAKE_SOURCE_DIR}
++ )
++ SET(srcdir
++ ${CMAKE_CURRENT_SOURCE_DIR}
++ )
++ SET(builddir
++ ${CMAKE_CURRENT_BINARY_DIR}
++ )
++ SET(datadir
++ ${CMAKE_INSTALL_PREFIX}/share
++ )
++ SET(docdir
++ ${datadir}/doc/salome
++ )
++ ''')
++ self.files.append("static/header.html.in")
++ if self.module == "yacs":
++ key = "salomegui"
++ if self.root[-len(key):] == key:
++ self.files.append("resources/YACSCatalog.xml.in")
++ pass
++ pass
++ for f in self.files:
++ if f[-3:] == ".in":
++ if self.module == 'yacs' and f == "Doxyfile.in":
++ continue
++ if f == "sstream.in":
++ continue
++ if f in ["runContainer.in", "stopContainer.in"]:
++ if self.module == "med":
++ if self.root[-3:] == "csh":
++ continue
++ pass
++ pass
++ if f == "SALOMEconfig.ref.in":
++ out = "SALOMEconfig.h"
++ else:
++ out = f[:-3]
++ pass
++ newlines.append(r'''
++ SET(input ${CMAKE_CURRENT_SOURCE_DIR}/%s)
++ '''%(f))
++ newlines.append(r'''
++ SET(output ${CMAKE_CURRENT_BINARY_DIR}/%s)
++ '''%(out))
++ newlines.append(r'''
++ MESSAGE(STATUS "Creation of ${output}")
++ CONFIGURE_FILE(${input} ${output})
++ ''')
++ pass
++ pass
++
++ # --
++ # add commands for generating of user's documentation
++ # --
++
++ upmod = self.module.upper()
++ doc_gui_destination = "${CMAKE_INSTALL_PREFIX}/share/doc/salome/gui/%s"%(upmod)
++ doc_tui_destination = "${CMAKE_INSTALL_PREFIX}/share/doc/salome/tui/%s"%(upmod)
++ doc_destination = "${CMAKE_INSTALL_PREFIX}/share/doc/salome"
++ head_source = "${CMAKE_CURRENT_SOURCE_DIR}/images/head.png"
++ if mod == 'kernel':
++ copytree_src = "${CMAKE_SOURCE_DIR}/salome_adm/cmake_files"
++ else:
++ copytree_src = "$ENV{KERNEL_ROOT_DIR}/salome_adm/cmake_files"
++ str = "import re \nimport sys \noutfile = open(sys.argv[1], 'wb') \nfor line in open(sys.argv[2], 'rb').readlines():"
++ 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)"
++ str += "\n outfile.write(line) \noutfile.close()"
++
++ if mod in ['kernel', 'gui'] and self.root[-len('gui'):] == 'gui' or mod == 'med' and operator.contains(self.root, 'doxygen'):
++ if mod == 'med':
++ doc_source = "${CMAKE_CURRENT_BINARY_DIR}/doc_ref_user/html"
++ input = "Doxyfile_med_user"
++ else:
++ doc_source = "${CMAKE_CURRENT_BINARY_DIR}/%s"%(upmod)
++ input = ""
++ newlines.append("""\t ADD_CUSTOM_TARGET(usr_docs ${DOXYGEN_EXECUTABLE} %s
++ 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''')"
++ VERBATIM
++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
++ )"""%(input, copytree_src, doc_gui_destination, doc_source, doc_gui_destination, head_source, doc_gui_destination))
++
++ if mod in ['geom', 'smesh', 'visu'] and self.root[-len(mod):] == upmod and operator.contains(self.root, 'doc'):
++ ign = r"""'tempfile', '*usr_docs*', '*CMakeFiles*', '*.cmake', 'doxyfile*', '*.vcproj', 'static', 'Makefile*'"""
++ if mod in ['geom', 'smesh']:
++ if mod == 'geom':
++ tmp = 'geompy'
++ input = "COMMAND ${DOXYGEN_EXECUTABLE} doxyfile_tui \n\t\t"
++ else:
++ tmp = 'smesh'
++ input = ''
++ newlines.append(r"""
++ FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tempfile "%s")
++ 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
++ %sCOMMAND ${DOXYGEN_EXECUTABLE} doxyfile_py
++ COMMAND ${DOXYGEN_EXECUTABLE} doxyfile
++ COMMAND ${PYTHON_EXECUTABLE} -c "import os; os.remove(r'''${CMAKE_BINARY_DIR}/src/%s_SWIG/%s.py''')"
++ 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''')"
++ VERBATIM
++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
++ )"""%(str, upmod, tmp, upmod, tmp, tmp, input, upmod, tmp, copytree_src, doc_gui_destination, doc_gui_destination, ign, head_source, doc_gui_destination))
++ else:
++ newlines.append("""\t ADD_CUSTOM_TARGET(usr_docs ${DOXYGEN_EXECUTABLE} doxyfile_idl
++ COMMAND ${DOXYGEN_EXECUTABLE} doxyfile
++ 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''')"
++ VERBATIM
++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
++ )"""%(copytree_src, doc_gui_destination, doc_gui_destination, ign, head_source, doc_gui_destination))
++
++ # --
++ # add commands for generating of developer's documentation
++ # --
++
++ upmod = self.module.upper()
++ if mod in ['kernel', 'gui', 'med', 'smesh', 'visu'] and self.root[-len('tui'):] == 'tui':
++ if mod == 'kernel':
++ tmp = """\tADD_CUSTOM_TARGET(dev_docs ${DOXYGEN_EXECUTABLE} -u
++ COMMAND ${DOXYGEN_EXECUTABLE}
++ COMMAND ${PYTHON_EXECUTABLE} -c "import os; os.remove(r'''${CMAKE_CURRENT_BINARY_DIR}/doxyfile.bak''')" """
++ tmp1=""
++ else:
++ tmp = """\tADD_CUSTOM_TARGET(dev_docs ${DOXYGEN_EXECUTABLE}"""
++ if mod == 'visu':
++ 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)
++ elif mod == 'smesh':
++ extra_srcdir = "${CMAKE_CURRENT_SOURCE_DIR}/extra"
++ 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''')"
++ 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)
++ else:
++ tmp1=""
++ doc_source = "${CMAKE_CURRENT_BINARY_DIR}/%s"%(upmod)
++ newlines.append(tmp + """
++ 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 + """
++ VERBATIM
++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
++ )""")
++ if mod == 'geom' and self.root[-len('tui'):] == 'tui':
++ tmp = 'geompy'
++ doc_source = "${CMAKE_CURRENT_BINARY_DIR}/%s"%(upmod)
++ newlines.append(r"""
++ FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/tempfile "%s")
++ 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
++ COMMAND ${DOXYGEN_EXECUTABLE} doxyfile
++ COMMAND ${PYTHON_EXECUTABLE} -c "import os; os.remove(r'''${CMAKE_BINARY_DIR}/src/%s_SWIG/%s.py''')"
++ 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''')"
++ VERBATIM
++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
++ )"""%(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))
++
++ # --
++ # convert the SUBDIRS in cmake grammar
++ # --
++ if 1: # self.__thedict__.has_key("SUBDIRS"):
++ newlines.append(r'''
++ FOREACH(dir ${SUBDIRS})
++ IF(NOT dir STREQUAL .)
++ ADD_SUBDIRECTORY(${dir})
++ ENDIF(NOT dir STREQUAL .)
++ ENDFOREACH(dir ${SUBDIRS})
++ ''')
++ pass
++
++ # --
++ # --
++ for key in ["lib_LTLIBRARIES", "noinst_LTLIBRARIES", "salomepyexec_LTLIBRARIES"]:
++ if self.__thedict__.has_key(key):
++ self.addLibTarget(key, newlines)
++ pass
++ pass
++
++ # --
++ # --
++ for key in ["bin_PROGRAMS", "check_PROGRAMS"]:
++ if self.__thedict__.has_key(key):
++ self.addBinTarget(key, newlines)
++ pass
++ pass
++
++ # --
++ # --
++ if self.__thedict__.has_key("BASEIDL_FILES"):
++ if not self.__thedict__.has_key("IDL_FILES"):
++ self.__thedict__["IDL_FILES"] = self.__thedict__["BASEIDL_FILES"]
++ newlines.append('''
++ SET(IDL_FILES ${BASEIDL_FILES})
++ ''')
++ pass
++ pass
++
++ # --
++ # --
++
++ key = "IDL_FILES"
++ if self.__thedict__.has_key(key):
++ if self.module == "kernel":
++ newlines.append('''
++ SET(IDL_FILES ${IDL_FILES} Calcium_Ports.idl)
++ ''')
++ pass
++ newlines.append('''
++ FOREACH(input ${IDL_FILES})
++ STRING(REGEX REPLACE ".idl" "" base ${input})
++ SET(src ${CMAKE_CURRENT_BINARY_DIR}/${base}SK.cc)
++ SET(outputs ${src})
++ SET(dynsrc ${CMAKE_CURRENT_BINARY_DIR}/${base}DynSK.cc)
++ SET(outputs ${outputs} ${dynsrc})
++ SET(inc ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh)
++ SET(outputs ${outputs} ${inc})
++ IF(input STREQUAL Calcium_Ports.idl)
++ SET(input ${CMAKE_CURRENT_BINARY_DIR}/${input})
++ ELSE(input STREQUAL Calcium_Ports.idl)
++ SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
++ ENDIF(input STREQUAL Calcium_Ports.idl)
++ SET(flags ${IDLCXXFLAGS} ${OMNIORB_IDLCXXFLAGS})
++ STRING(REGEX MATCH "-bcxx" ISBCXX ${flags})
++ IF(NOT ISBCXX)
++ SET(flags -bcxx ${flags})
++ ENDIF(NOT ISBCXX)
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${outputs}
++ COMMAND ${OMNIORB_IDL} ${flags} ${input}
++ MAIN_DEPENDENCY ${input}
++ )
++ ''')
++ newlines.append('''
++ install(FILES ${input} DESTINATION idl/salome)
++ ''')
++ if self.module not in ["pyhello"]:
++ newlines.append('''
++ SET(IDL_HEADER ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh)
++ install(FILES ${IDL_HEADER} DESTINATION include/salome)
++ ''')
++ pass
++ newlines.append('''
++ INSTALL(CODE "SET(IDL_FILE ${input})")
++ INSTALL(CODE "SET(DIR ${salomepythondir})")
++ IF(WINDOWS)
++ INSTALL(CODE "SET(DIR bin/salome)")
++ ENDIF(WINDOWS)
++ INSTALL(CODE "SET(CMAKE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})")
++ INSTALL(CODE "SET(OMNIORB_IDL_PYTHON ${OMNIORB_IDL_PYTHON})")
++ # --
++ SET(flags)
++ FOREACH(f ${IDLPYFLAGS})
++ SET(flags "${flags} ${f}")
++ ENDFOREACH(f ${IDLPYFLAGS})
++ STRING(REGEX MATCH "-bpython" ISBPYTHON ${flags})
++ IF(NOT ISBPYTHON)
++ SET(flags "-bpython ${flags}")
++ ENDIF(NOT ISBPYTHON)
++ SET(IDLPYFLAGS ${flags})
++ STRING(REPLACE "\\\\" "/" IDLPYFLAGS ${IDLPYFLAGS})
++ INSTALL(CODE "SET(IDLPYFLAGS ${IDLPYFLAGS})")
++ # --
++ ''')
++ if self.module == "kernel":
++ newlines.append('''
++ INSTALL(SCRIPT ${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/install_python_from_idl.cmake)
++ ''')
++ else:
++ newlines.append('''
++ STRING(REPLACE "\\\\" "/" KERNEL_ROOT_DIR ${KERNEL_ROOT_DIR})
++ INSTALL(SCRIPT ${KERNEL_ROOT_DIR}/salome_adm/cmake_files/install_python_from_idl.cmake)
++ ''')
++ pass
++ newlines.append('''
++ ENDFOREACH(input ${IDL_FILES})
++ ''')
++ pass
++
++ # --
++ # --
++ for key in ["SWIG_SRC", "SWIGSOURCES", "SWIG_DEF"]:
++ if self.__thedict__.has_key(key):
++ newlines.append('''
++ SET(SWIG_SOURCES ${%s})
++ '''%(key))
++ self.__thedict__["SWIG_SOURCES"] = self.__thedict__[key]
++ pass
++ pass
++
++ # --
++ # --
++ if self.__thedict__.has_key("SWIG_SOURCES"):
++ newlines.append('''
++ IF(SWIG_SOURCES MATCHES ";")
++ STRING(REGEX REPLACE ";.*" "" SWIG_SOURCES_FIRST "${SWIG_SOURCES}")
++ ELSE(SWIG_SOURCES MATCHES ";")
++ SET(SWIG_SOURCES_FIRST "${SWIG_SOURCES}")
++ ENDIF(SWIG_SOURCES MATCHES ";")
++ SET(flags)
++ FOREACH(f ${SWIG_FLAGS} ${MY_SWIG_FLAGS})
++ SET(test ON)
++ IF(flags)
++ LIST(FIND flags ${f} index)
++ IF(NOT index EQUAL -1)
++ SET(test OFF)
++ ENDIF(NOT index EQUAL -1)
++ ENDIF(flags)
++ IF(test)
++ SET(flags ${flags} ${f})
++ ENDIF(test)
++ ENDFOREACH(f ${SWIG_FLAGS} ${MY_SWIG_FLAGS})
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${build_srcs}
++ COMMAND ${SWIG_EXECUTABLE} ${flags} -o ${build_srcs} ${CMAKE_CURRENT_SOURCE_DIR}/${SWIG_SOURCES_FIRST}
++ MAIN_DEPENDENCY ${SWIG_SOURCES}
++ )
++ ''')
++ pass
++
++ # --
++ # --
++ if self.__thedict__.has_key("BUILT_SOURCES"):
++ newlines.append('''
++ FOREACH(f ${BUILT_SOURCES})
++ IF(f MATCHES "WRAP.cxx$")
++ # STRING(REGEX REPLACE "WRAP.cxx" "WRAP.h" inc ${f})
++ STRING(REGEX REPLACE "WRAP.cxx" ".i" input ${f})
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${f} # ${inc}
++ COMMAND ${SWIG_EXECUTABLE} ${SWIG_FLAGS} ${SWIG_PYTHON_INCLUDES} ${MYSWIG_FLAGS} -o ${f} ${CMAKE_CURRENT_SOURCE_DIR}/${input}
++ MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/${input}
++ )
++ ENDIF(f MATCHES "WRAP.cxx$")
++ ENDFOREACH(f ${BUILT_SOURCES})
++ ''')
++ pass
++
++ # --
++ # --
++ key = "MOC_FILES"
++ if self.__thedict__.has_key(key):
++ newlines.append('''
++ FOREACH(output ${MOC_FILES})
++ ''')
++ if self.module in ["jobmanager", "yacs"]:
++ newlines.append('''
++ STRING(REGEX REPLACE _moc.cxx .hxx input ${output})
++ ''')
++ else:
++ newlines.append('''
++ STRING(REGEX REPLACE _moc.cxx .h input ${output})
++ ''')
++ pass
++ newlines.append('''
++ SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
++ SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output})
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${output}
++ COMMAND ${QT_MOC_EXECUTABLE} ${MOC_FLAGS} ${input} -o ${output}
++ MAIN_DEPENDENCY ${input}
++ )
++ ENDFOREACH(output ${MOC_FILES})
++ ''')
++ pass
++
++ # --
++ # --
++ key = "UIC_FILES"
++ if self.__thedict__.has_key(key):
++ newlines.append('''
++ FOREACH(output ${UIC_FILES})
++ STRING(REPLACE "ui_" "" input ${output})
++ STRING(REPLACE ".h" ".ui" input ${input})
++ SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
++ SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output})
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${output}
++ COMMAND ${QT_UIC_EXECUTABLE} -o ${output} ${input}
++ MAIN_DEPENDENCY ${input}
++ )
++ ENDFOREACH(output ${UIC_FILES})
++ ''')
++ pass
++
++ # --
++ # --
++ key = "QRC_FILES"
++ if self.__thedict__.has_key(key):
++ newlines.append('''
++ FOREACH(output ${QRC_FILES})
++ STRING(REGEX REPLACE "qrc_" "" input ${output})
++ STRING(REGEX REPLACE ".cxx" ".qrc" input ${input})
++ STRING(REGEX REPLACE ".qrc" "" name ${input})
++ SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
++ SET(output ${CMAKE_CURRENT_BINARY_DIR}/${output})
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${output}
++ COMMAND ${QT_RCC_EXECUTABLE} ${input} -o ${output} -name ${name}
++ MAIN_DEPENDENCY ${input}
++ )
++ ENDFOREACH(output ${QRC_FILES})
++ ''')
++ pass
++
++ # --
++ # --
++ key = "SIP_FILES"
++ if self.__thedict__.has_key(key):
++ newlines.append('''
++ FOREACH(input ${SIP_FILES})
++ SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
++ SET(output)
++ FOREACH(out ${SIP_SRC})
++ SET(output ${output} ${CMAKE_CURRENT_BINARY_DIR}/${out})
++ ENDFOREACH(out ${SIP_SRC})
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${output}
++ COMMAND ${SIP_EXECUTABLE} ${PYQT_SIPFLAGS} ${input}
++ MAIN_DEPENDENCY ${input}
++ )
++ ENDFOREACH(input ${SIP_FILES})
++ ''')
++ pass
++
++ # --
++ # For make check
++ # --
++ for key in ["TESTS"]:
++ if self.__thedict__.has_key(key):
++ newlines.append('''
++ SET(UNIT_TEST_PROG ${%s})
++ '''%(key))
++ self.__thedict__["UNIT_TEST_PROG"] = self.__thedict__[key]
++ pass
++ pass
++ key = "UNIT_TEST_PROG"
++ if self.__thedict__.has_key(key):
++ newlines.append('''
++ FOREACH(input ${UNIT_TEST_PROG})
++ GET_FILENAME_COMPONENT(ext ${input} EXT)
++ IF(ext STREQUAL .py)
++ SET(test ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${input})
++ ELSE(ext STREQUAL .py)
++ IF(WINDOWS)
++ SET(test ${CMAKE_CURRENT_BINARY_DIR}/${input}_exe.exe)
++ ELSE()
++ SET(test ${CMAKE_CURRENT_BINARY_DIR}/${input}_exe)
++ ENDIF()
++ ENDIF(ext STREQUAL .py)
++ ADD_TEST(${input} ${test})
++ SET(fail_regex "KO")
++ SET_PROPERTY(TEST ${input} PROPERTY FAIL_REGULAR_EXPRESSION "${fail_regex}")
++ # IF(NOT WINDOWS)
++ # ADD_TEST(${input}_valgrind valgrind ${test})
++ # SET_PROPERTY(TEST ${input}_valgrind PROPERTY FAIL_REGULAR_EXPRESSION "${fail_regex}")
++ # SET_PROPERTY(TEST ${input}_valgrind PROPERTY PASS_REGULAR_EXPRESSION "no leaks are possible")
++ # ENDIF()
++ ENDFOREACH(input ${UNIT_TEST_PROG})
++ ''')
++ pass
++
++ # --
++ # Treat the install targets
++ # --
++ resdir = self.module
++ if resdir == "hxx2salome":
++ resdir = self.hxxmodule
++ pass
++ d = {
++ "salomeadmux_DATA" : "salome_adm/unix",
++ "dist_salomeadmux_DATA" : "salome_adm/unix",
++ "dist_salome_cmake_DATA" : "salome_adm/cmake_files",
++ "dist_salomem4_DATA" : "salome_adm/unix/config_files",
++ "dist_salome4depr_DATA" : "salome_adm/unix/config_files/DEPRECATED",
++ "dist_admlocalm4_DATA" : "adm_local/unix/config_files",
++ "dist_admlocal_cmake_DATA" : "adm_local/cmake_files",
++ "salomeinclude_DATA" : "include/salome",
++ "salomeinclude_HEADERS" : "include/salome",
++ "nodist_salomeinclude_HEADERS" : "include/salome",
++ "dist_salomeres_DATA" : "share/salome/resources/%s"%(resdir),
++ "nodist_salomeres_DATA" : "share/salome/resources/%s"%(resdir),
++ "nodist_salomeres_SCRIPTS" : "share/salome/resources/%s"%(resdir),
++ "dist_salomescript_SCRIPTS" : "bin/salome",
++ "dist_salomescript_DATA" : "bin/salome",
++ "dist_salomescript_PYTHON" : "bin/salome",
++ "nodist_salomescript_DATA" : "bin/salome",
++ "salomepython_PYTHON" : "${salomepythondir}",
++ "nodist_salomepython_PYTHON" : "${salomepythondir}",
++ "dist_salomepython_DATA" : "${salomepythondir}",
++ "sharedpkgpython_PYTHON" : "${salomepythondir}/shared_modules",
++ "salomepypkg_PYTHON" : "${salomepypkgdir}",
++ "mypkgpython_PYTHON" : "${mypkgpythondir}",
++ }
++ if self.module == "jobmanager":
++ d["bin_SCRIPTS"] = "bin"
++ pass
++ if self.module == "medfile":
++ d = {
++ "include_HEADERS" : "include",
++ "nodist_include_HEADERS" : "include",
++ "bin_SCRIPTS" : "bin",
++ "doc_DATA" : "${docdir}",
++ }
++ pass
++ if self.module == "netgen":
++ d = {
++ "include_HEADERS" : "include",
++ "noinst_HEADERS" : "share/netgen/include",
++ "dist_pkgdata_DATA" : "share/netgen",
++ "dist_doc_DATA" : "share/doc/netgen",
++ }
++ pass
++ for key, value in d.items():
++ if self.__thedict__.has_key(key):
++ self.addInstallTarget(key, value, newlines)
++ pass
++ pass
++
++ # --
++ return
++
++ def setLibAdd(self, key, newlines):
++ # --
++ newlines.append(r'''
++ SET(libadd)
++ ''')
++ # --
++ newlines.append(r'''
++ IF(WINDOWS)
++ SET(targets)
++ SET(targets ${targets} MEFISTO2D)
++ FOREACH(target ${targets})
++ IF(name STREQUAL ${target})
++ SET(dir $ENV{F2CHOME})
++ STRING(REPLACE "\\\\" "/" dir ${dir})
++ SET(libadd ${libadd} ${dir}/LIBF77.lib)
++ SET(libadd ${libadd} ${dir}/LIBI77.lib)
++ ENDIF(name STREQUAL ${target})
++ ENDFOREACH(target ${targets})
++ ENDIF(WINDOWS)
++ ''')
++ # --
++ newlines.append(r'''
++ SET(libs ${PLATFORM_LIBADD} ${PLATFORM_LDFLAGS} ${LDADD} ${${amname}_LIBADD} ${${amname}_LDADD} ${${amname}_LDFLAGS})
++ FOREACH(lib SALOMEBasics SalomeBatch)
++ IF(name STREQUAL lib)
++ SET(libs ${libs} ${PTHREAD_LIBS})
++ ENDIF(name STREQUAL lib)
++ ENDFOREACH(lib SALOMEBasics SalomeBatch)
++ ''')
++ # --
++ newlines.append(r'''
++ FOREACH(lib ${libs})
++ GET_FILENAME_COMPONENT(ext ${lib} EXT)
++ IF(ext STREQUAL .la)
++ GET_FILENAME_COMPONENT(lib ${lib} NAME_WE)
++ STRING(REGEX REPLACE "^lib" "" lib ${lib})
++ ENDIF(ext STREQUAL .la)
++ SET(vars)
++ SET(vars ${vars} -no-undefined)
++ SET(vars ${vars} -lvtkWidgets)
++ IF(WINDOWS)
++ SET(vars ${vars} -module)
++ SET(vars ${vars} -Wl,-E)
++ SET(vars ${vars} -Xlinker)
++ SET(vars ${vars} -export-dynamic)
++ SET(vars ${vars} -lm)
++ SET(vars ${vars} -lboost_thread)
++ SET(vars ${vars} -lboost_signals)
++ SET(vars ${vars} -pthread -lpthread -ldl)
++ ENDIF(WINDOWS)
++ FOREACH(v ${vars})
++ IF(lib STREQUAL v)
++ SET(lib)
++ ENDIF(lib STREQUAL v)
++ ENDFOREACH(v ${vars})
++ SET(test OFF)
++ IF(lib)
++ STRING(REGEX MATCH "^-lQt" test ${lib})
++ ENDIF(lib)
++ IF(NOT test)
++ SET(libadd ${libadd} ${lib})
++ ENDIF(NOT test)
++ ENDFOREACH(lib ${libs})
++ TARGET_LINK_LIBRARIES(${name} ${libadd})
++ ''')
++ # --
++ newlines.append(r'''
++ IF(WINDOWS)
++ SET(targets)
++ SET(targets ${targets} MEFISTO2D)
++ FOREACH(target ${targets})
++ IF(name STREQUAL ${target})
++ IF(CMAKE_BUILD_TYPE STREQUAL Debug)
++ SET_TARGET_PROPERTIES(${name} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:MSVCRT")
++ ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
++ ENDIF(name STREQUAL ${target})
++ ENDFOREACH(target ${targets})
++ ENDIF(WINDOWS)
++ ''')
++ # --
++ return
++
++ def setCompilationFlags(self, key, newlines):
++ newlines.append(r'''
++ SET(var)
++ IF(WINDOWS)
++ SET(targets)
++ SET(targets ${targets} SalomeIDLKernel)
++ SET(targets ${targets} SalomeDS)
++ SET(targets ${targets} SALOMEDSTest)
++ SET(targets ${targets} SALOMEDS_Client_exe)
++ SET(targets ${targets} SalomeIDLGEOM)
++ SET(targets ${targets} GEOMEngine)
++ SET(targets ${targets} MEDEngine)
++ SET(targets ${targets} SMESHEngine)
++ SET(targets ${targets} SMESH)
++ FOREACH(target ${targets})
++ IF(name STREQUAL ${target})
++ SET(var ${var} -DNOGDI)
++ ENDIF(name STREQUAL ${target})
++ ENDFOREACH(target ${targets})
++ ENDIF(WINDOWS)
++ ''')
++ # --
++ if self.module in ["medfile", "yacs"]:
++ newlines.append(r'''
++ IF(WINDOWS)
++ SET(var ${var} -DNOGDI)
++ ENDIF(WINDOWS)
++ ''')
++ pass
++ # --
++ newlines.append(r'''
++ IF(WINDOWS)
++ SET(targets)
++ SET(targets ${targets} MEFISTO2D)
++ FOREACH(target ${targets})
++ IF(name STREQUAL ${target})
++ SET(dir $ENV{F2CHOME})
++ STRING(REPLACE "\\\\" "/" dir ${dir})
++ SET(var ${var} -I${dir})
++ SET(var ${var} -DF2C_BUILD)
++ ENDIF(name STREQUAL ${target})
++ ENDFOREACH(target ${targets})
++ ENDIF(WINDOWS)
++ ''')
++ # --
++ if self.module in ["geom", "med"]:
++ newlines.append(r'''
++ SET(var ${var} -I${CMAKE_CURRENT_SOURCE_DIR})
++ SET(var ${var} -I${CMAKE_CURRENT_BINARY_DIR})
++ ''')
++ pass
++ newlines.append(r'''
++ SET(var ${var} ${AM_CPPFLAGS})
++ SET(var ${var} ${AM_CXXFLAGS})
++ ''')
++ # --
++ newlines.append(r'''
++ IF(type STREQUAL STATIC)
++ SET(var ${var} -fPIC)
++ ENDIF(type STREQUAL STATIC)
++ ''')
++ # --
++ if self.module == "yacs":
++ newlines.append(r'''
++ SET(var ${var} -DYACS_PTHREAD)
++ SET(var ${var} -DCMAKE_BUILD)
++ SET(var ${var} -DSALOME_KERNEL)
++ SET(var ${var} -DDSC_PORTS)
++ SET(var ${var} -DOMNIORB)
++ ''')
++ pass
++ newlines.append(r'''
++ SET(var ${var} ${PLATFORM_CPPFLAGS})
++ SET(var ${var} ${PTHREAD_CFLAGS})
++ SET(var ${var} ${${amname}_CPPFLAGS})
++ SET(var ${var} ${${amname}_CXXFLAGS})
++ SET(var ${var} ${${amname}_CFLAGS})
++ SET(vars)
++ IF(WINDOWS)
++ SET(vars ${vars} -include SALOMEconfig.h)
++ SET(vars ${vars} -ftemplate-depth-32)
++ SET(vars ${vars} -fPIC)
++ SET(vars ${vars} -g)
++ ENDIF(WINDOWS)
++ SET(flags)
++ FOREACH(f ${var})
++ FOREACH(v ${vars})
++ IF(f STREQUAL v)
++ SET(f)
++ ENDIF(f STREQUAL v)
++ ENDFOREACH(v ${vars})
++ IF(f)
++ string(REGEX MATCH "^-I" test_include ${f})
++ if(test_include)
++ string(REGEX REPLACE "^-I" "" include_dir ${f})
++ if(include_dir)
++ if(include_dir STREQUAL /usr/include)
++ else(include_dir STREQUAL /usr/include)
++ string(REGEX MATCH "^\\." test_dot ${include_dir})
++ if(test_dot)
++ set(include_dir ${CMAKE_CURRENT_BINARY_DIR}/${include_dir})
++ endif(test_dot)
++ include_directories(${include_dir})
++ endif(include_dir STREQUAL /usr/include)
++ endif(include_dir)
++ else(test_include)
++ SET(flags "${flags} ${f}")
++ endif(test_include)
++ ENDIF(f)
++ ENDFOREACH(f ${var})
++ SET_TARGET_PROPERTIES(${name} PROPERTIES COMPILE_FLAGS "${flags}")
++ ''')
++ return
++
++ def addLibTarget(self, key, newlines):
++ newlines.append(r'''
++ FOREACH(amname ${%s})
++ '''%(key))
++ # --
++ # Replace .la by _la ...
++ # --
++ newlines.append(r'''
++ STRING(REPLACE .la _la amname ${amname})
++ ''')
++ # --
++ # Remove the _la for the cmake name
++ # --
++ newlines.append(r'''
++ STRING(LENGTH ${amname} len)
++ MATH(EXPR newlen "${len}-3")
++ STRING(SUBSTRING ${amname} 0 ${newlen} name)
++ ''')
++ # --
++ # Does the target begins with lib ??
++ # If yes, remove lib at beginning for cmake name
++ # --
++ newlines.append(r'''
++ STRING(REGEX MATCH "^lib" BEGIN_WITH_lib ${name})
++ IF(BEGIN_WITH_lib)
++ STRING(LENGTH ${name} len)
++ MATH(EXPR newlen "${len}-3")
++ STRING(SUBSTRING ${name} 3 ${newlen} name)
++ ENDIF(BEGIN_WITH_lib)
++ ''')
++ # --
++ # Does the target is an idl library
++ # --
++ newlines.append(r'''
++ STRING(REGEX MATCH "IDL" ISIDL ${name})
++ ''')
++ # --
++ # Set the type of the library
++ # --
++ newlines.append(r'''
++ IF(ISIDL)
++ IF(WINDOWS)
++ SET(type STATIC)
++ ELSE(WINDOWS)
++ SET(type SHARED)
++ ENDIF(WINDOWS)
++ ELSE(ISIDL)
++ SET(type SHARED)
++ ENDIF(ISIDL)
++ ''')
++ if key == "noinst_LTLIBRARIES":
++ newlines.append(r'''
++ IF(WINDOWS)
++ SET(type STATIC)
++ ELSE(WINDOWS)
++ SET(type STATIC)
++ ENDIF(WINDOWS)
++ ''')
++ pass
++ # --
++ # Set sources for the library
++ # --
++ newlines.append(r'''
++ SET(srcs)
++ FOREACH(src ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
++ GET_FILENAME_COMPONENT(ext ${src} EXT)
++ IF(ext STREQUAL .f)
++ IF(src STREQUAL trte.f)
++ SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${src})
++ STRING(REPLACE ".f" ".c" src ${src})
++ SET(src ${CMAKE_CURRENT_BINARY_DIR}/${src})
++ SET(output ${src})
++ SET(cmd f2c)
++ IF(NOT WINDOWS)
++ IF(CMAKE_SIZEOF_VOID_P STREQUAL 8)
++ SET(cmd valgrind f2c) # f2c seems to be buggy on 64 bits ... but with valgrind, it works :)
++ ENDIF()
++ ENDIF(NOT WINDOWS)
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${output}
++ COMMAND ${cmd} ${input}
++ MAIN_DEPENDENCY ${input}
++ )
++ ELSE(src STREQUAL trte.f)
++ SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${src})
++ STRING(REPLACE ".f" ".o" src ${src})
++ SET(src ${CMAKE_CURRENT_BINARY_DIR}/${src})
++ SET(output ${src})
++ IF(WINDOWS)
++ SET(F77 g77)
++ ELSE(WINDOWS)
++ SET(F77 gfortran)
++ ENDIF(WINDOWS)
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${output}
++ COMMAND ${F77} -c -o ${output} ${input}
++ MAIN_DEPENDENCY ${input}
++ )
++ ENDIF(src STREQUAL trte.f)
++ ENDIF(ext STREQUAL .f)
++ SET(srcs ${srcs} ${src})
++ ENDFOREACH(src ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
++ ''')
++ newlines.append(r'''
++ SET(l ${nodist_${amname}_SOURCES} ${UIC_FILES})
++ FOREACH(f ${l})
++ SET(src ${CMAKE_CURRENT_BINARY_DIR}/${f})
++ SET(srcs ${srcs} ${src})
++ ENDFOREACH(f ${l})
++ ''')
++ newlines.append(r'''
++ SET(build_srcs)
++ SET(l ${nodist_${amname}_SOURCES} ${BUILT_SOURCES})
++ FOREACH(f ${l})
++ GET_FILENAME_COMPONENT(ext ${f} EXT)
++ IF(ext STREQUAL .py)
++ SET(fff)
++ ELSE(ext STREQUAL .py)
++ SET(fff ${CMAKE_CURRENT_BINARY_DIR}/${f})
++ ENDIF(ext STREQUAL .py)
++ IF(fff)
++ IF(build_srcs)
++ LIST(FIND build_srcs ${fff} index)
++ IF(NOT index EQUAL -1)
++ SET(fff)
++ ENDIF(NOT index EQUAL -1)
++ ENDIF(build_srcs)
++ ENDIF(fff)
++ IF(fff)
++ SET(build_srcs ${build_srcs} ${fff})
++ ENDIF(fff)
++ ENDFOREACH(f ${l})
++ ''')
++ # --
++ # Add the library to cmake
++ # --
++ newlines.append(r'''
++ ADD_LIBRARY(${name} ${type} ${srcs})
++ ''')
++ # --
++ # The compilation flags
++ # --
++ self.setCompilationFlags(key, newlines)
++ # --
++ newlines.append(r'''
++ SET_TARGET_PROPERTIES(${name} PROPERTIES VERSION ${VERSION_INFO} SOVERSION ${SOVERSION_INFO})
++ ''')
++ # --
++ self.setLibAdd(key, newlines)
++ # --
++ if 1: # key != "noinst_LTLIBRARIES":
++ newlines.append(r'''
++ SET(key %s)
++ '''%(key))
++ newlines.append(r'''
++ SET(test ON)
++ IF(${key} STREQUAL noinst_LTLIBRARIES)
++ SET(test OFF)
++ ENDIF(${key} STREQUAL noinst_LTLIBRARIES)
++ ''')
++ if self.module == "netgen" :
++ newlines.append(r'''
++ IF(${key} STREQUAL noinst_LTLIBRARIES)
++ IF(WINDOWS)
++ SET(test ON)
++ ENDIF(WINDOWS)
++ ENDIF(${key} STREQUAL noinst_LTLIBRARIES)
++ ''')
++ pass
++ newlines.append(r'''
++ IF(test)
++ ''')
++ if self.module in ["medfile", "netgen"]:
++ newlines.append(r'''
++ SET(DEST lib)
++ ''')
++ else:
++ newlines.append(r'''
++ SET(DEST lib/salome)
++ ''')
++ pass
++ newlines.append(r'''
++ IF(BEGIN_WITH_lib)
++ INSTALL(TARGETS ${name} DESTINATION ${DEST})
++ ''')
++ if self.module == "gui":
++ newlines.append(r'''
++ FOREACH(lib SalomePyQt)
++ IF(name STREQUAL lib)
++ IF(WINDOWS)
++ IF(CMAKE_BUILD_TYPE STREQUAL Release)
++ INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME ${name}.pyd)
++ ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
++ INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME ${name}_d.pyd)
++ ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
++ ELSE(WINDOWS)
++ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so DESTINATION ${DEST} RENAME ${name}.so)
++ ENDIF(WINDOWS)
++ ENDIF(name STREQUAL lib)
++ ENDFOREACH(lib SalomePyQt)
++ FOREACH(lib SalomePy)
++ IF(name STREQUAL lib)
++ IF(WINDOWS)
++ IF(CMAKE_BUILD_TYPE STREQUAL Release)
++ INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME lib${name}.pyd)
++ ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
++ INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME lib${name}_d.pyd)
++ ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
++ ENDIF(WINDOWS)
++ ENDIF(name STREQUAL lib)
++ ENDFOREACH(lib SalomePy)
++ ''')
++ pass
++ if self.module == "geom":
++ newlines.append(r'''
++ IF(WINDOWS)
++ STRING(REGEX MATCH "Export" ISExport ${name})
++ IF(ISExport)
++ INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME lib${name}.dll)
++ ENDIF(ISExport)
++ STRING(REGEX MATCH "Import" ISImport ${name})
++ IF(ISImport)
++ INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.dll DESTINATION ${DEST} RENAME lib${name}.dll)
++ ENDIF(ISImport)
++ ENDIF(WINDOWS)
++ ''')
++ pass
++ newlines.append(r'''
++ ELSE(BEGIN_WITH_lib)
++ ''')
++ newlines.append(r'''
++ IF(WINDOWS)
++ INSTALL(TARGETS ${name} DESTINATION ${salomepythondir})
++ IF(CMAKE_BUILD_TYPE STREQUAL Release)
++ INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${salomepythondir}/${name}.dll DESTINATION ${salomepythondir} RENAME ${name}.pyd)
++ ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
++ INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${salomepythondir}/${name}.dll DESTINATION ${salomepythondir} RENAME ${name}_d.pyd)
++ ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
++ ELSE(WINDOWS)
++ GET_TARGET_PROPERTY(version ${name} VERSION)
++ GET_TARGET_PROPERTY(soversion ${name} SOVERSION)
++ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION ${salomepythondir} RENAME ${name}.so.${version})
++ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION ${salomepythondir} RENAME ${name}.so.${soversion})
++ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION ${salomepythondir} RENAME ${name}.so)
++ ENDIF(WINDOWS)
++ ''')
++ newlines.append(r'''
++ ENDIF(BEGIN_WITH_lib)
++ ''')
++ newlines.append(r'''
++ ENDIF(test)
++ ''')
++ pass
++ # --
++ newlines.append(r'''
++ ENDFOREACH(amname ${%s})
++ '''%(key))
++ # --
++ return
++
++ def addBinTarget(self, key, newlines):
++ # --
++ newlines.append(r'''
++ FOREACH(amname ${%s})
++ '''%(key))
++ # --
++ newlines.append(r'''
++ SET(test ON)
++ ''')
++ if key == "check_PROGRAMS":
++ newlines.append(r'''
++ IF(bin_PROGRAMS)
++ STRING(REGEX MATCH ${amname} is_present ${bin_PROGRAMS})
++ IF(is_present)
++ SET(test OFF)
++ ENDIF(is_present)
++ ENDIF(bin_PROGRAMS)
++ ''')
++ pass
++ newlines.append(r'''
++ IF(test)
++ ''')
++ # --
++ newlines.append(r'''
++ SET(name "${amname}_exe")
++ SET(srcs ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
++ SET(l ${nodist_${amname}_SOURCES})
++ FOREACH(f ${l})
++ SET(src ${CMAKE_CURRENT_BINARY_DIR}/${f})
++ SET(srcs ${srcs} ${src})
++ ENDFOREACH(f ${l})
++ LIST(LENGTH srcs nb)
++ IF(nb)
++ ADD_EXECUTABLE(${name} ${srcs})
++ ''')
++ # --
++ self.setCompilationFlags(key, newlines)
++ # --
++ self.setLibAdd(key, newlines)
++ # --
++ if self.module in ["jobmanager", "medfile", "netgen"]:
++ newlines.append(r'''
++ SET(DEST bin)
++ ''')
++ else:
++ newlines.append(r'''
++ SET(DEST bin/salome)
++ ''')
++ pass
++ # --
++ if key == "bin_PROGRAMS":
++ newlines.append(r'''
++ IF(WINDOWS)
++ INSTALL(TARGETS ${name} DESTINATION ${DEST})
++ INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.exe DESTINATION ${DEST} RENAME ${amname}.exe)
++ INSTALL(CODE "FILE(REMOVE ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.exe)")
++ ELSE(WINDOWS)
++ SET(PERMS)
++ SET(PERMS ${PERMS} OWNER_READ OWNER_WRITE OWNER_EXECUTE)
++ SET(PERMS ${PERMS} GROUP_READ GROUP_EXECUTE)
++ SET(PERMS ${PERMS} WORLD_READ WORLD_EXECUTE)
++ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${name} DESTINATION ${DEST} PERMISSIONS ${PERMS} RENAME ${amname})
++ ENDIF(WINDOWS)
++ ''')
++ pass
++ # --
++ newlines.append(r'''
++ ENDIF(nb)
++ ''')
++ # --
++ newlines.append(r'''
++ ENDIF(test)
++ ''')
++ newlines.append(r'''
++ ENDFOREACH(amname ${%s})
++ '''%(key))
++ # --
++ return
++
++ def addInstallTarget(self, key, destination, newlines):
++ newlines.append(r"FOREACH(f ${%s})"%(key))
++ newlines.append(r'''
++ SET(DEST %s)
++ '''%(destination))
++ newlines.append(r'''
++ STRING(COMPARE EQUAL ${f} SALOMEconfig.h.in test_SALOMEconfig.h.in)
++ IF(test_SALOMEconfig.h.in)
++ INSTALL(FILES SALOMEconfig.ref.in DESTINATION ${DEST} RENAME SALOMEconfig.h.in)
++ ELSE(test_SALOMEconfig.h.in)
++ SET(dummy dummy-NOTFOUND)
++ MARK_AS_ADVANCED(dummy)
++ # FILE(REMOVE ${CMAKE_INSTALL_PREFIX}/${DEST}/${f})
++ FIND_FILE(dummy ${f} PATHS ${CMAKE_CURRENT_SOURCE_DIR} NO_DEFAULT_PATH)
++ IF(dummy)
++ ''')
++ if key in ['dist_salomescript_SCRIPTS']:
++ newlines.append(r'''
++ SET(PERMS)
++ SET(PERMS ${PERMS} OWNER_READ OWNER_WRITE OWNER_EXECUTE)
++ SET(PERMS ${PERMS} GROUP_READ GROUP_EXECUTE)
++ SET(PERMS ${PERMS} WORLD_READ WORLD_EXECUTE)
++ INSTALL(FILES ${f} DESTINATION ${DEST} PERMISSIONS ${PERMS})
++ ''')
++ else:
++ newlines.append(r'''
++ GET_FILENAME_COMPONENT(ext ${f} EXT)
++ IF(ext STREQUAL .py)
++ IF(DEST STREQUAL bin/salome)
++ SET(PERMS)
++ SET(PERMS ${PERMS} OWNER_READ OWNER_WRITE OWNER_EXECUTE)
++ SET(PERMS ${PERMS} GROUP_READ GROUP_EXECUTE)
++ SET(PERMS ${PERMS} WORLD_READ WORLD_EXECUTE)
++ INSTALL(FILES ${f} DESTINATION ${DEST} PERMISSIONS ${PERMS})
++ ELSE(DEST STREQUAL bin/salome)
++ INSTALL(FILES ${f} DESTINATION ${DEST})
++ ENDIF(DEST STREQUAL bin/salome)
++ ELSE(ext STREQUAL .py)
++ INSTALL(FILES ${f} DESTINATION ${DEST})
++ ENDIF(ext STREQUAL .py)
++ ''')
++ pass
++ newlines.append(r'''
++ ELSE(dummy)
++ GET_FILENAME_COMPONENT(ext ${f} EXT)
++ IF(ext STREQUAL .qm)
++ STRING(REGEX REPLACE .qm .ts input ${f})
++ ''')
++ if self.module in ["kernel", "gui", "yacs"]:
++ newlines.append(r'''
++ SET(input ${CMAKE_CURRENT_SOURCE_DIR}/resources/${input})
++ ''')
++ else:
++ newlines.append(r'''
++ SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
++ ''')
++ pass
++ newlines.append(r'''
++ SET(output ${CMAKE_CURRENT_BINARY_DIR}/${f})
++ # ADD_CUSTOM_COMMAND(
++ # OUTPUT ${output}
++ # COMMAND ${QT_LRELEASE_EXECUTABLE} ${input} -qm ${output}
++ # MAIN_DEPENDENCY ${input}
++ # )
++ EXECUTE_PROCESS(COMMAND ${QT_LRELEASE_EXECUTABLE} ${input} -qm ${output})
++ ENDIF(ext STREQUAL .qm)
++ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${f} DESTINATION ${DEST})
++ ENDIF(dummy)
++ ENDIF(test_SALOMEconfig.h.in)
++ ''')
++ newlines.append(r'''
++ GET_FILENAME_COMPONENT(ext ${f} EXT)
++ IF(ext STREQUAL .py)
++ INSTALL(CODE "SET(PYTHON_FILE ${f})")
++ INSTALL(CODE "SET(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})")
++ INSTALL(CODE "SET(DEST ${DEST})")
++ INSTALL(CODE "SET(PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE})")
++ ''')
++ if self.module == "kernel":
++ newlines.append('''
++ IF(f STREQUAL SALOME_ContainerPy.py)
++ ELSE(f STREQUAL SALOME_ContainerPy.py)
++ IF(f STREQUAL am2cmake.py)
++ ELSE(f STREQUAL am2cmake.py)
++ IF(f STREQUAL copytree1.py)
++ ELSE(f STREQUAL copytree1.py)
++ INSTALL(SCRIPT ${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/install_and_compile_python_file.cmake)
++ ENDIF(f STREQUAL copytree1.py)
++ ENDIF(f STREQUAL am2cmake.py)
++ ENDIF(f STREQUAL SALOME_ContainerPy.py)
++ ''')
++ else:
++ newlines.append('''
++ STRING(REPLACE "\\\\" "/" KERNEL_ROOT_DIR ${KERNEL_ROOT_DIR})
++ INSTALL(SCRIPT ${KERNEL_ROOT_DIR}/salome_adm/cmake_files/install_and_compile_python_file.cmake)
++ ''')
++ pass
++ newlines.append(r'''
++ ENDIF(ext STREQUAL .py)
++ ''')
++ newlines.append(r"ENDFOREACH(f ${%s})"%(key))
++ return
++
++ def writeListsFile(self):
++ f = open(self.listsFile, "w")
++ f.write(self.content)
++ f.close()
++ return
++
++ pass
++
++def convertAmFile(the_root, root, dirs, files, f, module):
++ cmake = CMakeFile(the_root, root, dirs, files, f, module)
++ cmake.writeListsFile()
++ return
++
++def usage(exit_status):
++ from sys import exit
++ from sys import argv
++ print "Usage: %s --module"%(argv[0])
++ exit(exit_status)
++ return
++
++if __name__ == "__main__":
++ #
++ from sys import argv
++ if len(argv) != 2:
++ usage(1)
++ pass
++ #
++ module = argv[1]
++ if module.find('--') != 0:
++ usage(1)
++ pass
++ module = module[2:]
++ if len(module) == 0:
++ usage(1)
++ pass
++ #
++ from os import getcwd
++ the_root = getcwd()
++ #
++ nok = 0
++ #
++ from os import walk
++ for root, dirs, files in walk(the_root):
++ # --
++ # E.A. : Remove 'CVS' in dirs
++ # E.A. : It allows to not recurse in CVS dirs
++ # E.A. : See os module python documentation
++ # --
++ try:
++ dirs.remove('CVS')
++ except ValueError:
++ pass
++ # --
++ if "Makefile.am.cmake" in files:
++ if "Makefile.am" in files:
++ files.remove("Makefile.am")
++ pass
++ pass
++ # --
++ from sys import stdout
++ for f in files:
++ if f in ["Makefile.am", "Makefile.am.cmake"]:
++ convertAmFile(the_root, root, dirs, files, f, module)
++ nok += 1
++ pass
++ pass
++ pass
++ #
++ if nok:
++ if nok == 1:
++ msg = "%s file has been converted to cmake"%(nok)
++ else:
++ msg = "%s files have been converted to cmake"%(nok)
++ pass
++ stdout.write(msg)
++ stdout.write("\n")
++ stdout.flush()
++ pass
++ pass
+diff -Naur netgen-4.9.13.occ/config.h.in netgen-4.9.13/config.h.in
+--- netgen-4.9.13.occ/config.h.in 2010-05-20 23:29:37.000000000 +0000
++++ netgen-4.9.13/config.h.in 2011-04-28 08:21:18.760077010 +0000
+@@ -68,7 +68,7 @@
+ #undef PACKAGE_TARNAME
+
+ /* Define to the version of this package. */
+-#undef PACKAGE_VERSION
++#define PACKAGE_VERSION "4.9.13"
+
+ /* Define to 1 if you have the ANSI C header files. */
+ #undef STDC_HEADERS
+diff -Naur netgen-4.9.13.occ/libsrc/include/Makefile.am netgen-4.9.13/libsrc/include/Makefile.am
+--- netgen-4.9.13.occ/libsrc/include/Makefile.am 2009-08-10 11:40:50.000000000 +0000
++++ netgen-4.9.13/libsrc/include/Makefile.am 2011-04-26 15:48:56.300050773 +0000
+@@ -1,7 +1,9 @@
+-noinst_HEADERS = acisgeom.hpp gprim.hpp meshing.hpp occgeom.hpp \
++noinst_HEADERS_orig = acisgeom.hpp gprim.hpp meshing.hpp occgeom.hpp \
+ visual.hpp csg.hpp incvis.hpp myadt.hpp opti.hpp geometry2d.hpp \
+ linalg.hpp mydefs.hpp parallel.hpp stlgeom.hpp mystdlib.h
+
++noinst_HEADERS = incvis.hpp mydefs.hpp mystdlib.h
++
+ include_HEADERS = nginterface.h nginterface_v2.hpp parallelinterface.hpp
+
+ AM_CPPFLAGS =