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