Salome HOME
Ensure cmake_build_type is used in SALOME 9.12.0
[tools/sat_salome.git] / products / patches / netgen53ForWindowsOCC780.patch
1 diff -Naur netgen-5.3.1_orig/CMakeLists.txt netgen-5.3.1_modif/CMakeLists.txt
2 --- netgen-5.3.1_orig/CMakeLists.txt    1970-01-01 03:00:00.000000000 +0300
3 +++ netgen-5.3.1_modif/CMakeLists.txt   2019-01-22 12:34:45.926401100 +0300
4 @@ -0,0 +1,75 @@
5 +# Copyright (C) 2016 OPEN CASCADE
6 +#
7 +# This library is free software; you can redistribute it and/or
8 +# modify it under the terms of the GNU Lesser General Public
9 +# License as published by the Free Software Foundation; either
10 +# version 2.1 of the License, or (at your option) any later version.
11 +#
12 +# This library is distributed in the hope that it will be useful,
13 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
14 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 +# Lesser General Public License for more details.
16 +#
17 +# You should have received a copy of the GNU Lesser General Public
18 +# License along with this library; if not, write to the Free Software
19 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
20 +#
21 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 +#
23 +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8 FATAL_ERROR)
24 +INCLUDE(CMakeDependentOption)
25 +
26 +PROJECT(netgen C CXX)
27 +
28 +# Ensure a proper linker behavior:
29 +CMAKE_POLICY(SET CMP0003 NEW)
30 +
31 +# Versioning
32 +# ===========
33 +# Project name, upper case
34 +STRING(TOUPPER ${PROJECT_NAME} PROJECT_NAME_UC)
35 +
36 +SET(${PROJECT_NAME_UC}_MAJOR_VERSION 5)
37 +SET(${PROJECT_NAME_UC}_MINOR_VERSION 3)
38 +SET(${PROJECT_NAME_UC}_PATCH_VERSION 1)
39 +SET(${PROJECT_NAME_UC}_VERSION
40 +  ${${PROJECT_NAME_UC}_MAJOR_VERSION}.${${PROJECT_NAME_UC}_MINOR_VERSION}.${${PROJECT_NAME_UC}_PATCH_VERSION})
41 +
42 +# Common CMake macros
43 +# ===================
44 +LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
45 +# Detect platform
46 +INCLUDE(FindPLATFORM) 
47 +# Detect OCCT
48 +INCLUDE(FindCAS)
49 +
50 +# Detect ZLIB on Windows
51 +IF(WIN32)
52 +  SET(ZLIB_ROOT_DIR $ENV{ZLIB_ROOT_DIR})
53 +  IF(EXISTS ${ZLIB_ROOT_DIR})
54 +    SET(ZLIB_ROOT ${ZLIB_ROOT_DIR})
55 +    INCLUDE(FindZLIB)
56 +    IF (NOT ${ZLIB_FOUND})
57 +      MESSAGE(FATAL_ERROR "We absolutely need the zlib library, please check zlib installation !")
58 +    ENDIF()
59 +  ELSE()
60 +    MESSAGE(FATAL_ERROR "We absolutely need the zlib library, please define ZLIB_ROOT_DIR !")
61 +  ENDIF()
62 +ENDIF()
63 +
64 +
65 +# Common definitions
66 +# ==================
67 +ADD_DEFINITIONS(-DNO_PARALLEL_THREADS)
68 +ADD_DEFINITIONS(-DOCCGEOMETRY)
69 +
70 +# Target directories
71 +SET(NETGEN_INSTALL_BINS "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Install path: netgen binaries")
72 +SET(NETGEN_INSTALL_LIBS "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Install path: netgen libs")
73 +SET(NETGEN_INSTALL_HEADERS "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Install path: netgen headers")
74 +SET(NETGEN_INSTALL_CMAKE "${CMAKE_INSTALL_PREFIX}/cmake" CACHE PATH "Install path: netgen cmake files")
75 +
76 +# Sub-directories
77 +ADD_SUBDIRECTORY(nglib)
78 +ADD_SUBDIRECTORY(cmake)
79 +
80 diff -Naur netgen-5.3.1_orig/cmake/CMakeLists.txt netgen-5.3.1_modif/cmake/CMakeLists.txt
81 --- netgen-5.3.1_orig/cmake/CMakeLists.txt      1970-01-01 03:00:00.000000000 +0300
82 +++ netgen-5.3.1_modif/cmake/CMakeLists.txt     2019-01-22 12:34:45.946401400 +0300
83 @@ -0,0 +1,22 @@
84 +# Copyright (C) 2016 OPEN CASCADE
85 +#
86 +# This library is free software; you can redistribute it and/or
87 +# modify it under the terms of the GNU Lesser General Public
88 +# License as published by the Free Software Foundation; either
89 +# version 2.1 of the License, or (at your option) any later version.
90 +#
91 +# This library is distributed in the hope that it will be useful,
92 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
93 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
94 +# Lesser General Public License for more details.
95 +#
96 +# You should have received a copy of the GNU Lesser General Public
97 +# License along with this library; if not, write to the Free Software
98 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
99 +#
100 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
101 +#
102 +
103 +IF(WIN32)
104 + INSTALL(FILES FindZLIB.cmake DESTINATION ${NETGEN_INSTALL_CMAKE})
105 +ENDIF()
106 \ No newline at end of file
107 diff -Naur netgen-5.3.1_orig/cmake/FindCAS.cmake netgen-5.3.1_modif/cmake/FindCAS.cmake
108 --- netgen-5.3.1_ref/cmake/FindCAS.cmake        1970-01-01 01:00:00.000000000 +0100
109 +++ netgen-5.3.1_new/cmake/FindCAS.cmake        2024-04-26 15:51:06.689171700 +0200
110 @@ -0,0 +1,147 @@
111 +#  Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
112 +#
113 +#  This library is free software; you can redistribute it and/or
114 +#  modify it under the terms of the GNU Lesser General Public
115 +#  License as published by the Free Software Foundation; either
116 +#  version 2.1 of the License.
117 +#
118 +#  This library is distributed in the hope that it will be useful,
119 +#  but WITHOUT ANY WARRANTY; without even the implied warranty of
120 +#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
121 +#  Lesser General Public License for more details.
122 +#
123 +#  You should have received a copy of the GNU Lesser General Public
124 +#  License along with this library; if not, write to the Free Software
125 +#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
126 +#
127 +#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
128 +#
129 +
130 +SET(CASROOT $ENV{CASROOT})
131 +ADD_DEFINITIONS(-DLIN -DLINTEL -DCSFDB)
132 +ADD_DEFINITIONS(-DNo_exception)
133 +ADD_DEFINITIONS(-DHAVE_LIMITS_H)
134 +
135 +IF(CMAKE_SIZEOF_VOID_P STREQUAL 8)
136 +  ADD_DEFINITIONS(-D_OCC64)
137 +ENDIF(CMAKE_SIZEOF_VOID_P STREQUAL 8)
138 +
139 +IF(NOT WINDOWS)
140 +  FIND_LIBRARY(Xmu Xmu)
141 +  IF(Xmu)
142 +    SET(CAS_LDPATH ${Xmu})
143 +  ENDIF(Xmu)
144 +ENDIF(NOT WINDOWS)
145 +
146 +IF(WINDOWS)
147 +  IF(CMAKE_BUILD_TYPE STREQUAL Debug)
148 +    SET(CASROOT_LIBDIR ${CASROOT}/win32/libd ${CASROOT}/win64/vc10/lib ${CASROOT}/win64/vc14/libd)
149 +  ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
150 +    SET(CASROOT_LIBDIR ${CASROOT}/win32/lib ${CASROOT}/win64/vc10/lib ${CASROOT}/win64/vc14/lib)
151 +  ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
152 +ELSE(WINDOWS)
153 +  SET(CASROOT_LIBDIR ${CASROOT}/lib)
154 +ENDIF(WINDOWS)
155 +
156 +SET(_CAS_VERSION_FILE_NAME Standard_Version.hxx)
157 +
158 +# Include directories:
159 +FIND_PATH(CAS_INCLUDE_DIRS ${_CAS_VERSION_FILE_NAME} PATHS ${CASROOT} PATH_SUFFIXES include/opencascade)
160 +IF(CAS_INCLUDE_DIRS)
161 +ELSE()
162 +  FIND_PATH(CAS_INCLUDE_DIRS ${_CAS_VERSION_FILE_NAME} PATHS ${CASROOT} PATH_SUFFIXES include inc)
163 +ENDIF()
164 +
165 +
166 +FIND_LIBRARY(BinLPlugin BinLPlugin PATHS ${CASROOT_LIBDIR})
167 +FIND_LIBRARY(BinPlugin BinPlugin PATHS ${CASROOT_LIBDIR})
168 +FIND_LIBRARY(BinTObjPlugin BinTObjPlugin PATHS ${CASROOT_LIBDIR})
169 +FIND_LIBRARY(BinXCAFPlugin BinXCAFPlugin PATHS ${CASROOT_LIBDIR})
170 +FIND_LIBRARY(FWOSPlugin FWOSPlugin PATHS ${CASROOT_LIBDIR})
171 +
172 +FIND_LIBRARY(PTKernel PTKernel PATHS ${CASROOT_LIBDIR})
173 +FIND_LIBRARY(StdLPlugin StdLPlugin PATHS ${CASROOT_LIBDIR})
174 +FIND_LIBRARY(StdPlugin StdPlugin PATHS ${CASROOT_LIBDIR})
175 +FIND_LIBRARY(TKAdvTools TKAdvTools PATHS ${CASROOT_LIBDIR})
176 +FIND_LIBRARY(TKBin TKBin PATHS ${CASROOT_LIBDIR})
177 +FIND_LIBRARY(TKBinL TKBinL PATHS ${CASROOT_LIBDIR})
178 +FIND_LIBRARY(TKBinTObj TKBinTObj PATHS ${CASROOT_LIBDIR})
179 +FIND_LIBRARY(TKBinXCAF TKBinXCAF PATHS ${CASROOT_LIBDIR})
180 +FIND_LIBRARY(TKBO TKBO PATHS ${CASROOT_LIBDIR})
181 +FIND_LIBRARY(TKBool TKBool PATHS ${CASROOT_LIBDIR})
182 +FIND_LIBRARY(TKBRep TKBRep PATHS ${CASROOT_LIBDIR})
183 +FIND_LIBRARY(TKCAF TKCAF PATHS ${CASROOT_LIBDIR})
184 +FIND_LIBRARY(TKCDF TKCDF PATHS ${CASROOT_LIBDIR})
185 +FIND_LIBRARY(TKernel TKernel PATHS ${CASROOT_LIBDIR})
186 +FIND_LIBRARY(TKFeat TKFeat PATHS ${CASROOT_LIBDIR})
187 +FIND_LIBRARY(TKFillet TKFillet PATHS ${CASROOT_LIBDIR})
188 +FIND_LIBRARY(TKG2d TKG2d PATHS ${CASROOT_LIBDIR})
189 +FIND_LIBRARY(TKG3d TKG3d PATHS ${CASROOT_LIBDIR})
190 +FIND_LIBRARY(TKGeomAlgo TKGeomAlgo PATHS ${CASROOT_LIBDIR})
191 +FIND_LIBRARY(TKGeomBase TKGeomBase PATHS ${CASROOT_LIBDIR})
192 +FIND_LIBRARY(TKHLR TKHLR PATHS ${CASROOT_LIBDIR})
193 +FIND_LIBRARY(TKIGES TKDEIGES PATHS ${CASROOT_LIBDIR})
194 +FIND_LIBRARY(TKLCAF TKLCAF PATHS ${CASROOT_LIBDIR})
195 +FIND_LIBRARY(TKMath TKMath PATHS ${CASROOT_LIBDIR})
196 +FIND_LIBRARY(TKMesh TKMesh PATHS ${CASROOT_LIBDIR})
197 +FIND_LIBRARY(TKMeshVS TKMeshVS PATHS ${CASROOT_LIBDIR})
198 +FIND_LIBRARY(TKNIS TKNIS PATHS ${CASROOT_LIBDIR})
199 +FIND_LIBRARY(TKOffset TKOffset PATHS ${CASROOT_LIBDIR})
200 +FIND_LIBRARY(TKOpenGl TKOpenGl PATHS ${CASROOT_LIBDIR})
201 +FIND_LIBRARY(TKPCAF TKPCAF PATHS ${CASROOT_LIBDIR})
202 +FIND_LIBRARY(TKPLCAF TKPLCAF PATHS ${CASROOT_LIBDIR})
203 +FIND_LIBRARY(TKPrim TKPrim PATHS ${CASROOT_LIBDIR})
204 +FIND_LIBRARY(TKPShape TKPShape PATHS ${CASROOT_LIBDIR})
205 +FIND_LIBRARY(TKService TKService PATHS ${CASROOT_LIBDIR})
206 +FIND_LIBRARY(TKShapeSchema TKShapeSchema PATHS ${CASROOT_LIBDIR})
207 +FIND_LIBRARY(TKShHealing TKShHealing PATHS ${CASROOT_LIBDIR})
208 +FIND_LIBRARY(TKStdLSchema TKStdLSchema PATHS ${CASROOT_LIBDIR})
209 +FIND_LIBRARY(TKStdSchema TKStdSchema PATHS ${CASROOT_LIBDIR})
210 +FIND_LIBRARY(TKSTEP TKDESTEP PATHS ${CASROOT_LIBDIR})
211 +FIND_LIBRARY(TKSTL TKDESTL PATHS ${CASROOT_LIBDIR})
212 +FIND_LIBRARY(TKTObj TKTObj PATHS ${CASROOT_LIBDIR})
213 +FIND_LIBRARY(TKTopAlgo TKTopAlgo PATHS ${CASROOT_LIBDIR})
214 +FIND_LIBRARY(TKV2d TKV2d PATHS ${CASROOT_LIBDIR})
215 +FIND_LIBRARY(TKV3d TKV3d PATHS ${CASROOT_LIBDIR})
216 +FIND_LIBRARY(TKVRML TKVRML PATHS ${CASROOT_LIBDIR})
217 +FIND_LIBRARY(TKXCAF TKXCAF PATHS ${CASROOT_LIBDIR})
218 +FIND_LIBRARY(TKXCAFSchema TKXCAFSchema PATHS ${CASROOT_LIBDIR})
219 +FIND_LIBRARY(TKXMesh TKXMesh PATHS ${CASROOT_LIBDIR})
220 +FIND_LIBRARY(TKXml TKXml PATHS ${CASROOT_LIBDIR})
221 +FIND_LIBRARY(TKXmlL TKXmlL PATHS ${CASROOT_LIBDIR})
222 +FIND_LIBRARY(TKXmlTObj TKXmlTObj PATHS ${CASROOT_LIBDIR})
223 +FIND_LIBRARY(TKXmlXCAF TKXmlXCAF PATHS ${CASROOT_LIBDIR})
224 +FIND_LIBRARY(TKXSBase TKXSBase PATHS ${CASROOT_LIBDIR})
225 +FIND_LIBRARY(XCAFPlugin XCAFPlugin PATHS ${CASROOT_LIBDIR})
226 +FIND_LIBRARY(XmlLPlugin XmlLPlugin PATHS ${CASROOT_LIBDIR})
227 +FIND_LIBRARY(XmlPlugin XmlPlugin PATHS ${CASROOT_LIBDIR})
228 +FIND_LIBRARY(XmlTObjPlugin XmlTObjPlugin PATHS ${CASROOT_LIBDIR})
229 +FIND_LIBRARY(XmlXCAFPlugin XmlXCAFPlugin PATHS ${CASROOT_LIBDIR})
230 +
231 +SET(CAS_KERNEL ${TKernel} ${TKMath})
232 +SET(CAS_OCAF ${TKernel} ${TKMath} ${TKCDF} ${TKLCAF})
233 +SET(CAS_VIEWER ${TKService} ${TKV3d} ${TKG3d} ${TKGeomBase} ${TKBRep})
234 +SET(CAS_OCAFVIS ${TKCAF} ${TKBRep} ${TKG2d})
235 +SET(CAS_MODELER ${TKG3d} ${TKGeomBase} ${TKGeomAlgo} ${TKBRep} ${TKTopAlgo} ${TKG2d})
236 +
237 +SET(TKV3d_EA ${TKernel} ${TKMath} ${TKV3d})
238 +SET(TKBool_EA ${TKernel} ${TKMath} ${TKBRep} ${TKG2d} ${TKG3d} ${TKGeomBase} ${TKGeomAlgo} ${TKTopAlgo} ${TKBool})
239 +SET(TKBRep_EA ${TKernel} ${TKMath} ${TKBRep})
240 +SET(TKIGES_EA ${TKernel} ${TKMath} ${TKXSBase} ${TKBRep} ${TKIGES})
241 +SET(TKSTEP_EA ${TKernel} ${TKMath} ${TKXSBase} ${TKBRep} ${TKSTEP})
242 +SET(TKSTL_EA ${TKernel} ${TKMath} ${TKSTL})
243 +SET(TKCAF_EA ${TKPrim} ${TKCAF})
244 +
245 +SET(TKV3d ${TKV3d_EA})
246 +SET(TKBool ${TKBool_EA})
247 +SET(TKBRep ${TKBRep_EA})
248 +SET(TKIGES ${TKIGES_EA})
249 +SET(TKSTEP ${TKSTEP_EA})
250 +SET(TKSTL ${TKSTL_EA})
251 +SET(TKCAF ${TKCAF_EA})
252 +
253 +#LIBRARIES
254 +SET(OCCLIBS ${CAS_LDPATH})
255 +SET(OCCLIBS ${OCCLIBS} ${TKernel} ${TKGeomBase} ${TKMath} ${TKG2d} ${TKG3d} ${TKXSBase} ${TKOffset} ${TKFillet} ${TKShHealing})
256 +SET(OCCLIBS ${OCCLIBS} ${TKMesh} ${TKMeshVS} ${TKTopAlgo} ${TKGeomAlgo} ${TKBool} ${TKPrim} ${TKBO} ${TKIGES} ${TKBRep})
257 +SET(OCCLIBS ${OCCLIBS} ${TKSTEP} ${TKSTL} ${TKXSTEP} ${TKXCAF} ${TKLCAF})
258 \ No newline at end of file
259 diff -Naur netgen-5.3.1_orig/cmake/FindPLATFORM.cmake netgen-5.3.1_modif/cmake/FindPLATFORM.cmake
260 --- netgen-5.3.1_orig/cmake/FindPLATFORM.cmake  1970-01-01 03:00:00.000000000 +0300
261 +++ netgen-5.3.1_modif/cmake/FindPLATFORM.cmake 2019-01-22 12:34:45.962402900 +0300
262 @@ -0,0 +1,96 @@
263 +#  Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
264 +#
265 +#  This library is free software; you can redistribute it and/or
266 +#  modify it under the terms of the GNU Lesser General Public
267 +#  License as published by the Free Software Foundation; either
268 +#  version 2.1 of the License.
269 +#
270 +#  This library is distributed in the hope that it will be useful,
271 +#  but WITHOUT ANY WARRANTY; without even the implied warranty of
272 +#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
273 +#  Lesser General Public License for more details.
274 +#
275 +#  You should have received a copy of the GNU Lesser General Public
276 +#  License along with this library; if not, write to the Free Software
277 +#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
278 +#
279 +#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
280 +#
281 +
282 +MARK_AS_ADVANCED(ISSUE)
283 +FIND_FILE(ISSUE issue /etc)
284 +IF(ISSUE)
285 +  SET(WINDOWS 0)
286 +ELSE()
287 +  SET(WINDOWS 1)
288 +ENDIF(ISSUE)
289 +
290 +IF(WINDOWS)
291 +  SET(MACHINE WINDOWS)
292 +ELSE(WINDOWS)
293 +  SET(MACHINE PCLINUX)
294 +ENDIF(WINDOWS)
295 +
296 +SET(CMAKE_INSTALL_PREFIX_ENV $ENV{CMAKE_INSTALL_PREFIX})
297 +IF(CMAKE_INSTALL_PREFIX_ENV)
298 +  SET(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX_ENV} CACHE PATH "installation prefix" FORCE)
299 +ENDIF(CMAKE_INSTALL_PREFIX_ENV)
300 +
301 +IF(NOT CMAKE_BUILD_TYPE)
302 +  SET(CMAKE_BUILD_TYPE $ENV{CMAKE_BUILD_TYPE})
303 +ENDIF(NOT CMAKE_BUILD_TYPE)
304 +
305 +IF(NOT CMAKE_BUILD_TYPE)
306 +  SET(CMAKE_BUILD_TYPE Release)
307 +ENDIF(NOT CMAKE_BUILD_TYPE)
308 +
309 +IF(WINDOWS)
310 +ELSE(WINDOWS)
311 +  SET(ADD_WERROR ON)
312 +  SET(NAMES ACCEPT_SALOME_WARNINGS ACCEPT_${MODULE}_WARNINGS I_AM_A_TROLL_I_DO_NOT_FIX_${MODULE}_WARNINGS)
313 +  FOREACH(name ${NAMES})
314 +    SET(VAL $ENV{${name}})
315 +    IF(X${VAL} STREQUAL X0)
316 +      SET(ADD_WERROR ON)
317 +    ENDIF(X${VAL} STREQUAL X0)
318 +    IF(X${VAL} STREQUAL X1)
319 +      SET(ADD_WERROR OFF)
320 +    ENDIF(X${VAL} STREQUAL X1)
321 +  ENDFOREACH(name ${NAMES})
322 +  IF(ADD_WERROR)
323 +    SET(CMAKE_C_FLAGS "-Werror")
324 +    SET(CMAKE_CXX_FLAGS "-Werror")
325 +  ENDIF(ADD_WERROR)
326 +ENDIF(WINDOWS)
327 +
328 +IF(CMAKE_BUILD_TYPE)
329 +  IF(WINDOWS)
330 +    MARK_AS_ADVANCED(CLEAR CMAKE_CONFIGURATION_TYPES)
331 +    SET(CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE} CACHE STRING "compilation types" FORCE)
332 +  ELSE(WINDOWS)
333 +    IF(CMAKE_BUILD_TYPE STREQUAL Debug)
334 +      SET(CMAKE_C_FLAGS_DEBUG "-g")
335 +      SET(CMAKE_CXX_FLAGS_DEBUG "-g")
336 +    ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
337 +    IF(CMAKE_BUILD_TYPE STREQUAL Release)
338 +      SET(CMAKE_C_FLAGS_RELEASE "-O1 -DNDEBUG")
339 +      SET(CMAKE_CXX_FLAGS_RELEASE "-O1 -DNDEBUG")
340 +    ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
341 +  ENDIF(WINDOWS)
342 +ENDIF(CMAKE_BUILD_TYPE)
343 +
344 +SET(PLATFORM_CPPFLAGS)
345 +SET(PLATFORM_LDFLAGS)
346 +SET(PLATFORM_LIBADD)
347 +IF(WINDOWS)
348 +  ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)  # To disable windows warnings for strcpy, fopen, ...
349 +  ADD_DEFINITIONS(-D_SCL_SECURE_NO_WARNINGS)  # To disable windows warnings std::copy, std::transform, ...
350 +  ADD_DEFINITIONS(-DWNT)
351 +  ADD_DEFINITIONS(-DPPRO_NT) # For medfile
352 +  ADD_DEFINITIONS(-D_USE_MATH_DEFINES) # At least for MEDMEM
353 +  ADD_DEFINITIONS(-D_WIN32_WINNT=0x0501) # Windows 2000 or later API is required
354 +  SET(PLATFORM_LIBADD ${PLATFORM_LIBADD} Ws2_32.lib)
355 +  SET(PLATFORM_LIBADD ${PLATFORM_LIBADD} Userenv.lib) # At least for GEOM suit
356 +ELSE(WINDOWS)
357 +  SET(PLATFORM_LIBADD ${PLATFORM_LIBADD} -ldl)
358 +ENDIF(WINDOWS) 
359 \ No newline at end of file
360 diff -Naur netgen-5.3.1_orig/cmake/FindZLIB.cmake netgen-5.3.1_modif/cmake/FindZLIB.cmake
361 --- netgen-5.3.1_orig/cmake/FindZLIB.cmake      1970-01-01 03:00:00.000000000 +0300
362 +++ netgen-5.3.1_modif/cmake/FindZLIB.cmake     2019-01-22 12:34:45.972400600 +0300
363 @@ -0,0 +1,45 @@
364 +#  Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
365 +#
366 +#  This library is free software; you can redistribute it and/or
367 +#  modify it under the terms of the GNU Lesser General Public
368 +#  License as published by the Free Software Foundation; either
369 +#  version 2.1 of the License.
370 +#
371 +#  This library is distributed in the hope that it will be useful,
372 +#  but WITHOUT ANY WARRANTY; without even the implied warranty of
373 +#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
374 +#  Lesser General Public License for more details.
375 +#
376 +#  You should have received a copy of the GNU Lesser General Public
377 +#  License along with this library; if not, write to the Free Software
378 +#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
379 +#
380 +#  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
381 +#
382 +
383 +SET(_ZLIB_SDIRS)
384 +
385 +# Search in ZLIB_ROOT_DIR first
386 +IF(ZLIB_ROOT_DIR)
387 +  SET(_ZLIB_SEARCH_ROOT PATHS ${ZLIB_ROOT_DIR} NO_DEFAULT_PATH)
388 +  list(APPEND _ZLIB_SDIRS _ZLIB_SEARCH_ROOT)
389 +ENDIF()
390 +
391 +SET(ZLIB_NAMES z zlib zdll zlib1 zlibd zlibd1 zlib1d)
392 +
393 +# Try each search configuration.
394 +FOREACH(search ${_ZLIB_SDIRS})
395 +  FIND_PATH(ZLIB_INCLUDE_DIR NAMES zlib.h        ${${search}} PATH_SUFFIXES include)
396 +  FIND_LIBRARY(ZLIB_LIBRARY  NAMES ${ZLIB_NAMES} ${search} PATH_SUFFIXES lib)
397 +ENDFOREACH()
398 +
399 +MARK_AS_ADVANCED(ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
400 +
401 +
402 +INCLUDE(FindPackageHandleStandardArgs)
403 +FIND_PACKAGE_HANDLE_STANDARD_ARGS(ZLIB REQUIRED_VARS ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
404 +
405 +IF(ZLIB_FOUND)
406 +    SET(ZLIB_INCLUDE_DIRS ${ZLIB_INCLUDE_DIR})
407 +    SET(ZLIB_LIBRARIES ${ZLIB_LIBRARY})
408 +ENDIF()
409 diff -Naur netgen-5.3.1_orig/libsrc/csg/specpoin.hpp netgen-5.3.1_modif/libsrc/csg/specpoin.hpp
410 --- netgen-5.3.1_orig/libsrc/csg/specpoin.hpp   2014-08-29 12:54:06.000000000 +0300
411 +++ netgen-5.3.1_modif/libsrc/csg/specpoin.hpp  2019-01-22 12:34:45.978401300 +0300
412 @@ -8,10 +8,12 @@
413  /* Date:   01. Okt. 95                                                    */
414  /**************************************************************************/
415  
416 +#include <myadt.hpp>
417 +
418  namespace netgen
419  {
420  
421 -  extern DLL_HEADER MeshingParameters mparam;
422 +  DLL_HEADER extern MeshingParameters mparam;
423  
424    /*
425  
426 diff -Naur netgen-5.3.1_orig/libsrc/general/template.hpp netgen-5.3.1_modif/libsrc/general/template.hpp
427 --- netgen-5.3.1_orig/libsrc/general/template.hpp       2014-08-29 12:54:06.000000000 +0300
428 +++ netgen-5.3.1_modif/libsrc/general/template.hpp      2019-01-22 12:34:46.006400400 +0300
429 @@ -26,10 +26,10 @@
430  DLL_HEADER extern ostream * testout;
431  
432  /** use instead of cout */
433 -extern ostream * mycout;
434 +DLL_HEADER extern ostream * mycout;
435  
436  /** error output stream */
437 -extern ostream * myerr;
438 +DLL_HEADER extern ostream * myerr;
439  
440  /** Error messages display.
441    Error messages are displayed by this function */
442 diff -Naur netgen-5.3.1_orig/libsrc/include/mystdlib.h netgen-5.3.1_modif/libsrc/include/mystdlib.h
443 --- netgen-5.3.1_orig/libsrc/include/mystdlib.h 2014-08-29 12:54:04.000000000 +0300
444 +++ netgen-5.3.1_modif/libsrc/include/mystdlib.h        2019-01-22 12:34:46.018400100 +0300
445 @@ -66,6 +66,7 @@
446  #  ifdef MSVC_EXPRESS
447  #   include <pthread.h>
448  #  else
449 +    #define _AFXDLL
450  #   include <afxwin.h>
451  #   include <afxmt.h>
452  #  endif // MSVC_EXPRESS
453 diff -Naur netgen-5.3.1_orig/libsrc/interface/nginterface.cpp netgen-5.3.1_modif/libsrc/interface/nginterface.cpp
454 --- netgen-5.3.1_orig/libsrc/interface/nginterface.cpp  2014-08-29 12:54:02.000000000 +0300
455 +++ netgen-5.3.1_modif/libsrc/interface/nginterface.cpp 2019-01-22 12:34:46.030400300 +0300
456 @@ -1,3 +1,16 @@
457 +#ifdef _MSC_VER
458 +#ifndef MSVC_EXPRESS
459 +
460 +#define _AFXDLL
461 +
462 +#include <Afxwin.h>
463 +#include <winsock2.h>
464 +#include <winsock.h>
465 +#include <windows.h>
466 +
467 +#endif
468 +#endif
469 +
470  #include <mystdlib.h>
471  
472  #include <meshing.hpp>
473 @@ -11,7 +24,6 @@
474  #include "nginterface.h"
475  #include "../visualization/soldata.hpp"
476  
477 -
478  #ifdef _MSC_VER
479  // Philippose - 30/01/2009
480  // MSVC Express Edition Support
481 diff -Naur netgen-5.3.1_orig/libsrc/meshing/global.hpp netgen-5.3.1_modif/libsrc/meshing/global.hpp
482 --- netgen-5.3.1_orig/libsrc/meshing/global.hpp 2014-08-29 12:54:06.000000000 +0300
483 +++ netgen-5.3.1_modif/libsrc/meshing/global.hpp        2019-01-22 12:34:46.042401800 +0300
484 @@ -8,6 +8,8 @@
485  /* Date:   01. Okt. 95                                                    */
486  /**************************************************************************/
487  
488 +#include <myadt.hpp>
489 +
490  /*
491    global functions and variables
492  */
493 @@ -29,7 +31,7 @@
494  
495    extern Array<int> tets_in_qualclass;
496  
497 -  class multithreadt
498 +  class DLL_HEADER multithreadt
499    {
500    public:
501      int pause;
502 @@ -44,7 +46,7 @@
503      multithreadt();
504    };
505  
506 -  extern volatile multithreadt multithread;
507 +  DLL_HEADER extern volatile multithreadt multithread;
508  
509    DLL_HEADER extern string ngdir;
510    extern DebugParameters debugparam;
511 diff -Naur netgen-5.3.1_orig/libsrc/meshing/meshclass.hpp netgen-5.3.1_modif/libsrc/meshing/meshclass.hpp
512 --- netgen-5.3.1_orig/libsrc/meshing/meshclass.hpp      2014-08-29 12:54:06.000000000 +0300
513 +++ netgen-5.3.1_modif/libsrc/meshing/meshclass.hpp     2019-01-22 12:34:46.064400700 +0300
514 @@ -311,7 +311,7 @@
515      { return lockedpoints; }
516  
517      /// Returns number of domains
518 -    int GetNDomains() const;
519 +    DLL_HEADER int GetNDomains() const;
520  
521      ///
522      int GetDimension() const 
523 @@ -320,7 +320,7 @@
524      { dimension = dim; }
525  
526      /// sets internal tables
527 -    void CalcSurfacesOfNode ();
528 +    void DLL_HEADER CalcSurfacesOfNode ();
529  
530      /// additional (temporarily) fix points 
531      void FixPoints (const BitArray & fixpoints);
532 @@ -390,13 +390,13 @@
533      ///
534      DLL_HEADER void SetGlobalH (double h);
535      ///
536 -    void SetMinimalH (double h);
537 +    void DLL_HEADER SetMinimalH (double h);
538      ///
539      double MaxHDomain (int dom) const;
540      ///
541      void SetMaxHDomain (const Array<double> & mhd);
542      ///
543 -    double GetH (const Point3d & p) const;
544 +    double DLL_HEADER GetH (const Point3d & p) const;
545      ///
546      double GetMinH (const Point3d & pmin, const Point3d & pmax);
547      ///
548 diff -Naur netgen-5.3.1_orig/libsrc/meshing/meshtype.hpp netgen-5.3.1_modif/libsrc/meshing/meshtype.hpp
549 --- netgen-5.3.1_orig/libsrc/meshing/meshtype.hpp       2019-01-22 13:07:09.630603600 +0300
550 +++ netgen-5.3.1_modif/libsrc/meshing/meshtype.hpp      2019-01-22 12:34:46.078402400 +0300
551 @@ -324,19 +324,19 @@
552  
553    public:
554      ///
555 -    Element2d ();
556 +    DLL_HEADER Element2d ();
557      ///
558 -    Element2d (int anp);
559 +    DLL_HEADER Element2d (int anp);
560      ///
561      DLL_HEADER Element2d (ELEMENT_TYPE type);
562      ///
563 -    Element2d (int pi1, int pi2, int pi3);
564 +    DLL_HEADER Element2d (int pi1, int pi2, int pi3);
565      ///
566 -    Element2d (int pi1, int pi2, int pi3, int pi4);
567 +    DLL_HEADER Element2d (int pi1, int pi2, int pi3, int pi4);
568      ///
569 -    ELEMENT_TYPE GetType () const { return typ; }
570 +    DLL_HEADER ELEMENT_TYPE GetType () const { return typ; }
571      /// 
572 -    void SetType (ELEMENT_TYPE atyp)
573 +    DLL_HEADER  void SetType (ELEMENT_TYPE atyp)
574      {
575        typ = atyp;
576        switch (typ)
577 @@ -351,9 +351,9 @@
578         }
579      }
580      ///
581 -    int GetNP() const { return np; }
582 +    DLL_HEADER int GetNP() const { return np; }
583      ///
584 -    int GetNV() const
585 +    DLL_HEADER int GetNV() const
586      {
587        if (typ == TRIG || typ == TRIG6)
588          return 3;
589 @@ -385,95 +385,95 @@
590      }
591  
592      ///
593 -    PointIndex & operator[] (int i) { return pnum[i]; }
594 +    DLL_HEADER  PointIndex & operator[] (int i) { return pnum[i]; }
595      ///
596 -    const PointIndex & operator[] (int i) const { return pnum[i]; }
597 +    DLL_HEADER const PointIndex & operator[] (int i) const { return pnum[i]; }
598  
599 -    FlatArray<const PointIndex> PNums () const 
600 +    DLL_HEADER  FlatArray<const PointIndex> PNums () const 
601      { return FlatArray<const PointIndex> (np, &pnum[0]); }
602      
603      ///
604 -    PointIndex & PNum (int i) { return pnum[i-1]; }
605 +    DLL_HEADER PointIndex & PNum (int i) { return pnum[i-1]; }
606      ///
607 -    const PointIndex & PNum (int i) const { return pnum[i-1]; }
608 +    DLL_HEADER const PointIndex & PNum (int i) const { return pnum[i-1]; }
609      ///
610 -    PointIndex & PNumMod (int i) { return pnum[(i-1) % np]; }
611 +    DLL_HEADER PointIndex & PNumMod (int i) { return pnum[(i-1) % np]; }
612      ///
613 -    const PointIndex & PNumMod (int i) const { return pnum[(i-1) % np]; }
614 +    DLL_HEADER const PointIndex & PNumMod (int i) const { return pnum[(i-1) % np]; }
615      ///
616  
617      ///
618 -    PointGeomInfo & GeomInfoPi (int i) { return geominfo[i-1]; }
619 +    DLL_HEADER PointGeomInfo & GeomInfoPi (int i) { return geominfo[i-1]; }
620      ///
621 -    const PointGeomInfo & GeomInfoPi (int i) const { return geominfo[i-1]; }
622 +    DLL_HEADER const PointGeomInfo & GeomInfoPi (int i) const { return geominfo[i-1]; }
623      ///
624 -    PointGeomInfo & GeomInfoPiMod (int i) { return geominfo[(i-1) % np]; }
625 +    DLL_HEADER PointGeomInfo & GeomInfoPiMod (int i) { return geominfo[(i-1) % np]; }
626      ///
627 -    const PointGeomInfo & GeomInfoPiMod (int i) const { return geominfo[(i-1) % np]; }
628 +    DLL_HEADER const PointGeomInfo & GeomInfoPiMod (int i) const { return geominfo[(i-1) % np]; }
629  
630  
631 -    void SetIndex (int si) { index = si; }
632 +    DLL_HEADER void SetIndex (int si) { index = si; }
633      ///
634 -    int GetIndex () const { return index; }
635 +    DLL_HEADER int GetIndex () const { return index; }
636  
637 -    int GetOrder () const { return orderx; }
638 -    void SetOrder (int aorder) { orderx = ordery = aorder; }
639 +    DLL_HEADER int GetOrder () const { return orderx; }
640 +    DLL_HEADER void SetOrder (int aorder) { orderx = ordery = aorder; }
641  
642  
643 -    void GetOrder (int & ox, int & oy) const { ox = orderx, oy =ordery;};
644 -    void GetOrder (int & ox, int & oy, int & oz) const { ox = orderx; oy = ordery; oz=0; }
645 -    void SetOrder (int ox, int oy, int  /* oz */) { orderx = ox; ordery = oy;}
646 -    void SetOrder (int ox, int oy) { orderx = ox; ordery = oy;}
647 +    DLL_HEADER void GetOrder (int & ox, int & oy) const { ox = orderx, oy =ordery;};
648 +    DLL_HEADER void GetOrder (int & ox, int & oy, int & oz) const { ox = orderx; oy = ordery; oz=0; }
649 +    DLL_HEADER void SetOrder (int ox, int oy, int  /* oz */) { orderx = ox; ordery = oy;}
650 +    DLL_HEADER void SetOrder (int ox, int oy) { orderx = ox; ordery = oy;}
651  
652  
653      ///
654 -    void GetBox (const T_POINTS & points, Box3d & box) const;
655 +    DLL_HEADER void GetBox (const T_POINTS & points, Box3d & box) const;
656      /// invert orientation
657 -    inline void Invert ();
658 +    DLL_HEADER inline void Invert ();
659      ///
660 -    void Invert2 ();
661 +    DLL_HEADER void Invert2 ();
662      /// first point number is smallest
663 -    inline void NormalizeNumbering ();
664 +    DLL_HEADER inline void NormalizeNumbering ();
665      ///
666 -    void NormalizeNumbering2 ();
667 +    DLL_HEADER void NormalizeNumbering2 ();
668  
669 -    bool BadElement() const { return badel; }
670 +    DLL_HEADER bool BadElement() const { return badel; }
671  
672      // friend ostream & operator<<(ostream  & s, const Element2d & el);
673      friend class Mesh;
674  
675  
676      /// get number of 'integration points'
677 -    int GetNIP () const;
678 -    void GetIntegrationPoint (int ip, Point2d & p, double & weight) const;
679 +    DLL_HEADER int GetNIP () const;
680 +    DLL_HEADER void GetIntegrationPoint (int ip, Point2d & p, double & weight) const;
681  
682 -    void GetTransformation (int ip, const Array<Point2d> & points,
683 +    DLL_HEADER void GetTransformation (int ip, const Array<Point2d> & points,
684                             class DenseMatrix & trans) const;
685 -    void GetTransformation (int ip, class DenseMatrix & pmat,
686 +    DLL_HEADER void GetTransformation (int ip, class DenseMatrix & pmat,
687                             class DenseMatrix & trans) const;
688  
689 -    void GetShape (const Point2d & p, class Vector & shape) const;
690 -    void GetShapeNew (const Point<2> & p, class FlatVector & shape) const;
691 +    DLL_HEADER void GetShape (const Point2d & p, class Vector & shape) const;
692 +    DLL_HEADER void GetShapeNew (const Point<2> & p, class FlatVector & shape) const;
693      /// matrix 2 * np
694 -    void GetDShape (const Point2d & p, class DenseMatrix & dshape) const;
695 -    void GetDShapeNew (const Point<2> & p, class MatrixFixWidth<2> & dshape) const;
696 +    DLL_HEADER void GetDShape (const Point2d & p, class DenseMatrix & dshape) const;
697 +    DLL_HEADER void GetDShapeNew (const Point<2> & p, class MatrixFixWidth<2> & dshape) const;
698      /// matrix 2 * np
699 -    void GetPointMatrix (const Array<Point2d> & points,
700 +    DLL_HEADER void GetPointMatrix (const Array<Point2d> & points,
701                          class DenseMatrix & pmat) const; 
702  
703 -    void ComputeIntegrationPointData () const;
704 +    DLL_HEADER void ComputeIntegrationPointData () const;
705    
706  
707 -    double CalcJacobianBadness (const Array<Point2d> & points) const;
708 -    double CalcJacobianBadness (const T_POINTS & points, 
709 +    DLL_HEADER double CalcJacobianBadness (const Array<Point2d> & points) const;
710 +    DLL_HEADER double CalcJacobianBadness (const T_POINTS & points, 
711                                 const Vec<3> & n) const;
712 -    double CalcJacobianBadnessDirDeriv (const Array<Point2d> & points,
713 +    DLL_HEADER double CalcJacobianBadnessDirDeriv (const Array<Point2d> & points,
714                                         int pi, Vec2d & dir, double & dd) const;
715  
716  
717  
718 -    void Delete () { deleted = 1; pnum[0] = pnum[1] = pnum[2] = pnum[3] = PointIndex::BASE-1; }
719 -    bool IsDeleted () const 
720 +    DLL_HEADER void Delete () { deleted = 1; pnum[0] = pnum[1] = pnum[2] = pnum[3] = PointIndex::BASE-1; }
721 +    DLL_HEADER bool IsDeleted () const 
722      {
723  #ifdef DEBUG
724        if (pnum[0] < PointIndex::BASE && !deleted)
725 @@ -484,27 +484,27 @@
726  
727      // Philippose - 08 August 2010
728      // Access functions for the new property: visible
729 -    void Visible(bool vis = 1) 
730 +    DLL_HEADER void Visible(bool vis = 1) 
731      { visible = vis; }
732 -    bool IsVisible () const 
733 +    DLL_HEADER bool IsVisible () const 
734      { return visible; }
735     
736 -    void SetRefinementFlag (bool rflag = 1) 
737 +    DLL_HEADER void SetRefinementFlag (bool rflag = 1) 
738      { refflag = rflag; }
739 -    bool TestRefinementFlag () const
740 +    DLL_HEADER bool TestRefinementFlag () const
741      { return refflag; }
742  
743 -    void SetStrongRefinementFlag (bool rflag = 1) 
744 +    DLL_HEADER void SetStrongRefinementFlag (bool rflag = 1) 
745      { strongrefflag = rflag; }
746 -    bool TestStrongRefinementFlag () const
747 +    DLL_HEADER bool TestStrongRefinementFlag () const
748      { return strongrefflag; }
749  
750    
751 -    SurfaceElementIndex NextElement() { return next; }
752 +    DLL_HEADER SurfaceElementIndex NextElement() { return next; }
753  
754 -    bool operator==(const Element2d & el2) const;
755 +    DLL_HEADER bool operator==(const Element2d & el2) const;
756  
757 -    int HasFace(const Element2d& el) const;
758 +    DLL_HEADER int HasFace(const Element2d& el) const;
759      ///
760      int meshdocval;
761      ///
762 @@ -517,7 +517,7 @@
763    };
764  
765  
766 -  ostream & operator<<(ostream  & s, const Element2d & el);
767 +  DLL_HEADER ostream & operator<<(ostream  & s, const Element2d & el);
768  
769  
770  
771 diff -Naur netgen-5.3.1_orig/libsrc/occ/occgenmesh.cpp netgen-5.3.1_modif/libsrc/occ/occgenmesh.cpp
772 --- netgen-5.3.1_orig/libsrc/occ/occgenmesh.cpp 2019-01-22 13:07:09.801603600 +0300
773 +++ netgen-5.3.1_modif/libsrc/occ/occgenmesh.cpp        2019-01-22 12:34:46.090399900 +0300
774 @@ -18,7 +18,7 @@
775  #define VSMALL 1e-10
776  
777  
778 -   bool merge_solids = 1;
779 +   DLL_HEADER bool merge_solids = 1;
780  
781  
782    // can you please explain what you intend to compute here (JS) !!!
783 @@ -540,7 +540,7 @@
784                   
785                    Point<3> fp = occ2ng (BRep_Tool::Pnt (v1));
786                    Point<3> lp = occ2ng (BRep_Tool::Pnt (v2));
787 -                  double tol2 = std::min( eps*eps, 1e-6 * Dist2( fp, lp ));
788 +                  double tol2 = min( eps*eps, 1e-6 * Dist2( fp, lp ));
789                    if ( isClosedEdge )
790                      tol2 = BRep_Tool::Tolerance( v1 ) * BRep_Tool::Tolerance( v1 );
791  
792 diff -Naur netgen-5.3.1_orig/libsrc/occ/occgeom.hpp netgen-5.3.1_modif/libsrc/occ/occgeom.hpp
793 --- netgen-5.3.1_orig/libsrc/occ/occgeom.hpp    2019-01-22 13:07:09.828603500 +0300
794 +++ netgen-5.3.1_modif/libsrc/occ/occgeom.hpp   2019-01-22 12:34:46.100401600 +0300
795 @@ -9,6 +9,8 @@
796  
797  #ifdef OCCGEOMETRY
798  
799 +#include <myadt.hpp>
800 +
801  #include <meshing.hpp>
802  
803  #include "BRep_Tool.hxx"
804 @@ -122,7 +124,7 @@
805  {
806  #include "occmeshsurf.hpp"
807  
808 -  extern DLL_HEADER MeshingParameters mparam;
809 +  DLL_HEADER extern MeshingParameters mparam;
810  
811  #define PROJECTION_TOLERANCE 1e-10
812  
813 @@ -197,7 +199,7 @@
814  
815  
816  
817 -   class OCCGeometry : public NetgenGeometry
818 +   class DLL_HEADER OCCGeometry : public NetgenGeometry
819     {
820        Point<3> center;
821        // -- Optimization: to use cached projector and classifier
822 @@ -413,7 +415,7 @@
823  
824  
825  
826 -   class OCCParameters
827 +   class DLL_HEADER OCCParameters
828     {
829     public:
830  
831 @@ -453,21 +455,21 @@
832     OCCGeometry * LoadOCC_STEP (const char * filename);
833     OCCGeometry * LoadOCC_BREP (const char * filename);
834  
835 -   extern OCCParameters occparam;
836 +   extern DLL_HEADER OCCParameters occparam;
837  
838  
839     // Philippose - 31.09.2009
840     // External access to the mesh generation functions within the OCC
841     // subsystem (Not sure if this is the best way to implement this....!!)
842 -   extern int OCCGenerateMesh (OCCGeometry & occgeometry, Mesh*& mesh,
843 +   extern DLL_HEADER int OCCGenerateMesh (OCCGeometry & occgeometry, Mesh*& mesh,
844                                MeshingParameters & mparam,
845                                int perfstepsstart, int perfstepsend);
846  
847 -  extern void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh);
848 +  extern DLL_HEADER void OCCSetLocalMeshSize(OCCGeometry & geom, Mesh & mesh);
849  
850 -   extern void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend);
851 +   extern DLL_HEADER void OCCMeshSurface (OCCGeometry & geom, Mesh & mesh, int perfstepsend);
852  
853 -   extern void OCCFindEdges (OCCGeometry & geom, Mesh & mesh);
854 +   extern DLL_HEADER void OCCFindEdges (OCCGeometry & geom, Mesh & mesh);
855  }
856  
857  #endif
858 diff -Naur netgen-5.3.1_orig/libsrc/occ/occmeshsurf.hpp netgen-5.3.1_modif/libsrc/occ/occmeshsurf.hpp
859 --- netgen-5.3.1_orig/libsrc/occ/occmeshsurf.hpp        2019-01-22 13:07:01.521952200 +0300
860 +++ netgen-5.3.1_modif/libsrc/occ/occmeshsurf.hpp       2019-01-22 12:34:46.109400000 +0300
861 @@ -169,7 +169,7 @@
862  class OCCGeometry;
863  
864  
865 -class OCCRefinementSurfaces : public Refinement
866 +class DLL_HEADER OCCRefinementSurfaces : public Refinement
867  {
868    const OCCGeometry & geometry;
869  
870 diff -Naur netgen-5.3.1_orig/libsrc/stlgeom/stlgeom.hpp netgen-5.3.1_modif/libsrc/stlgeom/stlgeom.hpp
871 --- netgen-5.3.1_orig/libsrc/stlgeom/stlgeom.hpp        2014-08-29 12:54:06.000000000 +0300
872 +++ netgen-5.3.1_modif/libsrc/stlgeom/stlgeom.hpp       2019-01-22 12:41:58.899495900 +0300
873 @@ -38,7 +38,7 @@
874      return true;
875    }
876    
877 -  extern DLL_HEADER MeshingParameters mparam;
878 +  DLL_HEADER extern MeshingParameters mparam;
879    
880  
881  
882 @@ -98,7 +98,7 @@
883  
884  
885  
886 -  class STLGeometry : public STLTopology, public NetgenGeometry
887 +  class DLL_HEADER STLGeometry : public STLTopology, public NetgenGeometry
888    {
889      // edges to be meshed:
890      Array<STLEdge> edges;
891 diff -Naur netgen-5.3.1_orig/libsrc/stlgeom/stltool.hpp netgen-5.3.1_modif/libsrc/stlgeom/stltool.hpp
892 --- netgen-5.3.1_orig/libsrc/stlgeom/stltool.hpp        2014-08-29 12:54:06.000000000 +0300
893 +++ netgen-5.3.1_modif/libsrc/stlgeom/stltool.hpp       2019-01-22 12:31:33.216947700 +0300
894 @@ -183,7 +183,7 @@
895  };
896  
897  
898 -class STLDoctorParams
899 +class DLL_HEADER STLDoctorParams
900  {
901  public:
902    int drawmeshededges;
903 @@ -218,11 +218,11 @@
904    void Print (ostream & ost) const;
905  };
906  
907 -extern STLDoctorParams stldoctor;
908 +extern DLL_HEADER STLDoctorParams stldoctor;
909  
910  
911  
912 -class STLParameters
913 +class DLL_HEADER STLParameters
914  {
915  public:
916    /// angle for edge detection
917 @@ -267,7 +267,7 @@
918    void Print (ostream & ost) const;
919  };
920  
921 -extern STLParameters stlparam;
922 +extern DLL_HEADER STLParameters stlparam;
923  
924  
925  void STLMeshing (STLGeometry & geom,
926 diff -Naur netgen-5.3.1_orig/libsrc/stlgeom/stltopology.hpp netgen-5.3.1_modif/libsrc/stlgeom/stltopology.hpp
927 --- netgen-5.3.1_orig/libsrc/stlgeom/stltopology.hpp    2014-08-29 12:54:06.000000000 +0300
928 +++ netgen-5.3.1_modif/libsrc/stlgeom/stltopology.hpp   2019-01-22 12:43:39.341330600 +0300
929 @@ -236,7 +236,7 @@
930  
931  
932  
933 -class STLTopology
934 +class DLL_HEADER STLTopology
935  {
936  protected:
937    Array<STLTriangle> trias;
938 diff -Naur netgen-5.3.1_orig/nglib/CMakeLists.txt netgen-5.3.1_modif/nglib/CMakeLists.txt
939 --- netgen-5.3.1_orig/nglib/CMakeLists.txt      1970-01-01 03:00:00.000000000 +0300
940 +++ netgen-5.3.1_modif/nglib/CMakeLists.txt     2019-01-22 12:34:46.146402900 +0300
941 @@ -0,0 +1,260 @@
942 +# Copyright (C) 2016 OPEN CASCADE
943 +#
944 +# This library is free software; you can redistribute it and/or
945 +# modify it under the terms of the GNU Lesser General Public
946 +# License as published by the Free Software Foundation; either
947 +# version 2.1 of the License, or (at your option) any later version.
948 +#
949 +# This library is distributed in the hope that it will be useful,
950 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
951 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
952 +# Lesser General Public License for more details.
953 +#
954 +# You should have received a copy of the GNU Lesser General Public
955 +# License along with this library; if not, write to the Free Software
956 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
957 +#
958 +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
959 +#
960 +INCLUDE_DIRECTORIES(
961 +    ${CMAKE_CURRENT_SOURCE_DIR}
962 +    ${PROJECT_SOURCE_DIR}/libsrc/include
963 +    ${ZLIB_INCLUDE_DIRS}
964 +    ${CAS_INCLUDE_DIRS}
965 +)
966 +
967 +
968 +# CGS
969 +SET(CGS_SOURCES 
970 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/algprim.cpp 
971 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/brick.cpp
972 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/bspline2d.cpp 
973 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/csgeom.cpp 
974 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/csgparser.cpp 
975 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/curve2d.cpp 
976 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/edgeflw.cpp       
977 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/explicitcurve2d.cpp 
978 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/extrusion.cpp 
979 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/gencyl.cpp 
980 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/genmesh.cpp 
981 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/identify.cpp  
982 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/manifold.cpp 
983 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/meshsurf.cpp 
984 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/polyhedra.cpp 
985 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/revolution.cpp 
986 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/singularref.cpp 
987 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/solid.cpp 
988 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/specpoin.cpp 
989 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/spline3d.cpp 
990 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/surface.cpp 
991 +    ${PROJECT_SOURCE_DIR}/libsrc/csg/triapprox.cpp)
992 +
993 +# GENERAL
994 +SET(GENERAL_SOURCES 
995 +   ${PROJECT_SOURCE_DIR}/libsrc/general/array.cpp 
996 +   ${PROJECT_SOURCE_DIR}/libsrc/general/bitarray.cpp 
997 +   ${PROJECT_SOURCE_DIR}/libsrc/general/dynamicmem.cpp 
998 +   ${PROJECT_SOURCE_DIR}/libsrc/general/flags.cpp 
999 +   ${PROJECT_SOURCE_DIR}/libsrc/general/hashtabl.cpp 
1000 +   ${PROJECT_SOURCE_DIR}/libsrc/general/mystring.cpp 
1001 +   ${PROJECT_SOURCE_DIR}/libsrc/general/ngexception.cpp 
1002 +   ${PROJECT_SOURCE_DIR}/libsrc/general/optmem.cpp 
1003 +   ${PROJECT_SOURCE_DIR}/libsrc/general/parthreads.cpp 
1004 +   ${PROJECT_SOURCE_DIR}/libsrc/general/profiler.cpp 
1005 +   ${PROJECT_SOURCE_DIR}/libsrc/general/seti.cpp 
1006 +   ${PROJECT_SOURCE_DIR}/libsrc/general/sort.cpp 
1007 +   ${PROJECT_SOURCE_DIR}/libsrc/general/spbita2d.cpp 
1008 +   ${PROJECT_SOURCE_DIR}/libsrc/general/symbolta.cpp 
1009 +   ${PROJECT_SOURCE_DIR}/libsrc/general/table.cpp 
1010 +   ${PROJECT_SOURCE_DIR}/libsrc/general/mpi_interface.cpp 
1011 +   ${PROJECT_SOURCE_DIR}/libsrc/general/gzstream.cpp)
1012 +
1013 +FILE(GLOB GENERAL_INCLUDES "${PROJECT_SOURCE_DIR}/libsrc/general/*.hpp")
1014 +LIST(APPEND GENERAL_INCLUDES ${PROJECT_SOURCE_DIR}/libsrc/general/gzstream.h)
1015 +
1016 +# GEOM2D
1017 +SET (GEOM2D_SOURCES 
1018 +     ${PROJECT_SOURCE_DIR}/libsrc/geom2d/genmesh2d.cpp 
1019 +     ${PROJECT_SOURCE_DIR}/libsrc/geom2d/geom2dmesh.cpp 
1020 +     ${PROJECT_SOURCE_DIR}/libsrc/geom2d/geometry2d.cpp)
1021 +
1022 +# GPRIM
1023 +SET(GPRIM_SOURCES 
1024 +    ${PROJECT_SOURCE_DIR}/libsrc/gprim/adtree.cpp 
1025 +    ${PROJECT_SOURCE_DIR}/libsrc/gprim/geom2d.cpp 
1026 +    ${PROJECT_SOURCE_DIR}/libsrc/gprim/geom3d.cpp 
1027 +    ${PROJECT_SOURCE_DIR}/libsrc/gprim/geomfuncs.cpp 
1028 +    ${PROJECT_SOURCE_DIR}/libsrc/gprim/geomtest3d.cpp 
1029 +    ${PROJECT_SOURCE_DIR}/libsrc/gprim/transform3d.cpp 
1030 +    ${PROJECT_SOURCE_DIR}/libsrc/gprim/spline.cpp 
1031 +    ${PROJECT_SOURCE_DIR}/libsrc/gprim/splinegeometry.cpp)
1032 +
1033 +FILE(GLOB GPRIM_INCLUDES "${PROJECT_SOURCE_DIR}/libsrc/gprim/*.hpp")
1034 +
1035 +# INCLUDE
1036 +SET(INCLUDE_INCLUDES 
1037 +    ${PROJECT_SOURCE_DIR}/libsrc/include/nginterface.h
1038 +    ${PROJECT_SOURCE_DIR}/libsrc/include/nginterface_v2.hpp
1039 +    ${PROJECT_SOURCE_DIR}/libsrc/include/mystdlib.h
1040 +    ${PROJECT_SOURCE_DIR}/libsrc/include/mydefs.hpp)
1041 +
1042 +# INTERFACE
1043 +SET(INTERFACE_SOURCES 
1044 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/nginterface.cpp 
1045 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/nginterface_v2.cpp
1046 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/read_fnf_mesh.cpp 
1047 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/readtetmesh.cpp 
1048 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/readuser.cpp 
1049 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writeabaqus.cpp 
1050 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writediffpack.cpp 
1051 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writedolfin.cpp 
1052 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writeelmer.cpp 
1053 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writefeap.cpp 
1054 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writefluent.cpp 
1055 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writegmsh.cpp 
1056 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writejcm.cpp 
1057 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writepermas.cpp 
1058 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writetecplot.cpp 
1059 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writetet.cpp 
1060 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writetochnog.cpp 
1061 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writeuser.cpp 
1062 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/wuchemnitz.cpp 
1063 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writegmsh2.cpp 
1064 +    ${PROJECT_SOURCE_DIR}/libsrc/interface/writeOpenFOAM15x.cpp)
1065 +
1066 +# LINALG
1067 +SET (LINALG_SOURCES 
1068 +     ${PROJECT_SOURCE_DIR}/libsrc/linalg/densemat.cpp 
1069 +     ${PROJECT_SOURCE_DIR}/libsrc/linalg/polynomial.cpp 
1070 +     ${PROJECT_SOURCE_DIR}/libsrc/linalg/bfgs.cpp 
1071 +     ${PROJECT_SOURCE_DIR}/libsrc/linalg/linopt.cpp 
1072 +     ${PROJECT_SOURCE_DIR}/libsrc/linalg/linsearch.cpp)
1073 +
1074 +FILE(GLOB LINALG_INCLUDES "${PROJECT_SOURCE_DIR}/libsrc/linalg/*.hpp")
1075 +
1076 +# MESHING
1077 +SET(MESHING_SOURCES 
1078 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/adfront2.cpp 
1079 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/adfront3.cpp
1080 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/bisect.cpp 
1081 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/boundarylayer.cpp 
1082 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/clusters.cpp      
1083 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/curvedelems.cpp 
1084 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/delaunay.cpp 
1085 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/delaunay2d.cpp 
1086 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/geomsearch.cpp 
1087 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/global.cpp     
1088 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/hprefinement.cpp 
1089 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/improve2.cpp 
1090 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/improve2gen.cpp 
1091 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/improve3.cpp 
1092 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/localh.cpp 
1093 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshclass.cpp 
1094 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshfunc.cpp 
1095 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshfunc2d.cpp 
1096 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshing2.cpp 
1097 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshing3.cpp 
1098 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshtool.cpp 
1099 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/meshtype.cpp 
1100 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/msghandler.cpp 
1101 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/netrule2.cpp 
1102 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/netrule3.cpp 
1103 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/parser2.cpp 
1104 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/parser3.cpp 
1105 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/prism2rls.cpp 
1106 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/pyramid2rls.cpp 
1107 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/pyramidrls.cpp 
1108 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/quadrls.cpp 
1109 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/refine.cpp    
1110 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/ruler2.cpp 
1111 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/ruler3.cpp 
1112 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/secondorder.cpp 
1113 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/smoothing2.5.cpp 
1114 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/smoothing2.cpp 
1115 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/smoothing3.cpp 
1116 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/specials.cpp 
1117 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/tetrarls.cpp 
1118 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/topology.cpp 
1119 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/triarls.cpp 
1120 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/validate.cpp 
1121 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/zrefine.cpp 
1122 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/bcfunctions.cpp 
1123 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/parallelmesh.cpp 
1124 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/paralleltop.cpp 
1125 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/paralleltop.hpp 
1126 +    ${PROJECT_SOURCE_DIR}/libsrc/meshing/basegeom.cpp)
1127 +
1128 +FILE(GLOB MESHING_INCLUDES "${PROJECT_SOURCE_DIR}/libsrc/meshing/*.hpp")
1129 +
1130 +# OCC
1131 +SET(OCC_SOURCES 
1132 +    ${PROJECT_SOURCE_DIR}/libsrc/occ/Partition_Inter2d.cxx 
1133 +    ${PROJECT_SOURCE_DIR}/libsrc/occ/Partition_Inter3d.cxx 
1134 +    ${PROJECT_SOURCE_DIR}/libsrc/occ/Partition_Loop.cxx 
1135 +    ${PROJECT_SOURCE_DIR}/libsrc/occ/Partition_Loop2d.cxx 
1136 +    ${PROJECT_SOURCE_DIR}/libsrc/occ/Partition_Loop3d.cxx 
1137 +    ${PROJECT_SOURCE_DIR}/libsrc/occ/Partition_Spliter.cxx 
1138 +    ${PROJECT_SOURCE_DIR}/libsrc/occ/occconstruction.cpp 
1139 +    ${PROJECT_SOURCE_DIR}/libsrc/occ/occgenmesh.cpp 
1140 +    ${PROJECT_SOURCE_DIR}/libsrc/occ/occgeom.cpp 
1141 +    ${PROJECT_SOURCE_DIR}/libsrc/occ/occmeshsurf.cpp)
1142 +
1143 +SET(OCC_INCLUDES ${PROJECT_SOURCE_DIR}/libsrc/occ/occgeom.hpp ${PROJECT_SOURCE_DIR}/libsrc/occ/occmeshsurf.hpp)
1144 +
1145 +# STLGEOM
1146 +SET(STLGEOM_SOURCES 
1147 +    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/meshstlsurface.cpp 
1148 +    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stlgeom.cpp 
1149 +    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stlgeomchart.cpp 
1150 +    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stlgeommesh.cpp 
1151 +    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stlline.cpp 
1152 +    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stltool.cpp 
1153 +    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stltopology.cpp)
1154 +
1155 +SET(STLGEOM_INCLUDES
1156 +    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/meshstlsurface.hpp 
1157 +    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stlgeom.hpp
1158 +    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stlline.hpp
1159 +    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stltool.hpp 
1160 +    ${PROJECT_SOURCE_DIR}/libsrc/stlgeom/stltopology.hpp)
1161 +
1162 +# NGLIB
1163 +SET(NGLIB_SOURCES nglib.cpp)
1164 +ADD_LIBRARY(nglib SHARED 
1165 +            ${NGLIB_SOURCES}
1166 +            ${CGS_SOURCES} 
1167 +            ${GENERAL_SOURCES}
1168 +            ${GPRIM_SOURCES}
1169 +            ${GEOM2D_SOURCES}
1170 +            ${INTERFACE_SOURCES} 
1171 +            ${LINALG_SOURCES} 
1172 +            ${MESHING_SOURCES} 
1173 +            ${OCC_SOURCES}
1174 +            ${STLGEOM_SOURCES})
1175 +
1176 +TARGET_LINK_LIBRARIES(nglib ${OCCLIBS} ${PLATFORM_LIBADD} ${ZLIB_LIBRARIES})
1177 +INSTALL(TARGETS nglib DESTINATION ${NETGEN_INSTALL_LIBS}) 
1178 +
1179 +# Install headers
1180 +INSTALL(FILES ${GENERAL_INCLUDES} 
1181 +              ${INCLUDE_INCLUDES}
1182 +              ${GPRIM_INCLUDES} 
1183 +              ${LINALG_INCLUDES} 
1184 +              ${MESHING_INCLUDES} 
1185 +              ${STLGEOM_INCLUDES}
1186 +              ${OCC_INCLUDES} 
1187 +              nglib.h 
1188 +              DESTINATION ${NETGEN_INSTALL_HEADERS})
1189 +
1190 +
1191 +# NG_VOL
1192 +SET(NG_VOL_SOURCES ng_vol.cpp)
1193 +ADD_EXECUTABLE(ng_vol ${NG_VOL_SOURCES})
1194 +TARGET_LINK_LIBRARIES(ng_vol nglib)
1195 +INSTALL(TARGETS ng_vol  DESTINATION ${NETGEN_INSTALL_BINS})
1196 +
1197 +# NG_STL
1198 +SET(NG_STL_SOURCES ng_stl.cpp)
1199 +ADD_EXECUTABLE(ng_stl ${NG_STL_SOURCES})
1200 +TARGET_LINK_LIBRARIES(ng_stl nglib)
1201 +INSTALL(TARGETS ng_stl  DESTINATION ${NETGEN_INSTALL_BINS})
1202 diff -Naur netgen-5.3.1_orig/nglib/nglib.cpp netgen-5.3.1_modif/nglib/nglib.cpp
1203 --- netgen-5.3.1_orig/nglib/nglib.cpp   2019-01-22 13:07:06.386379800 +0300
1204 +++ netgen-5.3.1_modif/nglib/nglib.cpp  2019-01-22 12:34:46.150402500 +0300
1205 @@ -87,7 +87,8 @@
1206     // Clean-up functions before ending usage of nglib
1207     DLL_HEADER void Ng_Exit ()
1208     {
1209 -      ;
1210 +       delete testout;
1211 +       testout = 0;
1212     }
1213  
1214  
1215 @@ -546,7 +547,7 @@
1216  
1217  
1218     Array<STLReadTriangle> readtrias; //only before initstlgeometry
1219 -   Array<Point<3> > readedges; //only before init stlgeometry
1220 +   DLL_HEADER Array<Point<3> > readedges; //only before init stlgeometry
1221  
1222     // loads geometry from STL file
1223     DLL_HEADER Ng_STL_Geometry * Ng_STL_LoadGeometry (const char * filename, int binary)