Salome HOME
bos #41859 OCC 7.8.0
authorJulia Dorovskikh <Julia.Dorovskikh@opencascade.com>
Thu, 16 May 2024 08:38:19 +0000 (10:38 +0200)
committerNabil Ghodbane <nabil.ghodbane@cea.fr>
Thu, 16 May 2024 08:38:19 +0000 (10:38 +0200)
14 files changed:
applications/SALOME-master-native.pyconf
applications/SALOME-master-windows.pyconf
applications/SALOME-master.pyconf
products/CAS.pyconf
products/KERNEL.pyconf
products/compil_scripts/CAS_7.8.bat [new file with mode: 0644]
products/compil_scripts/netgen_5_3_1.bat
products/gmsh.pyconf
products/netgen.pyconf
products/patches/gmsh-4.10.3-occt780-win.patch [new file with mode: 0644]
products/patches/gmsh-4.10.3-occt780.patch [new file with mode: 0644]
products/patches/netgen5.3_withOCCT780_linux.patch [new file with mode: 0644]
products/patches/netgen5.3_withOCCT780_win.patch [new file with mode: 0644]
products/patches/netgen53ForWindowsOCC780.patch [new file with mode: 0644]

index de41bbcbdeb4d974db4642cc1bff0a25f24ca04d..283fd117d29ee1023b05d6e26a80d11dfac6e017 100644 (file)
@@ -38,7 +38,7 @@ APPLICATION :
         alabaster : 'native'
         Babel : 'native'
         boost : 'native'
         alabaster : 'native'
         Babel : 'native'
         boost : 'native'
-        CAS : {tag : 'V7_5_3p5', section: 'version_CR753_SALOME_PATCH', base: 'no'}
+        CAS : {tag : 'CR780-SALOME-PATCH', section: 'version_CR780_SALOME_PATCH', base:  'no'}
         catalyst: '2.0'
         C3PO: 'v2.3'
         certifi : 'native'
         catalyst: '2.0'
         C3PO: 'v2.3'
         certifi : 'native'
@@ -62,7 +62,7 @@ APPLICATION :
         freetype : 'native'
         gl2ps : 'native'
         gdal : 'native'
         freetype : 'native'
         gl2ps : 'native'
         gdal : 'native'
-        gmsh : '4.10.3'
+        gmsh : '4.10.3_with_CAS_7.8'
         graphviz : 'native'
         h5py : 'native'
         hdf5 : '1.10.3'
         graphviz : 'native'
         h5py : 'native'
         hdf5 : '1.10.3'
@@ -84,7 +84,7 @@ APPLICATION :
         meshio: '5.3.5'
         metis : 'native'
         mpi4py: 'native'
         meshio: '5.3.5'
         metis : 'native'
         mpi4py: 'native'
-        netgen : '5.3.1_with_CAS_7.2'
+        netgen : '5.3.1_with_CAS_7.8'
         # comment out line above and uncomment the line below to use Netgen 6.
         #netgen : '6.2.2101'
         netcdf : 'native'
         # comment out line above and uncomment the line below to use Netgen 6.
         #netgen : '6.2.2101'
         netcdf : 'native'
@@ -264,7 +264,6 @@ __overwrite__ :
         'APPLICATION.products.scipy'    : {tag: '1.5.2',  base: 'no', section: 'version_1_5_2_no_pip'                }  # scipy >= 1.4 - system one too old
         'APPLICATION.products.swig'     : '4.0.2'
         'APPLICATION.products.openmpi'  : '4.1.5'
         'APPLICATION.products.scipy'    : {tag: '1.5.2',  base: 'no', section: 'version_1_5_2_no_pip'                }  # scipy >= 1.4 - system one too old
         'APPLICATION.products.swig'     : '4.0.2'
         'APPLICATION.products.openmpi'  : '4.1.5'
-        'APPLICATION.products.MEDCOUPLING' : {tag:'master', base: 'no', section: 'default_MPI', hpc: 'yes'}
         'APPLICATION.products.mdurl'            : {tag: '0.1.2', base: 'no', section: 'version_0_1_2_no_pip'    }
         'APPLICATION.products.markdown_it_py'   : {tag: '2.2.0', base : 'no', section: 'version_2_2_0_no_pip'}
         'APPLICATION.products.rich'             : {tag: '13.7.1', base: 'no', section: 'version_13_7_1_no_pip'   }
         'APPLICATION.products.mdurl'            : {tag: '0.1.2', base: 'no', section: 'version_0_1_2_no_pip'    }
         'APPLICATION.products.markdown_it_py'   : {tag: '2.2.0', base : 'no', section: 'version_2_2_0_no_pip'}
         'APPLICATION.products.rich'             : {tag: '13.7.1', base: 'no', section: 'version_13_7_1_no_pip'   }
@@ -281,7 +280,6 @@ __overwrite__ :
         'APPLICATION.products.PyFMI'            : {tag:'2.6',    base: 'no', section: 'version_2_6_no_pip'}
         'APPLICATION.products.rich'             : 'native'
         'APPLICATION.products.meshio'           : {tag:'5.3.5', base:  'no', section: 'version_5_3_5_no_pip'}
         'APPLICATION.products.PyFMI'            : {tag:'2.6',    base: 'no', section: 'version_2_6_no_pip'}
         'APPLICATION.products.rich'             : 'native'
         'APPLICATION.products.meshio'           : {tag:'5.3.5', base:  'no', section: 'version_5_3_5_no_pip'}
-        'APPLICATION.products.MEDCOUPLING'      : {tag:'master', base: 'no', section: 'default_MPI', hpc: 'yes'}
         'APPLICATION.products.numpy'            : {tag: '1.20.3', base: 'no', section: 'version_1_20_3'        }
     }
     {
         'APPLICATION.products.numpy'            : {tag: '1.20.3', base: 'no', section: 'version_1_20_3'        }
     }
     {
@@ -402,7 +400,6 @@ __overwrite__ :
         'APPLICATION.products.PyFMI'            : {tag: '2.6',       base: 'no', section: 'version_2_6_FD37'                    }
         'APPLICATION.products.medfile'          : {tag: '4.1.1',     base: 'no', section: 'version_4_1_1_FD37'                  }
         'APPLICATION.products.ParaView'         : {tag: '5.11.0',    base: 'no',  section: 'version_5_11_0_MPI_FD37', hpc: 'yes'}
         'APPLICATION.products.PyFMI'            : {tag: '2.6',       base: 'no', section: 'version_2_6_FD37'                    }
         'APPLICATION.products.medfile'          : {tag: '4.1.1',     base: 'no', section: 'version_4_1_1_FD37'                  }
         'APPLICATION.products.ParaView'         : {tag: '5.11.0',    base: 'no',  section: 'version_5_11_0_MPI_FD37', hpc: 'yes'}
-        'APPLICATION.products.SHAPER'           : {tag:'master',     base: 'no', section: 'default',                  hpc: 'no' }
     }
     {
         __condition__ : "VARS.dist in ['FD38']"
     }
     {
         __condition__ : "VARS.dist in ['FD38']"
@@ -423,6 +420,5 @@ __overwrite__ :
         'APPLICATION.products.catalyst'         : {tag: '2.0',       base: 'no', section: 'version_2_0_FD38'                    }
         'APPLICATION.products.gmsh'             : {tag: '4.10.3',    base: 'no', section: 'version_4_10_3_FD38'                 }
         'APPLICATION.products.ParaView'         : {tag: '5.11.0',    base: 'no', section: 'version_5_11_0_MPI_FD38', hpc: 'yes' }
         'APPLICATION.products.catalyst'         : {tag: '2.0',       base: 'no', section: 'version_2_0_FD38'                    }
         'APPLICATION.products.gmsh'             : {tag: '4.10.3',    base: 'no', section: 'version_4_10_3_FD38'                 }
         'APPLICATION.products.ParaView'         : {tag: '5.11.0',    base: 'no', section: 'version_5_11_0_MPI_FD38', hpc: 'yes' }
-        'APPLICATION.products.SHAPER'           : {tag:'master',     base: 'no', section: 'default',                 hpc: 'no'  }
     }
 ]
     }
 ]
index c5f382875bf48b8d1aa8b330520b2056e963e520..70f851da997dbea645ee8cb60f9d0eeac8155a9d 100644 (file)
@@ -42,7 +42,7 @@ APPLICATION :
         alabaster : '0.7.16'
         Babel : '2.7.0'
         boost : '1.67.0'
         alabaster : '0.7.16'
         Babel : '2.7.0'
         boost : '1.67.0'
-        CAS : {tag : 'V7_5_3p5', section: 'version_CR753_SALOME_PATCH_win', base: 'no'}
+        CAS : {tag:'CR780-SALOME-PATCH', section:'version_CR780_SALOME_PATCH_win', base: 'no'}
         certifi : '2019.6.16'
         cftime : '1.6.3'
         cgns : '4.2.0'
         certifi : '2019.6.16'
         cftime : '1.6.3'
         cgns : '4.2.0'
@@ -66,7 +66,7 @@ APPLICATION :
         FMILibrary : '2.0.3'
         freeimage : '3.18.0'
         freetype : '2.9.1'
         FMILibrary : '2.0.3'
         freeimage : '3.18.0'
         freetype : '2.9.1'
-        gmsh : '4.10.3'
+        gmsh : '4.10.3_with_CAS_7.8'
         graphviz : '2.44.1'
         hdf5 : '1.10.3'
         h5py : '3.11.0'
         graphviz : '2.44.1'
         hdf5 : '1.10.3'
         h5py : '3.11.0'
@@ -92,7 +92,7 @@ APPLICATION :
         msvc : '2017'
         netcdf : '4.6.2'
         netCDF4: '1.6.5'
         msvc : '2017'
         netcdf : '4.6.2'
         netCDF4: '1.6.5'
-        netgen : '5.3.1_with_CAS_7.2'
+        netgen : {tag:'5.3.1', base: 'no',  section: 'version_5_3_1_with_CAS_7_8_win'}
         # comment out line above and uncomment the line below to use Netgen 6.
         #netgen : '6.2.2101'
         nlopt : '2.5.0'
         # comment out line above and uncomment the line below to use Netgen 6.
         #netgen : '6.2.2101'
         nlopt : '2.5.0'
@@ -162,7 +162,7 @@ APPLICATION :
         'KERNEL'
         'MEDCOUPLING'
         'GUI'
         'KERNEL'
         'MEDCOUPLING'
         'GUI'
-        'GEOM' : 'bos/41189_py39'
+        'GEOM'
         'SMESH'
         'NETGENPLUGIN'
         'BLSURFPLUGIN'
         'SMESH'
         'NETGENPLUGIN'
         'BLSURFPLUGIN'
index 552af72bb268a0ebfdd62a826b8c4df767e06c19..062f75619568372313d48ddac0d28596f4b874d3 100644 (file)
@@ -39,7 +39,7 @@ APPLICATION :
         alabaster : '0.7.6'
         Babel : '2.14.0'
         boost : '1.71.0'
         alabaster : '0.7.6'
         Babel : '2.14.0'
         boost : '1.71.0'
-        CAS : {tag : 'V7_5_3p5', section: 'version_CR753_SALOME_PATCH', base: 'no'}
+        CAS : {tag : 'CR780-SALOME-PATCH', section: 'version_CR780_SALOME_PATCH', base: 'no'}
         catalyst: '2.0'
         C3PO: 'v2.3'
         certifi : '2018.8.24'
         catalyst: '2.0'
         C3PO: 'v2.3'
         certifi : '2018.8.24'
@@ -68,7 +68,7 @@ APPLICATION :
         gmp : 'native'
         mpfr : 'native'
         gdal : '2.4.0'
         gmp : 'native'
         mpfr : 'native'
         gdal : '2.4.0'
-        gmsh : '4.10.3'
+        gmsh : '4.10.3_with_CAS_7.8'
         graphviz : '2.38.0'
         h5py : '3.11.0'
         hdf5 : '1.10.3'
         graphviz : '2.38.0'
         h5py : '3.11.0'
         hdf5 : '1.10.3'
@@ -92,7 +92,7 @@ APPLICATION :
         meshio : '5.3.5'
         mpi4py: {tag: '3.1.0', base: 'no', section : 'version_3_1_0_no_pip'}
         metis : '5.1.0'
         meshio : '5.3.5'
         mpi4py: {tag: '3.1.0', base: 'no', section : 'version_3_1_0_no_pip'}
         metis : '5.1.0'
-        netgen : '5.3.1_with_CAS_7.2'
+        netgen : '5.3.1_with_CAS_7.8'
         # comment out line above and uncomment the line below to use Netgen 6.
         #netgen : '6.2.2101'
         netcdf : '4.6.2'
         # comment out line above and uncomment the line below to use Netgen 6.
         #netgen : '6.2.2101'
         netcdf : '4.6.2'
index db79cf9d97254754697f6c32efba4fcb3d9aeab8..ab16b24511dcdd7ce7d6dab4186e686e4e366736 100755 (executable)
@@ -37,6 +37,94 @@ default :
     }
 }
 
     }
 }
 
+version_CR780_SALOME_PATCH :
+{
+    name : "CAS"
+    build_source : "cmake"
+    cmake_options : "-DUSE_TCL=OFF -DBUILD_MODULE_Draw=OFF -DUSE_FREETYPE=ON -D3RDPARTY_FREETYPE_DIR=$FREETYPEDIR -DUSE_FREEIMAGE=ON -D3RDPARTY_FREEIMAGE_DIR=$FREEIMAGEDIR -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON"
+    get_source : "git"
+    git_info:
+    {
+        repo : "http://git.dev.opencascade.org/repos/occt.git"
+        repo_dev : $repo
+    }
+    environ :
+    {
+        CSF_ShadersDirectory : $install_dir + $VARS.sep + "share" + $VARS.sep + "opencascade" + $VARS.sep + "resources" + $VARS.sep + "Shaders"
+        CSF_UnitsLexicon : $install_dir + $VARS.sep + "share" + $VARS.sep + "opencascade" + $VARS.sep + "resources" + $VARS.sep + "UnitsAPI" + $VARS.sep + "Lexi_Expr.dat"
+        CSF_UnitsDefinition : $install_dir + $VARS.sep + "share" + $VARS.sep + "opencascade" + $VARS.sep + "resources" + $VARS.sep + "UnitsAPI" + $VARS.sep + "Units.dat"
+        CSF_SHMessage : $install_dir + $VARS.sep + "share" + $VARS.sep + "opencascade" + $VARS.sep + "resources" + $VARS.sep + "SHMessage"
+        CSF_XSMessage : $install_dir + $VARS.sep + "share" + $VARS.sep + "opencascade" + $VARS.sep + "resources" + $VARS.sep + "XSMessage"
+        CSF_MDTVTexturesDirectory : $install_dir + $VARS.sep + "share" + $VARS.sep + "opencascade" + $VARS.sep + "resources" + $VARS.sep + "Textures"
+        MMGT_REENTRANT : "1"
+        CSF_StandardDefaults : $install_dir + $VARS.sep + "share" + $VARS.sep + "opencascade" + $VARS.sep + "resources" + $VARS.sep + "StdResource"
+        CSF_PluginDefaults : $install_dir + $VARS.sep + "share" + $VARS.sep + "opencascade" + $VARS.sep + "resources" + $VARS.sep + "StdResource"
+        env_script : $name + ".py"
+    }
+    depend : ['freetype', 'freeimage']
+    build_depend : ["cmake", "doxygen"]
+    source_dir : $APPLICATION.workdir + $VARS.sep + 'SOURCES' + $VARS.sep + $name
+    build_dir : $APPLICATION.workdir + $VARS.sep + 'BUILD' + $VARS.sep + $name
+    install_dir : 'base'
+    properties:
+    {
+      incremental : "no"
+    }
+}
+
+version_CR780_SALOME_PATCH_win :
+{
+    name : "CAS"
+    build_source : "script"
+    compil_script :  "CAS_7.8.bat"
+    get_source : "git"
+    git_info:
+    {
+        repo : "http://git.dev.opencascade.org/repos/occt.git"
+        repo_dev : $repo
+    }
+    environ :
+    {
+        CSF_OCCTBinPath          : $install_dir + $VARS.sep + "win64" + $VARS.sep + "vc14" + $VARS.sep + "bin"
+        CSF_OCCTLibPath          : $install_dir + $VARS.sep + "win64" + $VARS.sep + "vc14" + $VARS.sep + "lib"
+        CSF_OCCTIncludePath      : $install_dir + $VARS.sep + "inc"
+        CSF_OCCTResourcePath     : $install_dir + $VARS.sep + "src"
+        CSF_OCCTDataPath         : $install_dir + $VARS.sep + "data"
+        CSF_OCCTSamplesPath      : $install_dir + $VARS.sep + "samples"
+        CSF_OCCTTestsPath        : $install_dir + $VARS.sep + "tests"
+        CSF_OCCTDocPath          : $install_dir + $VARS.sep + "doc"
+        CSF_SHMessage            : $install_dir + $VARS.sep + "src" + $VARS.sep + "SHMessage"
+        CSF_MDTVTexturesDirectory: $install_dir + $VARS.sep + "src" + $VARS.sep + "Textures"
+        CSF_ShadersDirectory     : $install_dir + $VARS.sep + "src" + $VARS.sep + "Shaders"
+        CSF_XSMessage            : $install_dir + $VARS.sep + "src" + $VARS.sep + "XSMessage"
+        CSF_TObjMessage          : $install_dir + $VARS.sep + "src" + $VARS.sep + "TObj"
+        CSF_StandardDefaults     : $install_dir + $VARS.sep + "src" + $VARS.sep + "StdResource"
+        CSF_PluginDefaults       : $install_dir + $VARS.sep + "src" + $VARS.sep + "StdResource"
+        CSF_XCAFDefaults         : $install_dir + $VARS.sep + "src" + $VARS.sep + "StdResource"
+        CSF_TObjDefaults         : $install_dir + $VARS.sep + "src" + $VARS.sep + "StdResource"
+        CSF_StandardLiteDefaults : $install_dir + $VARS.sep + "src" + $VARS.sep + "StdResource"
+        CSF_IGESDefaults         : $install_dir + $VARS.sep + "src" + $VARS.sep + "XSTEPResource"
+        CSF_STEPDefaults         : $install_dir + $VARS.sep + "src" + $VARS.sep + "XSTEPResource"
+        CSF_XmlOcafResource      : $install_dir + $VARS.sep + "src" + $VARS.sep + "XmlOcafResource"
+        CSF_MIGRATION_TYPES      : $install_dir + $VARS.sep + "src" + $VARS.sep + "StdResource" + $VARS.sep + "MigrationSheet.txt"
+        CSF_UnitsDefinition      : $install_dir + $VARS.sep + "src" + $VARS.sep + "UnitsAPI" + $VARS.sep + "Units.dat"
+
+        MMGT_CLEAR     : "1"
+        MMGT_REENTRANT : "1"
+        CSF_LANGUAGE   : "us"
+
+        env_script : $name + ".py"
+    }
+    depend : ['freetype', 'freeimage']
+    build_depend : ["cmake", "doxygen"]
+    source_dir : $APPLICATION.workdir + $VARS.sep + 'SOURCES' + $VARS.sep + $name
+    build_dir : $APPLICATION.workdir + $VARS.sep + 'BUILD' + $VARS.sep + $name
+    properties:
+    {
+      incremental : "no"
+    }
+}
+
 version_CR753_SALOME_PATCH :
 {
     name : "CAS"
 version_CR753_SALOME_PATCH :
 {
     name : "CAS"
index 637a8d81f47a8ea7d02133ff5d3f9b624189ca6d..610f197597ccb0726ffd5531ad643e680e42486a 100644 (file)
@@ -30,7 +30,8 @@ default :
               "Pygments",
               "pytz",
               "LIBBATCH",
               "Pygments",
               "pytz",
               "LIBBATCH",
-              "psutil"
+              "psutil",
+              "CAS"
               ]
     build_depend : ["cmake", "swig", "doxygen", "cppunit"]
     opt_depend : ["SALOMEBOOTSTRAP"]
               ]
     build_depend : ["cmake", "swig", "doxygen", "cppunit"]
     opt_depend : ["SALOMEBOOTSTRAP"]
@@ -65,7 +66,8 @@ default_win :
               "pytz",
               "LIBBATCH",
               "graphviz",
               "pytz",
               "LIBBATCH",
               "graphviz",
-              "psutil"
+              "psutil",
+              "CAS"
               ]
     build_depend : ["cmake", "swig", "doxygen", "cppunit"]
     opt_depend : ["SALOMEBOOTSTRAP"]
               ]
     build_depend : ["cmake", "swig", "doxygen", "cppunit"]
     opt_depend : ["SALOMEBOOTSTRAP"]
diff --git a/products/compil_scripts/CAS_7.8.bat b/products/compil_scripts/CAS_7.8.bat
new file mode 100644 (file)
index 0000000..e2bc014
--- /dev/null
@@ -0,0 +1,107 @@
+@echo off
+
+echo ##########################################################################
+echo CAS %VERSION%
+echo ##########################################################################
+
+IF NOT DEFINED SAT_DEBUG (
+  SET SAT_DEBUG=0
+)
+
+IF NOT DEFINED CMAKE_GENERATOR (
+  SET CMAKE_GENERATOR="Visual Studio 15 2017 Win64"
+)
+
+SET PRODUCT_BUILD_TYPE=Release
+if %SAT_DEBUG% == 1 (
+  set PRODUCT_BUILD_TYPE=Debug
+)
+
+if NOT exist "%PRODUCT_INSTALL%" mkdir %PRODUCT_INSTALL%
+
+REM clean BUILD directory
+if exist "%BUILD_DIR%" rmdir /Q /S %BUILD_DIR%
+mkdir %BUILD_DIR%
+
+cd %BUILD_DIR%
+
+set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_GENERATOR=%CMAKE_GENERATOR%
+set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_BUILD_TYPE:STRING=%PRODUCT_BUILD_TYPE%
+
+set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_INSTALL_PREFIX:STRING=%PRODUCT_INSTALL:\=/%
+
+REM TBB
+REM set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DUSE_TBB:BOOL=ON -D3RDPARTY_TBB_DIR:STRING=%TBB_DIR:\=/%
+REM FREETYPE
+set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DUSE_FREETYPE:BOOL=ON -D3RDPARTY_FREETYPE_DIR:STRING=%FREETYPEDIR:\=/%
+REM FREEIMAGE
+set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DUSE_FREEIMAGE:BOOL=ON -D3RDPARTY_FREEIMAGE_DIR:STRING=%FREEIMAGEDIR:\=/%
+
+REM no GL2PS
+set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DUSE_GL2PS:BOOL=OFF
+
+REM no TCL/TK
+set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DUSE_TCL=OFF -DBUILD_MODULE_Draw=OFF
+
+REM bos #26509
+set CMAKE_OPTIONS=%CMAKE_OPTIONS% -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON
+
+set MSBUILDDISABLENODEREUSE=1
+
+echo.
+echo *********************************************************************
+echo *** %CMAKE_ROOT%\bin\cmake %CMAKE_OPTIONS%
+echo *********************************************************************
+echo.
+
+%CMAKE_ROOT%\bin\cmake %CMAKE_OPTIONS% %SOURCE_DIR%
+if NOT %ERRORLEVEL% == 0 (
+    echo "ERROR on cmake"
+    exit 1
+)
+
+echo.
+echo *********************************************************************
+echo *** msbuild %MAKE_OPTIONS% /p:Configuration=%PRODUCT_BUILD_TYPE% /p:Platform=x64 ALL_BUILD.vcxproj
+echo *********************************************************************
+echo.
+
+msbuild %MAKE_OPTIONS% /p:Configuration=%PRODUCT_BUILD_TYPE% /p:Platform=x64 ALL_BUILD.vcxproj
+if NOT %ERRORLEVEL% == 0 (
+    echo ERROR on msbuild ALL_BUILD.vcxproj
+    exit 2
+)
+
+echo.
+echo *********************************************************************
+echo *** installation...
+echo *********************************************************************
+echo.
+
+msbuild %MAKE_OPTIONS% /p:Configuration=%PRODUCT_BUILD_TYPE% /p:Platform=x64 INSTALL.vcxproj
+if NOT %ERRORLEVEL% == 0 (
+    echo ERROR on msbuild INSTALL.vcxproj
+    exit 3
+)
+
+echo.
+echo *********************************************************************
+echo *** installation (data)...
+echo *********************************************************************
+echo.
+xcopy /Q /R /Y /E /H /I %SOURCE_DIR%\data %PRODUCT_INSTALL%\data
+if NOT %ERRORLEVEL% == 0 (
+    echo ERROR when copying %SOURCE_DIR%\data to %PRODUCT_INSTALL%\data
+    exit 1
+)
+
+taskkill /F /IM "mspdbsrv.exe"
+
+
+if %SAT_DEBUG% == 1 (
+    xcopy %PRODUCT_INSTALL%\win64\vc14\bind %PRODUCT_INSTALL%\win64\vc14\bin  /E /I /Q
+    xcopy %PRODUCT_INSTALL%\win64\vc14\libd %PRODUCT_INSTALL%\win64\vc14\lib  /E /I /Q
+)
+
+echo.
+echo ########## END
index e0a1011e1f5ddc8744b62f86bd805e390565a024..9b9f1e391f98c8170d429cf14c1596b4f4281c03 100755 (executable)
@@ -70,86 +70,93 @@ echo --------------------------------------------------------------------------
 echo *** Installation into %PRODUCT_INSTALL%\r
 echo --------------------------------------------------------------------------\r
 \r
 echo *** Installation into %PRODUCT_INSTALL%\r
 echo --------------------------------------------------------------------------\r
 \r
-robocopy nglib\%PRODUCT_BUILD_TYPE% %PRODUCT_INSTALL%\bin "*.exe" /E /NP /NFL /NDL /NS /NC\r
-if NOT %ERRORLEVEL% == 1 (\r
+copy /B /Y nglib\%PRODUCT_BUILD_TYPE%\*.exe %PRODUCT_INSTALL%\bin\\r
+if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install executables\r
     exit 3\r
 )\r
 \r
     echo ERROR on install executables\r
     exit 3\r
 )\r
 \r
-robocopy nglib\%PRODUCT_BUILD_TYPE% %PRODUCT_INSTALL%\lib "*.lib" "*.dll" /E /NP /NFL /NDL /NS /NC\r
-if NOT %ERRORLEVEL% == 1 (\r
-    echo ERROR on install libraries\r
+copy /B /Y nglib\%PRODUCT_BUILD_TYPE%\*.lib %PRODUCT_INSTALL%\lib\\r
+if NOT %ERRORLEVEL% == 0 (\r
+    echo ERROR on install static libraries \r
+    exit 4\r
+)\r
+\r
+copy /B /Y nglib\%PRODUCT_BUILD_TYPE%\*.dll %PRODUCT_INSTALL%\lib\\r
+if NOT %ERRORLEVEL% == 0 (\r
+    echo ERROR on install dynamic libraries\r
     exit 4\r
 )\r
 \r
     exit 4\r
 )\r
 \r
-xcopy /q /r /Y %SOURCE_DIR%\libsrc\meshing\*.h* %PRODUCT_INSTALL%\include\r
+xcopy /Q /R /Y %SOURCE_DIR%\libsrc\meshing\*.h* %PRODUCT_INSTALL%\include\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install meshing includes\r
     exit 5\r
 )\r
 \r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install meshing includes\r
     exit 5\r
 )\r
 \r
-xcopy /q /r /Y %SOURCE_DIR%\libsrc\gprim\*.h* %PRODUCT_INSTALL%\include\r
+xcopy /Q /R /Y %SOURCE_DIR%\libsrc\gprim\*.h* %PRODUCT_INSTALL%\include\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install gprim includes\r
     exit 6\r
 )\r
 \r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install gprim includes\r
     exit 6\r
 )\r
 \r
-xcopy /q /r /Y %SOURCE_DIR%\libsrc\general\*.h* %PRODUCT_INSTALL%\include\r
+xcopy /Q /R /Y %SOURCE_DIR%\libsrc\general\*.h* %PRODUCT_INSTALL%\include\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install general includes\r
     exit 7\r
 )\r
 \r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install general includes\r
     exit 7\r
 )\r
 \r
-xcopy /q /r /Y %SOURCE_DIR%\libsrc\linalg\*.h* %PRODUCT_INSTALL%\include\r
+xcopy /Q /R /Y %SOURCE_DIR%\libsrc\linalg\*.h* %PRODUCT_INSTALL%\include\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install linalg includes\r
     exit 8\r
 )\r
 \r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install linalg includes\r
     exit 8\r
 )\r
 \r
-xcopy /q /r /Y %SOURCE_DIR%\libsrc\occ\*.h* %PRODUCT_INSTALL%\include\r
+xcopy /Q /R /Y %SOURCE_DIR%\libsrc\occ\*.h* %PRODUCT_INSTALL%\include\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install occ includes\r
     exit 9\r
 )\r
 \r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install occ includes\r
     exit 9\r
 )\r
 \r
-xcopy /q /r /Y %SOURCE_DIR%\libsrc\include\mydefs.hpp %PRODUCT_INSTALL%\include\r
+xcopy /Q /R /Y %SOURCE_DIR%\libsrc\include\mydefs.hpp %PRODUCT_INSTALL%\include\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install mydefs.hpp\r
     exit 10\r
 )\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install mydefs.hpp\r
     exit 10\r
 )\r
-xcopy /q /r /Y %SOURCE_DIR%\libsrc\include\mystdlib.h %PRODUCT_INSTALL%\include\r
+xcopy /Q /R /Y %SOURCE_DIR%\libsrc\include\mystdlib.h %PRODUCT_INSTALL%\include\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install mystdlib.h\r
     exit 11\r
 )\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install mystdlib.h\r
     exit 11\r
 )\r
-xcopy /q /r /Y %SOURCE_DIR%\libsrc\include\nginterface.h %PRODUCT_INSTALL%\include\r
+xcopy /Q /R /Y %SOURCE_DIR%\libsrc\include\nginterface.h %PRODUCT_INSTALL%\include\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install nginterface.h\r
     exit 12\r
 )\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install nginterface.h\r
     exit 12\r
 )\r
-xcopy /q /r /Y %SOURCE_DIR%\libsrc\include\nginterface_V2.hpp %PRODUCT_INSTALL%\include\r
+xcopy /Q /R /Y %SOURCE_DIR%\libsrc\include\nginterface_V2.hpp %PRODUCT_INSTALL%\include\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install nginterface_V2.hpp\r
     exit 13\r
 )\r
 \r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install nginterface_V2.hpp\r
     exit 13\r
 )\r
 \r
-xcopy /q /r /Y %SOURCE_DIR%\nglib\nglib.h %PRODUCT_INSTALL%\include\r
+xcopy /Q /R /Y %SOURCE_DIR%\nglib\nglib.h %PRODUCT_INSTALL%\include\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install nglib.h\r
     exit 14\r
 )\r
 \r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install nglib.h\r
     exit 14\r
 )\r
 \r
-xcopy /q /r /Y %SOURCE_DIR%\libsrc\include\stlgeom.hpp %PRODUCT_INSTALL%\include\r
+xcopy /Q /R /Y %SOURCE_DIR%\libsrc\stlgeom\*.h* %PRODUCT_INSTALL%\include\r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install stlgeom\r
     exit 15\r
 )\r
 \r
 if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install stlgeom\r
     exit 15\r
 )\r
 \r
-robocopy %SOURCE_DIR%\cmake %PRODUCT_INSTALL%\cmake "*.cmake" /E /NP /NFL /NDL /NS /NC\r
-if NOT %ERRORLEVEL% == 1 (\r
+xcopy /Q /R /Y %SOURCE_DIR%\cmake\*.cmake %PRODUCT_INSTALL%\cmake\r
+if NOT %ERRORLEVEL% == 0 (\r
     echo ERROR on install cmake files\r
     exit 16\r
 )\r
     echo ERROR on install cmake files\r
     exit 16\r
 )\r
+\r
 taskkill /F /IM "mspdbsrv.exe"\r
 \r
 \r
 taskkill /F /IM "mspdbsrv.exe"\r
 \r
 \r
index 8b18cdcd56af5d2038b896e7bb20b42c555e1cb7..f92981da4f65ba2e2cc586292377e60a78f307fe 100644 (file)
@@ -31,6 +31,30 @@ default_win:
     }
 }
 
     }
 }
 
+version_4_10_3_with_CAS_7_8:
+{
+  archive_info : {archive_name : "gmsh-4.10.3.tar.gz"}
+  compil_script : "gmsh-4.10.3.sh"
+  depend : ["CAS","lapack","hdf5","medfile", "cgns"]
+  patches : ['gmsh-4.10.3-occt780.patch']
+}
+
+version_4_10_3_with_CAS_7_8_FD38:
+{
+  archive_info : {archive_name : "gmsh-4.10.3.tar.gz"}
+  compil_script : "gmsh-4.10.3.sh"
+  depend : ["CAS","lapack","hdf5","medfile", "cgns"]
+  patches : ["gmsh-4.10.3-gc13-fc38.patch", "gmsh-4.10.3-occt780.patch"]
+}
+
+version_4_10_3_with_CAS_7_8_win:
+{
+  archive_info : {archive_name : "gmsh-4.10.3.tar.gz"}
+  compil_script : "gmsh-4.10.3.bat"
+  depend : ["CAS","lapack","hdf5","medfile", "cgns"]
+  patches : ['gmsh-4.10.3-occt780-win.patch']
+}
+
 version_4_10_3:
 {
   compil_script : "gmsh-4.10.3.sh"
 version_4_10_3:
 {
   compil_script : "gmsh-4.10.3.sh"
index 05e01d166e7a9918306d19c81421041c0a477fff..987591e5c62176cc78bbc1a2ca38b1320581623e 100644 (file)
@@ -52,6 +52,25 @@ version_6_2_2101_win :
    }
 }
 
    }
 }
 
+version_5_3_1_with_CAS_7_8 :
+{
+    archive_info : {archive_name : "netgen-5.3.1.tar.gz"}
+    compil_script :  'netgen_5_3_1' + $VARS.scriptExtension
+    patches : ["netgen-5.3.1-for-SALOME-OCCT-7.2.0.patch","netgen5.3_withOCCT780_linux.patch"]
+}
+
+version_5_3_1_with_CAS_7_8_win :
+{
+   archive_info : {archive_name : "netgen-5.3.1.tar.gz"}
+   compil_script : 'netgen_5_3_1.bat'
+   patches :  ['netgen53ForSalomeOCCT730.patch','netgen53ForWindowsOCC780.patch','netgen53ForSalomeVisualStudio2017.patch','netgen5.3_withOCCT780_win.patch']
+   properties :
+   {
+     incremental : "yes"
+     single_install_dir : "yes"
+   }
+}
+
 version_5_3_1_with_CAS_7_2 :
 {
     archive_info : {archive_name : "netgen-5.3.1.tar.gz"}
 version_5_3_1_with_CAS_7_2 :
 {
     archive_info : {archive_name : "netgen-5.3.1.tar.gz"}
diff --git a/products/patches/gmsh-4.10.3-occt780-win.patch b/products/patches/gmsh-4.10.3-occt780-win.patch
new file mode 100644 (file)
index 0000000..ea95587
--- /dev/null
@@ -0,0 +1,22 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8f99dfe..8955a1f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1264,7 +1264,7 @@ if(ENABLE_OCC)
+   elseif(OCC_INC)
+     set(OCC_LIBS_REQUIRED
+       # subset of DataExchange
+-              TKSTEP TKSTEP209 TKSTEPAttr TKSTEPBase TKIGES TKXSBase
++              TKDESTEP TKDEIGES TKXSBase
+               # ModelingAlgorithms
+               TKOffset TKFeat TKFillet TKBool TKMesh TKHLR TKBO TKPrim TKShHealing
+               TKTopAlgo TKGeomAlgo
+@@ -1304,7 +1304,7 @@ if(ENABLE_OCC)
+     find_package(Freetype)
+     if(FREETYPE_FOUND)
+       set(OCC_CAF_LIBS_REQUIRED
+-          TKXDESTEP TKXDEIGES TKXCAF TKLCAF TKVCAF TKCAF TKV3d TKService TKCDF)
++          TKXCAF TKLCAF TKVCAF TKCAF TKV3d TKService TKCDF)
+       list(LENGTH OCC_CAF_LIBS_REQUIRED NUM_OCC_CAF_LIBS_REQUIRED)
+       set(OCC_CAF_LIBS)
+       foreach(OCC ${OCC_CAF_LIBS_REQUIRED})
diff --git a/products/patches/gmsh-4.10.3-occt780.patch b/products/patches/gmsh-4.10.3-occt780.patch
new file mode 100644 (file)
index 0000000..ea95587
--- /dev/null
@@ -0,0 +1,22 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8f99dfe..8955a1f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1264,7 +1264,7 @@ if(ENABLE_OCC)
+   elseif(OCC_INC)
+     set(OCC_LIBS_REQUIRED
+       # subset of DataExchange
+-              TKSTEP TKSTEP209 TKSTEPAttr TKSTEPBase TKIGES TKXSBase
++              TKDESTEP TKDEIGES TKXSBase
+               # ModelingAlgorithms
+               TKOffset TKFeat TKFillet TKBool TKMesh TKHLR TKBO TKPrim TKShHealing
+               TKTopAlgo TKGeomAlgo
+@@ -1304,7 +1304,7 @@ if(ENABLE_OCC)
+     find_package(Freetype)
+     if(FREETYPE_FOUND)
+       set(OCC_CAF_LIBS_REQUIRED
+-          TKXDESTEP TKXDEIGES TKXCAF TKLCAF TKVCAF TKCAF TKV3d TKService TKCDF)
++          TKXCAF TKLCAF TKVCAF TKCAF TKV3d TKService TKCDF)
+       list(LENGTH OCC_CAF_LIBS_REQUIRED NUM_OCC_CAF_LIBS_REQUIRED)
+       set(OCC_CAF_LIBS)
+       foreach(OCC ${OCC_CAF_LIBS_REQUIRED})
diff --git a/products/patches/netgen5.3_withOCCT780_linux.patch b/products/patches/netgen5.3_withOCCT780_linux.patch
new file mode 100644 (file)
index 0000000..e5714ab
--- /dev/null
@@ -0,0 +1,70 @@
+diff --git a/configure.ac b/configure.ac
+index 6db9de0..1c597c9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -43,7 +43,7 @@ AC_ARG_WITH([occ],
+ if test a$occon = atrue ; then
+       AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/include/opencascade"])
+-      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF"])
++      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKBRep -lTKXCAF -lTKLCAF -lTKDEIGES -lTKDESTEP -lTKDESTL"])
+ #  -lTKDCAF
+diff --git a/libsrc/occ/occgenmesh.cpp b/libsrc/occ/occgenmesh.cpp
+index 5026536..8074ca6 100644
+--- a/libsrc/occ/occgenmesh.cpp
++++ b/libsrc/occ/occgenmesh.cpp
+@@ -1242,9 +1242,9 @@ namespace netgen
+                for (int k = 1; k <=3; k++)
+                {
+-                  int n = triangulation->Triangles()(j)(k);
+-                  p[k-1] = triangulation->Nodes()(n).Transformed(loc);
+-                  par[k-1] = triangulation->UVNodes()(n);
++                  int n = triangulation->Triangle(j)(k);
++                  p[k - 1] = triangulation->Node(n).Transformed(loc);
++                  par[k - 1] = triangulation->UVNode(n);
+                }
+                //double maxside = 0;
+diff --git a/libsrc/occ/vsocc.cpp b/libsrc/occ/vsocc.cpp
+index 4d80600..74a85ae 100644
+--- a/libsrc/occ/vsocc.cpp
++++ b/libsrc/occ/vsocc.cpp
+@@ -463,7 +463,7 @@ namespace netgen
+          glBegin (GL_LINE_STRIP);
+          for (int j = 1; j <= nbnodes; j++)
+          {
+-            gp_Pnt p = (T -> Nodes())(aEdgePoly->Nodes()(j)).Transformed(aEdgeLoc);
++            gp_Pnt p = T -> Node(aEdgePoly->Nodes()(j)).Transformed(aEdgeLoc);
+             glVertex3f (p.X(), p.Y(), p.Z());
+          }
+          glEnd ();
+@@ -510,7 +510,7 @@ namespace netgen
+          glBegin (GL_LINE_STRIP);
+          for (int j = 1; j <= nbnodes; j++)
+          {
+-            gp_Pnt p = (T -> Nodes())(aEdgePoly->Nodes()(j)).Transformed(aEdgeLoc);
++            gp_Pnt p = T -> Node(aEdgePoly->Nodes()(j)).Transformed(aEdgeLoc);
+             glVertex3f (p.X(), p.Y(), p.Z());
+          }
+          glEnd ();
+@@ -586,14 +586,14 @@ namespace netgen
+          int ntriangles = triangulation -> NbTriangles();
+          for (int j = 1; j <= ntriangles; j++)
+          {
+-            Poly_Triangle triangle = (triangulation -> Triangles())(j);
++            Poly_Triangle triangle = triangulation -> Triangle(j);
+             gp_Pnt p[3];
+             for (int k = 1; k <= 3; k++)
+-            p[k-1] = (triangulation -> Nodes())(triangle(k)).Transformed(loc);
++            p[k-1] = triangulation -> Node(triangle(k)).Transformed(loc);
+             for (int k = 1; k <= 3; k++)
+             {
+-               uv = (triangulation -> UVNodes())(triangle(k));
++               uv = triangulation -> UVNode(triangle(k));
+                prop.SetParameters (uv.X(), uv.Y());
+                //           surf->D0 (uv.X(), uv.Y(), pnt);
diff --git a/products/patches/netgen5.3_withOCCT780_win.patch b/products/patches/netgen5.3_withOCCT780_win.patch
new file mode 100644 (file)
index 0000000..86d094c
--- /dev/null
@@ -0,0 +1,70 @@
+diff --git a/configure.ac b/configure.ac
+index 6db9de0..1c597c9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -43,7 +43,7 @@ AC_ARG_WITH([occ],
+ if test a$occon = atrue ; then
+       AC_SUBST([OCCFLAGS], ["-DOCCGEOMETRY -I$occdir/include/opencascade"])
+-      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKIGES -lTKBRep -lTKSTEPBase -lTKSTEP -lTKSTL -lTKSTEPAttr -lTKSTEP209 -lTKXDESTEP -lTKXDEIGES -lTKXCAF -lTKLCAF"])
++      AC_SUBST([OCCLIBS], ["-L$occdir/lib -lTKernel -lTKGeomBase -lTKMath -lTKG2d -lTKG3d -lTKXSBase -lTKOffset -lTKFillet -lTKShHealing -lTKMesh -lTKMeshVS -lTKTopAlgo -lTKGeomAlgo -lTKBool -lTKPrim -lTKBO -lTKBRep -lTKXCAF -lTKLCAF -lTKDEIGES -lTKDESTEP -lTKDESTL"])
+ #  -lTKDCAF
+diff --git a/libsrc/occ/occgenmesh.cpp b/libsrc/occ/occgenmesh.cpp
+index 1e0127f..d9b4e6f 100644
+--- a/libsrc/occ/occgenmesh.cpp
++++ b/libsrc/occ/occgenmesh.cpp
+@@ -1242,9 +1242,9 @@ namespace netgen
+                for (int k = 1; k <=3; k++)
+                {
+-                  int n = triangulation->Triangles()(j)(k);
+-                  p[k-1] = triangulation->Nodes()(n).Transformed(loc);
+-                  par[k-1] = triangulation->UVNodes()(n);
++                  int n = triangulation->Triangle(j)(k);
++                  p[k - 1] = triangulation->Node(n).Transformed(loc);
++                  par[k - 1] = triangulation->UVNode(n);
+                }
+                //double maxside = 0;
+diff --git a/libsrc/occ/vsocc.cpp b/libsrc/occ/vsocc.cpp
+index 4d80600..0070b56 100644
+--- a/libsrc/occ/vsocc.cpp
++++ b/libsrc/occ/vsocc.cpp
+@@ -463,7 +463,7 @@ namespace netgen
+          glBegin (GL_LINE_STRIP);
+          for (int j = 1; j <= nbnodes; j++)
+          {
+-            gp_Pnt p = (T -> Nodes())(aEdgePoly->Nodes()(j)).Transformed(aEdgeLoc);
++            gp_Pnt p = T->Node(aEdgePoly->Nodes()(j)).Transformed(aEdgeLoc);
+             glVertex3f (p.X(), p.Y(), p.Z());
+          }
+          glEnd ();
+@@ -510,7 +510,7 @@ namespace netgen
+          glBegin (GL_LINE_STRIP);
+          for (int j = 1; j <= nbnodes; j++)
+          {
+-            gp_Pnt p = (T -> Nodes())(aEdgePoly->Nodes()(j)).Transformed(aEdgeLoc);
++            gp_Pnt p = T->Node(aEdgePoly->Nodes()(j)).Transformed(aEdgeLoc);
+             glVertex3f (p.X(), p.Y(), p.Z());
+          }
+          glEnd ();
+@@ -586,14 +586,14 @@ namespace netgen
+          int ntriangles = triangulation -> NbTriangles();
+          for (int j = 1; j <= ntriangles; j++)
+          {
+-            Poly_Triangle triangle = (triangulation -> Triangles())(j);
++            Poly_Triangle triangle = triangulation->Triangles(j);
+             gp_Pnt p[3];
+             for (int k = 1; k <= 3; k++)
+-            p[k-1] = (triangulation -> Nodes())(triangle(k)).Transformed(loc);
++            p[k-1] = triangulation -> Nodes(triangle(k)).Transformed(loc);
+             for (int k = 1; k <= 3; k++)
+             {
+-               uv = (triangulation -> UVNodes())(triangle(k));
++               uv = triangulation -> UVNodes(triangle(k));
+                prop.SetParameters (uv.X(), uv.Y());
+                //           surf->D0 (uv.X(), uv.Y(), pnt);
diff --git a/products/patches/netgen53ForWindowsOCC780.patch b/products/patches/netgen53ForWindowsOCC780.patch
new file mode 100644 (file)
index 0000000..3a47f3f
--- /dev/null
@@ -0,0 +1,1223 @@
+diff -Naur netgen-5.3.1_orig/CMakeLists.txt netgen-5.3.1_modif/CMakeLists.txt
+--- netgen-5.3.1_orig/CMakeLists.txt   1970-01-01 03:00:00.000000000 +0300
++++ netgen-5.3.1_modif/CMakeLists.txt  2019-01-22 12:34:45.926401100 +0300
+@@ -0,0 +1,75 @@
++# Copyright (C) 2016 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, or (at your option) any later version.
++#
++# 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
++#
++CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8 FATAL_ERROR)
++INCLUDE(CMakeDependentOption)
++
++PROJECT(netgen C CXX)
++
++# Ensure a proper linker behavior:
++CMAKE_POLICY(SET CMP0003 NEW)
++
++# Versioning
++# ===========
++# Project name, upper case
++STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
++
++SET(${PROJECT_NAME_UC}_MAJOR_VERSION 5)
++SET(${PROJECT_NAME_UC}_MINOR_VERSION 3)
++SET(${PROJECT_NAME_UC}_PATCH_VERSION 1)
++SET(${PROJECT_NAME_UC}_VERSION
++  ${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
++
++# Common CMake macros
++# ===================
++LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
++# Detect platform
++INCLUDE(FindPLATFORM) 
++# Detect OCCT
++INCLUDE(FindCAS)
++
++# Detect ZLIB on Windows
++IF(WIN32)
++  SET(ZLIB_ROOT_DIR $ENV{ZLIB_ROOT_DIR})
++  IF(EXISTS ${ZLIB_ROOT_DIR})
++    SET(ZLIB_ROOT ${ZLIB_ROOT_DIR})
++    INCLUDE(FindZLIB)
++    IF (NOT ${ZLIB_FOUND})
++      MESSAGE(FATAL_ERROR "We absolutely need the zlib library, please check zlib installation !")
++    ENDIF()
++  ELSE()
++    MESSAGE(FATAL_ERROR "We absolutely need the zlib library, please define ZLIB_ROOT_DIR !")
++  ENDIF()
++ENDIF()
++
++
++# Common definitions
++# ==================
++ADD_DEFINITIONS(-DNO_PARALLEL_THREADS)
++ADD_DEFINITIONS(-DOCCGEOMETRY)
++
++# Target directories
++SET(NETGEN_INSTALL_BINS "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Install path: netgen binaries")
++SET(NETGEN_INSTALL_LIBS "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Install path: netgen libs")
++SET(NETGEN_INSTALL_HEADERS "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Install path: netgen headers")
++SET(NETGEN_INSTALL_CMAKE "${CMAKE_INSTALL_PREFIX}/cmake" CACHE PATH "Install path: netgen cmake files")
++
++# Sub-directories
++ADD_SUBDIRECTORY(nglib)
++ADD_SUBDIRECTORY(cmake)
++
+diff -Naur netgen-5.3.1_orig/cmake/CMakeLists.txt netgen-5.3.1_modif/cmake/CMakeLists.txt
+--- netgen-5.3.1_orig/cmake/CMakeLists.txt     1970-01-01 03:00:00.000000000 +0300
++++ netgen-5.3.1_modif/cmake/CMakeLists.txt    2019-01-22 12:34:45.946401400 +0300
+@@ -0,0 +1,22 @@
++# Copyright (C) 2016 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, or (at your option) any later version.
++#
++# 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
++#
++
++IF(WIN32)
++ INSTALL(FILES FindZLIB.cmake DESTINATION ${NETGEN_INSTALL_CMAKE})
++ENDIF()
+\ No newline at end of file
+diff -Naur netgen-5.3.1_orig/cmake/FindCAS.cmake netgen-5.3.1_modif/cmake/FindCAS.cmake
+--- netgen-5.3.1_ref/cmake/FindCAS.cmake       1970-01-01 01:00:00.000000000 +0100
++++ netgen-5.3.1_new/cmake/FindCAS.cmake       2024-04-26 15:51:06.689171700 +0200
+@@ -0,0 +1,147 @@
++#  Copyright (C) 2007-2016  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})
++ADD_DEFINITIONS(-DLIN -DLINTEL -DCSFDB)
++ADD_DEFINITIONS(-DNo_exception)
++ADD_DEFINITIONS(-DHAVE_LIMITS_H)
++
++IF(CMAKE_SIZEOF_VOID_P STREQUAL 8)
++  ADD_DEFINITIONS(-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 ${CASROOT}/win64/vc10/lib ${CASROOT}/win64/vc14/libd)
++  ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
++    SET(CASROOT_LIBDIR ${CASROOT}/win32/lib ${CASROOT}/win64/vc10/lib ${CASROOT}/win64/vc14/lib)
++  ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
++ELSE(WINDOWS)
++  SET(CASROOT_LIBDIR ${CASROOT}/lib)
++ENDIF(WINDOWS)
++
++SET(_CAS_VERSION_FILE_NAME Standard_Version.hxx)
++
++# Include directories:
++FIND_PATH(CAS_INCLUDE_DIRS ${_CAS_VERSION_FILE_NAME} PATHS ${CASROOT} PATH_SUFFIXES include/opencascade)
++IF(CAS_INCLUDE_DIRS)
++ELSE()
++  FIND_PATH(CAS_INCLUDE_DIRS ${_CAS_VERSION_FILE_NAME} PATHS ${CASROOT} PATH_SUFFIXES include inc)
++ENDIF()
++
++
++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(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(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(TKIGES TKDEIGES 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 TKDESTEP PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKSTL TKDESTL PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKTObj TKTObj PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKTopAlgo TKTopAlgo PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKV2d TKV2d PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKV3d TKV3d PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKVRML TKVRML PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKXCAF TKXCAF PATHS ${CASROOT_LIBDIR})
++FIND_LIBRARY(TKXCAFSchema TKXCAFSchema 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(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})
++
++#LIBRARIES
++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} ${TKSTEP} ${TKSTL} ${TKXSTEP} ${TKXCAF} ${TKLCAF})
+\ No newline at end of file
+diff -Naur netgen-5.3.1_orig/cmake/FindPLATFORM.cmake netgen-5.3.1_modif/cmake/FindPLATFORM.cmake
+--- netgen-5.3.1_orig/cmake/FindPLATFORM.cmake 1970-01-01 03:00:00.000000000 +0300
++++ netgen-5.3.1_modif/cmake/FindPLATFORM.cmake        2019-01-22 12:34:45.962402900 +0300
+@@ -0,0 +1,96 @@
++#  Copyright (C) 2007-2016  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)
++  ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)  # To disable windows warnings for strcpy, fopen, ...
++  ADD_DEFINITIONS(-D_SCL_SECURE_NO_WARNINGS)  # To disable windows warnings std::copy, std::transform, ...
++  ADD_DEFINITIONS(-DWNT)
++  ADD_DEFINITIONS(-DPPRO_NT) # For medfile
++  ADD_DEFINITIONS(-D_USE_MATH_DEFINES) # At least for MEDMEM
++  ADD_DEFINITIONS(-D_WIN32_WINNT=0x0501) # 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_LIBADD ${PLATFORM_LIBADD} -ldl)
++ENDIF(WINDOWS) 
+\ No newline at end of file
+diff -Naur netgen-5.3.1_orig/cmake/FindZLIB.cmake netgen-5.3.1_modif/cmake/FindZLIB.cmake
+--- netgen-5.3.1_orig/cmake/FindZLIB.cmake     1970-01-01 03:00:00.000000000 +0300
++++ netgen-5.3.1_modif/cmake/FindZLIB.cmake    2019-01-22 12:34:45.972400600 +0300
+@@ -0,0 +1,45 @@
++#  Copyright (C) 2007-2016  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(_ZLIB_SDIRS)
++
++# Search in ZLIB_ROOT_DIR first
++IF(ZLIB_ROOT_DIR)
++  SET(_ZLIB_SEARCH_ROOT PATHS ${ZLIB_ROOT_DIR} NO_DEFAULT_PATH)
++  list(APPEND _ZLIB_SDIRS _ZLIB_SEARCH_ROOT)
++ENDIF()
++
++SET(ZLIB_NAMES z zlib zdll zlib1 zlibd zlibd1 zlib1d)
++
++# Try each search configuration.
++FOREACH(search ${_ZLIB_SDIRS})
++  FIND_PATH(ZLIB_INCLUDE_DIR NAMES zlib.h        ${${search}} PATH_SUFFIXES include)
++  FIND_LIBRARY(ZLIB_LIBRARY  NAMES ${ZLIB_NAMES} ${search} PATH_SUFFIXES lib)
++ENDFOREACH()
++
++MARK_AS_ADVANCED(ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
++
++
++INCLUDE(FindPackageHandleStandardArgs)
++FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZLIB REQUIRED_VARS ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
++
++IF(ZLIB_FOUND)
++    SET(ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
++    SET(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
++ENDIF()
+diff -Naur netgen-5.3.1_orig/libsrc/csg/specpoin.hpp netgen-5.3.1_modif/libsrc/csg/specpoin.hpp
+--- netgen-5.3.1_orig/libsrc/csg/specpoin.hpp  2014-08-29 12:54:06.000000000 +0300
++++ netgen-5.3.1_modif/libsrc/csg/specpoin.hpp 2019-01-22 12:34:45.978401300 +0300
+@@ -8,10 +8,12 @@
+ /* Date:   01. Okt. 95                                                    */
+ /**************************************************************************/
++#include <myadt.hpp>
++
+ namespace netgen
+ {
+-  extern DLL_HEADER MeshingParameters mparam;
++  DLL_HEADER extern MeshingParameters mparam;
+   /*
+diff -Naur netgen-5.3.1_orig/libsrc/general/template.hpp netgen-5.3.1_modif/libsrc/general/template.hpp
+--- netgen-5.3.1_orig/libsrc/general/template.hpp      2014-08-29 12:54:06.000000000 +0300
++++ netgen-5.3.1_modif/libsrc/general/template.hpp     2019-01-22 12:34:46.006400400 +0300
+@@ -26,10 +26,10 @@
+ DLL_HEADER extern ostream * testout;
+ /** use instead of cout */
+-extern ostream * mycout;
++DLL_HEADER extern ostream * mycout;
+ /** error output stream */
+-extern ostream * myerr;
++DLL_HEADER extern ostream * myerr;
+ /** Error messages display.
+   Error messages are displayed by this function */
+diff -Naur netgen-5.3.1_orig/libsrc/include/mystdlib.h netgen-5.3.1_modif/libsrc/include/mystdlib.h
+--- netgen-5.3.1_orig/libsrc/include/mystdlib.h        2014-08-29 12:54:04.000000000 +0300
++++ netgen-5.3.1_modif/libsrc/include/mystdlib.h       2019-01-22 12:34:46.018400100 +0300
+@@ -66,6 +66,7 @@
+ #  ifdef MSVC_EXPRESS
+ #   include <pthread.h>
+ #  else
++    #define _AFXDLL
+ #   include <afxwin.h>
+ #   include <afxmt.h>
+ #  endif // MSVC_EXPRESS
+diff -Naur netgen-5.3.1_orig/libsrc/interface/nginterface.cpp netgen-5.3.1_modif/libsrc/interface/nginterface.cpp
+--- netgen-5.3.1_orig/libsrc/interface/nginterface.cpp 2014-08-29 12:54:02.000000000 +0300
++++ netgen-5.3.1_modif/libsrc/interface/nginterface.cpp        2019-01-22 12:34:46.030400300 +0300
+@@ -1,3 +1,16 @@
++#ifdef _MSC_VER
++#ifndef MSVC_EXPRESS
++
++#define _AFXDLL
++
++#include <Afxwin.h>
++#include <winsock2.h>
++#include <winsock.h>
++#include <windows.h>
++
++#endif
++#endif
++
+ #include <mystdlib.h>
+ #include <meshing.hpp>
+@@ -11,7 +24,6 @@
+ #include "nginterface.h"
+ #include "../visualization/soldata.hpp"
+-
+ #ifdef _MSC_VER
+ // Philippose - 30/01/2009
+ // MSVC Express Edition Support
+diff -Naur netgen-5.3.1_orig/libsrc/meshing/global.hpp netgen-5.3.1_modif/libsrc/meshing/global.hpp
+--- netgen-5.3.1_orig/libsrc/meshing/global.hpp        2014-08-29 12:54:06.000000000 +0300
++++ netgen-5.3.1_modif/libsrc/meshing/global.hpp       2019-01-22 12:34:46.042401800 +0300
+@@ -8,6 +8,8 @@
+ /* Date:   01. Okt. 95                                                    */
+ /**************************************************************************/
++#include <myadt.hpp>
++
+ /*
+   global functions and variables
+ */
+@@ -29,7 +31,7 @@
+   extern Array<int> tets_in_qualclass;
+-  class multithreadt
++  class DLL_HEADER multithreadt
+   {
+   public:
+     int pause;
+@@ -44,7 +46,7 @@
+     multithreadt();
+   };
+-  extern volatile multithreadt multithread;
++  DLL_HEADER extern volatile multithreadt multithread;
+   DLL_HEADER extern string ngdir;
+   extern DebugParameters debugparam;
+diff -Naur netgen-5.3.1_orig/libsrc/meshing/meshclass.hpp netgen-5.3.1_modif/libsrc/meshing/meshclass.hpp
+--- netgen-5.3.1_orig/libsrc/meshing/meshclass.hpp     2014-08-29 12:54:06.000000000 +0300
++++ netgen-5.3.1_modif/libsrc/meshing/meshclass.hpp    2019-01-22 12:34:46.064400700 +0300
+@@ -311,7 +311,7 @@
+     { return lockedpoints; }
+     /// Returns number of domains
+-    int GetNDomains() const;
++    DLL_HEADER int GetNDomains() const;
+     ///
+     int GetDimension() const 
+@@ -320,7 +320,7 @@
+     { dimension = dim; }
+     /// sets internal tables
+-    void CalcSurfacesOfNode ();
++    void DLL_HEADER CalcSurfacesOfNode ();
+     /// additional (temporarily) fix points 
+     void FixPoints (const BitArray & fixpoints);
+@@ -390,13 +390,13 @@
+     ///
+     DLL_HEADER void SetGlobalH (double h);
+     ///
+-    void SetMinimalH (double h);
++    void DLL_HEADER SetMinimalH (double h);
+     ///
+     double MaxHDomain (int dom) const;
+     ///
+     void SetMaxHDomain (const Array<double> & mhd);
+     ///
+-    double GetH (const Point3d & p) const;
++    double DLL_HEADER GetH (const Point3d & p) const;
+     ///
+     double GetMinH (const Point3d & pmin, const Point3d & pmax);
+     ///
+diff -Naur netgen-5.3.1_orig/libsrc/meshing/meshtype.hpp netgen-5.3.1_modif/libsrc/meshing/meshtype.hpp
+--- netgen-5.3.1_orig/libsrc/meshing/meshtype.hpp      2019-01-22 13:07:09.630603600 +0300
++++ netgen-5.3.1_modif/libsrc/meshing/meshtype.hpp     2019-01-22 12:34:46.078402400 +0300
+@@ -324,19 +324,19 @@
+   public:
+     ///
+-    Element2d ();
++    DLL_HEADER Element2d ();
+     ///
+-    Element2d (int anp);
++    DLL_HEADER Element2d (int anp);
+     ///
+     DLL_HEADER Element2d (ELEMENT_TYPE type);
+     ///
+-    Element2d (int pi1, int pi2, int pi3);
++    DLL_HEADER Element2d (int pi1, int pi2, int pi3);
+     ///
+-    Element2d (int pi1, int pi2, int pi3, int pi4);
++    DLL_HEADER Element2d (int pi1, int pi2, int pi3, int pi4);
+     ///
+-    ELEMENT_TYPE GetType () const { return typ; }
++    DLL_HEADER ELEMENT_TYPE GetType () const { return typ; }
+     /// 
+-    void SetType (ELEMENT_TYPE atyp)
++    DLL_HEADER  void SetType (ELEMENT_TYPE atyp)
+     {
+       typ = atyp;
+       switch (typ)
+@@ -351,9 +351,9 @@
+       }
+     }
+     ///
+-    int GetNP() const { return np; }
++    DLL_HEADER int GetNP() const { return np; }
+     ///
+-    int GetNV() const
++    DLL_HEADER int GetNV() const
+     {
+       if (typ == TRIG || typ == TRIG6)
+         return 3;
+@@ -385,95 +385,95 @@
+     }
+     ///
+-    PointIndex & operator[] (int i) { return pnum[i]; }
++    DLL_HEADER  PointIndex & operator[] (int i) { return pnum[i]; }
+     ///
+-    const PointIndex & operator[] (int i) const { return pnum[i]; }
++    DLL_HEADER const PointIndex & operator[] (int i) const { return pnum[i]; }
+-    FlatArray<const PointIndex> PNums () const 
++    DLL_HEADER  FlatArray<const PointIndex> PNums () const 
+     { return FlatArray<const PointIndex> (np, &pnum[0]); }
+     
+     ///
+-    PointIndex & PNum (int i) { return pnum[i-1]; }
++    DLL_HEADER PointIndex & PNum (int i) { return pnum[i-1]; }
+     ///
+-    const PointIndex & PNum (int i) const { return pnum[i-1]; }
++    DLL_HEADER const PointIndex & PNum (int i) const { return pnum[i-1]; }
+     ///
+-    PointIndex & PNumMod (int i) { return pnum[(i-1) % np]; }
++    DLL_HEADER PointIndex & PNumMod (int i) { return pnum[(i-1) % np]; }
+     ///
+-    const PointIndex & PNumMod (int i) const { return pnum[(i-1) % np]; }
++    DLL_HEADER const PointIndex & PNumMod (int i) const { return pnum[(i-1) % np]; }
+     ///
+     ///
+-    PointGeomInfo & GeomInfoPi (int i) { return geominfo[i-1]; }
++    DLL_HEADER PointGeomInfo & GeomInfoPi (int i) { return geominfo[i-1]; }
+     ///
+-    const PointGeomInfo & GeomInfoPi (int i) const { return geominfo[i-1]; }
++    DLL_HEADER const PointGeomInfo & GeomInfoPi (int i) const { return geominfo[i-1]; }
+     ///
+-    PointGeomInfo & GeomInfoPiMod (int i) { return geominfo[(i-1) % np]; }
++    DLL_HEADER PointGeomInfo & GeomInfoPiMod (int i) { return geominfo[(i-1) % np]; }
+     ///
+-    const PointGeomInfo & GeomInfoPiMod (int i) const { return geominfo[(i-1) % np]; }
++    DLL_HEADER const PointGeomInfo & GeomInfoPiMod (int i) const { return geominfo[(i-1) % np]; }
+-    void SetIndex (int si) { index = si; }
++    DLL_HEADER void SetIndex (int si) { index = si; }
+     ///
+-    int GetIndex () const { return index; }
++    DLL_HEADER int GetIndex () const { return index; }
+-    int GetOrder () const { return orderx; }
+-    void SetOrder (int aorder) { orderx = ordery = aorder; }
++    DLL_HEADER int GetOrder () const { return orderx; }
++    DLL_HEADER void SetOrder (int aorder) { orderx = ordery = aorder; }
+-    void GetOrder (int & ox, int & oy) const { ox = orderx, oy =ordery;};
+-    void GetOrder (int & ox, int & oy, int & oz) const { ox = orderx; oy = ordery; oz=0; }
+-    void SetOrder (int ox, int oy, int  /* oz */) { orderx = ox; ordery = oy;}
+-    void SetOrder (int ox, int oy) { orderx = ox; ordery = oy;}
++    DLL_HEADER void GetOrder (int & ox, int & oy) const { ox = orderx, oy =ordery;};
++    DLL_HEADER void GetOrder (int & ox, int & oy, int & oz) const { ox = orderx; oy = ordery; oz=0; }
++    DLL_HEADER void SetOrder (int ox, int oy, int  /* oz */) { orderx = ox; ordery = oy;}
++    DLL_HEADER void SetOrder (int ox, int oy) { orderx = ox; ordery = oy;}
+     ///
+-    void GetBox (const T_POINTS & points, Box3d & box) const;
++    DLL_HEADER void GetBox (const T_POINTS & points, Box3d & box) const;
+     /// invert orientation
+-    inline void Invert ();
++    DLL_HEADER inline void Invert ();
+     ///
+-    void Invert2 ();
++    DLL_HEADER void Invert2 ();
+     /// first point number is smallest
+-    inline void NormalizeNumbering ();
++    DLL_HEADER inline void NormalizeNumbering ();
+     ///
+-    void NormalizeNumbering2 ();
++    DLL_HEADER void NormalizeNumbering2 ();
+-    bool BadElement() const { return badel; }
++    DLL_HEADER bool BadElement() const { return badel; }
+     // friend ostream & operator<<(ostream  & s, const Element2d & el);
+     friend class Mesh;
+     /// get number of 'integration points'
+-    int GetNIP () const;
+-    void GetIntegrationPoint (int ip, Point2d & p, double & weight) const;
++    DLL_HEADER int GetNIP () const;
++    DLL_HEADER void GetIntegrationPoint (int ip, Point2d & p, double & weight) const;
+-    void GetTransformation (int ip, const Array<Point2d> & points,
++    DLL_HEADER void GetTransformation (int ip, const Array<Point2d> & points,
+                           class DenseMatrix & trans) const;
+-    void GetTransformation (int ip, class DenseMatrix & pmat,
++    DLL_HEADER void GetTransformation (int ip, class DenseMatrix & pmat,
+                           class DenseMatrix & trans) const;
+-    void GetShape (const Point2d & p, class Vector & shape) const;
+-    void GetShapeNew (const Point<2> & p, class FlatVector & shape) const;
++    DLL_HEADER void GetShape (const Point2d & p, class Vector & shape) const;
++    DLL_HEADER void GetShapeNew (const Point<2> & p, class FlatVector & shape) const;
+     /// matrix 2 * np
+-    void GetDShape (const Point2d & p, class DenseMatrix & dshape) const;
+-    void GetDShapeNew (const Point<2> & p, class MatrixFixWidth<2> & dshape) const;
++    DLL_HEADER void GetDShape (const Point2d & p, class DenseMatrix & dshape) const;
++    DLL_HEADER void GetDShapeNew (const Point<2> & p, class MatrixFixWidth<2> & dshape) const;
+     /// matrix 2 * np
+-    void GetPointMatrix (const Array<Point2d> & points,
++    DLL_HEADER void GetPointMatrix (const Array<Point2d> & points,
+                        class DenseMatrix & pmat) const; 
+-    void ComputeIntegrationPointData () const;
++    DLL_HEADER void ComputeIntegrationPointData () const;
+   
+-    double CalcJacobianBadness (const Array<Point2d> & points) const;
+-    double CalcJacobianBadness (const T_POINTS & points, 
++    DLL_HEADER double CalcJacobianBadness (const Array<Point2d> & points) const;
++    DLL_HEADER double CalcJacobianBadness (const T_POINTS & points, 
+                               const Vec<3> & n) const;
+-    double CalcJacobianBadnessDirDeriv (const Array<Point2d> & points,
++    DLL_HEADER double CalcJacobianBadnessDirDeriv (const Array<Point2d> & points,
+                                       int pi, Vec2d & dir, double & dd) const;
+-    void Delete () { deleted = 1; pnum[0] = pnum[1] = pnum[2] = pnum[3] = PointIndex::BASE-1; }
+-    bool IsDeleted () const 
++    DLL_HEADER void Delete () { deleted = 1; pnum[0] = pnum[1] = pnum[2] = pnum[3] = PointIndex::BASE-1; }
++    DLL_HEADER bool IsDeleted () const 
+     {
+ #ifdef DEBUG
+       if (pnum[0] < PointIndex::BASE && !deleted)
+@@ -484,27 +484,27 @@
+     // Philippose - 08 August 2010
+     // Access functions for the new property: visible
+-    void Visible(bool vis = 1) 
++    DLL_HEADER void Visible(bool vis = 1) 
+     { visible = vis; }
+-    bool IsVisible () const 
++    DLL_HEADER bool IsVisible () const 
+     { return visible; }
+    
+-    void SetRefinementFlag (bool rflag = 1) 
++    DLL_HEADER void SetRefinementFlag (bool rflag = 1) 
+     { refflag = rflag; }
+-    bool TestRefinementFlag () const
++    DLL_HEADER bool TestRefinementFlag () const
+     { return refflag; }
+-    void SetStrongRefinementFlag (bool rflag = 1) 
++    DLL_HEADER void SetStrongRefinementFlag (bool rflag = 1) 
+     { strongrefflag = rflag; }
+-    bool TestStrongRefinementFlag () const
++    DLL_HEADER bool TestStrongRefinementFlag () const
+     { return strongrefflag; }
+   
+-    SurfaceElementIndex NextElement() { return next; }
++    DLL_HEADER SurfaceElementIndex NextElement() { return next; }
+-    bool operator==(const Element2d & el2) const;
++    DLL_HEADER bool operator==(const Element2d & el2) const;
+-    int HasFace(const Element2d& el) const;
++    DLL_HEADER int HasFace(const Element2d& el) const;
+     ///
+     int meshdocval;
+     ///
+@@ -517,7 +517,7 @@
+   };
+-  ostream & operator<<(ostream  & s, const Element2d & el);
++  DLL_HEADER ostream & operator<<(ostream  & s, const Element2d & el);
+diff -Naur netgen-5.3.1_orig/libsrc/occ/occgenmesh.cpp netgen-5.3.1_modif/libsrc/occ/occgenmesh.cpp
+--- netgen-5.3.1_orig/libsrc/occ/occgenmesh.cpp        2019-01-22 13:07:09.801603600 +0300
++++ netgen-5.3.1_modif/libsrc/occ/occgenmesh.cpp       2019-01-22 12:34:46.090399900 +0300
+@@ -18,7 +18,7 @@
+ #define VSMALL 1e-10
+-   bool merge_solids = 1;
++   DLL_HEADER bool merge_solids = 1;
+   // can you please explain what you intend to compute here (JS) !!!
+@@ -540,7 +540,7 @@
+                  
+                   Point<3> fp = occ2ng (BRep_Tool::Pnt (v1));
+                   Point<3> lp = occ2ng (BRep_Tool::Pnt (v2));
+-                  double tol2 = std::min( eps*eps, 1e-6 * Dist2( fp, lp ));
++                  double tol2 = min( eps*eps, 1e-6 * Dist2( fp, lp ));
+                   if ( isClosedEdge )
+                     tol2 = BRep_Tool::Tolerance( v1 ) * BRep_Tool::Tolerance( v1 );
+diff -Naur netgen-5.3.1_orig/libsrc/occ/occgeom.hpp netgen-5.3.1_modif/libsrc/occ/occgeom.hpp
+--- netgen-5.3.1_orig/libsrc/occ/occgeom.hpp   2019-01-22 13:07:09.828603500 +0300
++++ netgen-5.3.1_modif/libsrc/occ/occgeom.hpp  2019-01-22 12:34:46.100401600 +0300
+@@ -9,6 +9,8 @@
+ #ifdef OCCGEOMETRY
++#include <myadt.hpp>
++
+ #include <meshing.hpp>
+ #include "BRep_Tool.hxx"
+@@ -122,7 +124,7 @@
+ {
+ #include "occmeshsurf.hpp"
+-  extern DLL_HEADER MeshingParameters mparam;
++  DLL_HEADER extern MeshingParameters mparam;
+ #define PROJECTION_TOLERANCE 1e-10
+@@ -197,7 +199,7 @@
+-   class OCCGeometry : public NetgenGeometry
++   class DLL_HEADER OCCGeometry : public NetgenGeometry
+    {
+       Point<3> center;
+       // -- Optimization: to use cached projector and classifier
+@@ -413,7 +415,7 @@
+-   class OCCParameters
++   class DLL_HEADER OCCParameters
+    {
+    public:
+@@ -453,21 +455,21 @@
+    OCCGeometry * LoadOCC_STEP (const char * filename);
+    OCCGeometry * LoadOCC_BREP (const char * filename);
+-   extern OCCParameters occparam;
++   extern DLL_HEADER OCCParameters occparam;
+    // Philippose - 31.09.2009
+    // External access to the mesh generation functions within the OCC
+    // subsystem (Not sure if this is the best way to implement this....!!)
+-   extern int OCCGenerateMesh (OCCGeometry & occgeometry, Mesh*& mesh,
++   extern DLL_HEADER int OCCGenerateMesh (OCCGeometry & occgeometry, Mesh*& mesh,
+                              MeshingParameters & mparam,
+                              int perfstepsstart, int perfstepsend);
+-  extern void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh);
++  extern DLL_HEADER void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh);
+-   extern void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend);
++   extern DLL_HEADER void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend);
+-   extern void OCCFindEdges (OCCGeometry & geom, Mesh & mesh);
++   extern DLL_HEADER void OCCFindEdges (OCCGeometry & geom, Mesh & mesh);
+ }
+ #endif
+diff -Naur netgen-5.3.1_orig/libsrc/occ/occmeshsurf.hpp netgen-5.3.1_modif/libsrc/occ/occmeshsurf.hpp
+--- netgen-5.3.1_orig/libsrc/occ/occmeshsurf.hpp       2019-01-22 13:07:01.521952200 +0300
++++ netgen-5.3.1_modif/libsrc/occ/occmeshsurf.hpp      2019-01-22 12:34:46.109400000 +0300
+@@ -169,7 +169,7 @@
+ class OCCGeometry;
+-class OCCRefinementSurfaces : public Refinement
++class DLL_HEADER OCCRefinementSurfaces : public Refinement
+ {
+   const OCCGeometry & geometry;
+diff -Naur netgen-5.3.1_orig/libsrc/stlgeom/stlgeom.hpp netgen-5.3.1_modif/libsrc/stlgeom/stlgeom.hpp
+--- netgen-5.3.1_orig/libsrc/stlgeom/stlgeom.hpp       2014-08-29 12:54:06.000000000 +0300
++++ netgen-5.3.1_modif/libsrc/stlgeom/stlgeom.hpp      2019-01-22 12:41:58.899495900 +0300
+@@ -38,7 +38,7 @@
+     return true;
+   }
+   
+-  extern DLL_HEADER MeshingParameters mparam;
++  DLL_HEADER extern MeshingParameters mparam;
+   
+@@ -98,7 +98,7 @@
+-  class STLGeometry : public STLTopology, public NetgenGeometry
++  class DLL_HEADER STLGeometry : public STLTopology, public NetgenGeometry
+   {
+     // edges to be meshed:
+     Array<STLEdge> edges;
+diff -Naur netgen-5.3.1_orig/libsrc/stlgeom/stltool.hpp netgen-5.3.1_modif/libsrc/stlgeom/stltool.hpp
+--- netgen-5.3.1_orig/libsrc/stlgeom/stltool.hpp       2014-08-29 12:54:06.000000000 +0300
++++ netgen-5.3.1_modif/libsrc/stlgeom/stltool.hpp      2019-01-22 12:31:33.216947700 +0300
+@@ -183,7 +183,7 @@
+ };
+-class STLDoctorParams
++class DLL_HEADER STLDoctorParams
+ {
+ public:
+   int drawmeshededges;
+@@ -218,11 +218,11 @@
+   void Print (ostream & ost) const;
+ };
+-extern STLDoctorParams stldoctor;
++extern DLL_HEADER STLDoctorParams stldoctor;
+-class STLParameters
++class DLL_HEADER STLParameters
+ {
+ public:
+   /// angle for edge detection
+@@ -267,7 +267,7 @@
+   void Print (ostream & ost) const;
+ };
+-extern STLParameters stlparam;
++extern DLL_HEADER STLParameters stlparam;
+ void STLMeshing (STLGeometry & geom,
+diff -Naur netgen-5.3.1_orig/libsrc/stlgeom/stltopology.hpp netgen-5.3.1_modif/libsrc/stlgeom/stltopology.hpp
+--- netgen-5.3.1_orig/libsrc/stlgeom/stltopology.hpp   2014-08-29 12:54:06.000000000 +0300
++++ netgen-5.3.1_modif/libsrc/stlgeom/stltopology.hpp  2019-01-22 12:43:39.341330600 +0300
+@@ -236,7 +236,7 @@
+-class STLTopology
++class DLL_HEADER STLTopology
+ {
+ protected:
+   Array<STLTriangle> trias;
+diff -Naur netgen-5.3.1_orig/nglib/CMakeLists.txt netgen-5.3.1_modif/nglib/CMakeLists.txt
+--- netgen-5.3.1_orig/nglib/CMakeLists.txt     1970-01-01 03:00:00.000000000 +0300
++++ netgen-5.3.1_modif/nglib/CMakeLists.txt    2019-01-22 12:34:46.146402900 +0300
+@@ -0,0 +1,260 @@
++# Copyright (C) 2016 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, or (at your option) any later version.
++#
++# 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
++#
++INCLUDE_DIRECTORIES(
++    ${CMAKE_CURRENT_SOURCE_DIR}
++    ${PROJECT_SOURCE_DIR}/libsrc/include
++    ${ZLIB_INCLUDE_DIRS}
++    ${CAS_INCLUDE_DIRS}
++)
++
++
++# CGS
++SET(CGS_SOURCES 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/algprim.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/brick.cpp
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/bspline2d.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/csgeom.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/csgparser.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/curve2d.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/edgeflw.cpp      
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/explicitcurve2d.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/extrusion.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/gencyl.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/genmesh.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/identify.cpp  
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/manifold.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/meshsurf.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/polyhedra.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/revolution.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/singularref.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/solid.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/specpoin.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/spline3d.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/surface.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/csg/triapprox.cpp)
++
++# GENERAL
++SET(GENERAL_SOURCES 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/array.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/bitarray.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/dynamicmem.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/flags.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/hashtabl.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/mystring.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/ngexception.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/optmem.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/parthreads.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/profiler.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/seti.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/sort.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/spbita2d.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/symbolta.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/table.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/mpi_interface.cpp 
++   ${PROJECT_SOURCE_DIR}/libsrc/general/gzstream.cpp)
++
++FILE(GLOB GENERAL_INCLUDES "${PROJECT_SOURCE_DIR}/libsrc/general/*.hpp")
++LIST(APPEND GENERAL_INCLUDES ${PROJECT_SOURCE_DIR}/libsrc/general/gzstream.h)
++
++# GEOM2D
++SET (GEOM2D_SOURCES 
++     ${PROJECT_SOURCE_DIR}/libsrc/geom2d/genmesh2d.cpp 
++     ${PROJECT_SOURCE_DIR}/libsrc/geom2d/geom2dmesh.cpp 
++     ${PROJECT_SOURCE_DIR}/libsrc/geom2d/geometry2d.cpp)
++
++# GPRIM
++SET(GPRIM_SOURCES 
++    ${PROJECT_SOURCE_DIR}/libsrc/gprim/adtree.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/gprim/geom2d.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/gprim/geom3d.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/gprim/geomfuncs.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/gprim/geomtest3d.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/gprim/transform3d.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/gprim/spline.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/gprim/splinegeometry.cpp)
++
++FILE(GLOB GPRIM_INCLUDES "${PROJECT_SOURCE_DIR}/libsrc/gprim/*.hpp")
++
++# INCLUDE
++SET(INCLUDE_INCLUDES 
++    ${PROJECT_SOURCE_DIR}/libsrc/include/nginterface.h
++    ${PROJECT_SOURCE_DIR}/libsrc/include/nginterface_v2.hpp
++    ${PROJECT_SOURCE_DIR}/libsrc/include/mystdlib.h
++    ${PROJECT_SOURCE_DIR}/libsrc/include/mydefs.hpp)
++
++# INTERFACE
++SET(INTERFACE_SOURCES 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/nginterface.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/nginterface_v2.cpp
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/read_fnf_mesh.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/readtetmesh.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/readuser.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writeabaqus.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writediffpack.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writedolfin.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writeelmer.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writefeap.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writefluent.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writegmsh.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writejcm.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writepermas.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writetecplot.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writetet.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writetochnog.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writeuser.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/wuchemnitz.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writegmsh2.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/interface/writeOpenFOAM15x.cpp)
++
++# LINALG
++SET (LINALG_SOURCES 
++     ${PROJECT_SOURCE_DIR}/libsrc/linalg/densemat.cpp 
++     ${PROJECT_SOURCE_DIR}/libsrc/linalg/polynomial.cpp 
++     ${PROJECT_SOURCE_DIR}/libsrc/linalg/bfgs.cpp 
++     ${PROJECT_SOURCE_DIR}/libsrc/linalg/linopt.cpp 
++     ${PROJECT_SOURCE_DIR}/libsrc/linalg/linsearch.cpp)
++
++FILE(GLOB LINALG_INCLUDES "${PROJECT_SOURCE_DIR}/libsrc/linalg/*.hpp")
++
++# MESHING
++SET(MESHING_SOURCES 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/adfront2.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/adfront3.cpp
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/bisect.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/boundarylayer.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/clusters.cpp      
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/curvedelems.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/delaunay.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/delaunay2d.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/geomsearch.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/global.cpp     
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/hprefinement.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/improve2.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/improve2gen.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/improve3.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/localh.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshclass.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshfunc.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshfunc2d.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshing2.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshing3.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshtool.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshtype.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/msghandler.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/netrule2.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/netrule3.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/parser2.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/parser3.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/prism2rls.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/pyramid2rls.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/pyramidrls.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/quadrls.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/refine.cpp   
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/ruler2.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/ruler3.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/secondorder.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/smoothing2.5.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/smoothing2.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/smoothing3.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/specials.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/tetrarls.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/topology.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/triarls.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/validate.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/zrefine.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/bcfunctions.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/parallelmesh.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/paralleltop.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/paralleltop.hpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/meshing/basegeom.cpp)
++
++FILE(GLOB MESHING_INCLUDES "${PROJECT_SOURCE_DIR}/libsrc/meshing/*.hpp")
++
++# OCC
++SET(OCC_SOURCES 
++    ${PROJECT_SOURCE_DIR}/libsrc/occ/Partition_Inter2d.cxx 
++    ${PROJECT_SOURCE_DIR}/libsrc/occ/Partition_Inter3d.cxx 
++    ${PROJECT_SOURCE_DIR}/libsrc/occ/Partition_Loop.cxx 
++    ${PROJECT_SOURCE_DIR}/libsrc/occ/Partition_Loop2d.cxx 
++    ${PROJECT_SOURCE_DIR}/libsrc/occ/Partition_Loop3d.cxx 
++    ${PROJECT_SOURCE_DIR}/libsrc/occ/Partition_Spliter.cxx 
++    ${PROJECT_SOURCE_DIR}/libsrc/occ/occconstruction.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/occ/occgenmesh.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/occ/occgeom.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/occ/occmeshsurf.cpp)
++
++SET(OCC_INCLUDES ${PROJECT_SOURCE_DIR}/libsrc/occ/occgeom.hpp ${PROJECT_SOURCE_DIR}/libsrc/occ/occmeshsurf.hpp)
++
++# STLGEOM
++SET(STLGEOM_SOURCES 
++    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/meshstlsurface.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stlgeom.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stlgeomchart.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stlgeommesh.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stlline.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stltool.cpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stltopology.cpp)
++
++SET(STLGEOM_INCLUDES
++    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/meshstlsurface.hpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stlgeom.hpp
++    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stlline.hpp
++    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stltool.hpp 
++    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stltopology.hpp)
++
++# NGLIB
++SET(NGLIB_SOURCES nglib.cpp)
++ADD_LIBRARY(nglib SHARED 
++            ${NGLIB_SOURCES}
++            ${CGS_SOURCES} 
++            ${GENERAL_SOURCES}
++            ${GPRIM_SOURCES}
++            ${GEOM2D_SOURCES}
++            ${INTERFACE_SOURCES} 
++            ${LINALG_SOURCES} 
++            ${MESHING_SOURCES} 
++            ${OCC_SOURCES}
++            ${STLGEOM_SOURCES})
++
++TARGET_LINK_LIBRARIES(nglib ${OCCLIBS} ${PLATFORM_LIBADD} ${ZLIB_LIBRARIES})
++INSTALL(TARGETS nglib DESTINATION ${NETGEN_INSTALL_LIBS}) 
++
++# Install headers
++INSTALL(FILES ${GENERAL_INCLUDES} 
++              ${INCLUDE_INCLUDES}
++              ${GPRIM_INCLUDES} 
++              ${LINALG_INCLUDES} 
++              ${MESHING_INCLUDES} 
++              ${STLGEOM_INCLUDES}
++              ${OCC_INCLUDES} 
++              nglib.h 
++              DESTINATION ${NETGEN_INSTALL_HEADERS})
++
++
++# NG_VOL
++SET(NG_VOL_SOURCES ng_vol.cpp)
++ADD_EXECUTABLE(ng_vol ${NG_VOL_SOURCES})
++TARGET_LINK_LIBRARIES(ng_vol nglib)
++INSTALL(TARGETS ng_vol  DESTINATION ${NETGEN_INSTALL_BINS})
++
++# NG_STL
++SET(NG_STL_SOURCES ng_stl.cpp)
++ADD_EXECUTABLE(ng_stl ${NG_STL_SOURCES})
++TARGET_LINK_LIBRARIES(ng_stl nglib)
++INSTALL(TARGETS ng_stl  DESTINATION ${NETGEN_INSTALL_BINS})
+diff -Naur netgen-5.3.1_orig/nglib/nglib.cpp netgen-5.3.1_modif/nglib/nglib.cpp
+--- netgen-5.3.1_orig/nglib/nglib.cpp  2019-01-22 13:07:06.386379800 +0300
++++ netgen-5.3.1_modif/nglib/nglib.cpp 2019-01-22 12:34:46.150402500 +0300
+@@ -87,7 +87,8 @@
+    // Clean-up functions before ending usage of nglib
+    DLL_HEADER void Ng_Exit ()
+    {
+-      ;
++       delete testout;
++       testout = 0;
+    }
+@@ -546,7 +547,7 @@
+    Array<STLReadTriangle> readtrias; //only before initstlgeometry
+-   Array<Point<3> > readedges; //only before init stlgeometry
++   DLL_HEADER Array<Point<3> > readedges; //only before init stlgeometry
+    // loads geometry from STL file
+    DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary)