Salome HOME
Pb: nothing is generated on several-solids shape if there is a
[plugins/netgenplugin.git] / adm_local / cmake_files / FindNETGEN.cmake
1 # Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 SET(NETGENHOME $ENV{NETGENHOME})
21 FIND_PATH(NETGEN_INCLUDES_DIR nglib.h ${NETGENHOME}/include)
22 SET(NETGEN_INCLUDES)
23 SET(NETGEN_INCLUDES ${NETGEN_INCLUDES} -I${NETGEN_INCLUDES_DIR} -I${NETGENHOME}/share/netgen/include)
24 SET(NETGEN_INCLUDES ${NETGEN_INCLUDES} -DNO_PARALLEL_THREADS -DOCCGEOMETRY)
25
26 SET(NETGEN_LIBS)
27 FIND_LIBRARY(NETGEN_LIB_csg csg PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
28 FIND_LIBRARY(NETGEN_LIB_gen gen PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
29 FIND_LIBRARY(NETGEN_LIB_geom2d geom2d PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
30 FIND_LIBRARY(NETGEN_LIB_gprim gprim PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
31 FIND_LIBRARY(NETGEN_LIB_interface interface PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
32 FIND_LIBRARY(NETGEN_LIB_la la PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
33 FIND_LIBRARY(NETGEN_LIB_mesh mesh PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
34 FIND_LIBRARY(NETGEN_LIB_occ occ PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
35 FIND_LIBRARY(NETGEN_LIB_stl stl PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
36 FIND_LIBRARY(NETGEN_LIB_nglib nglib PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
37
38 FOREACH(LIBNAME 
39     ${NETGEN_LIB_csg} 
40     ${NETGEN_LIB_gen}
41     ${NETGEN_LIB_geom2d} 
42     ${NETGEN_LIB_gprim}
43     ${NETGEN_LIB_interface} 
44     ${NETGEN_LIB_la}
45     ${NETGEN_LIB_mesh} 
46     ${NETGEN_LIB_occ} 
47     ${NETGEN_LIB_stl} 
48     ${NETGEN_LIB_nglib}
49     )
50   IF(LIBNAME)
51     SET(NETGEN_LIBS ${NETGEN_LIBS} ${LIBNAME})
52   ENDIF(LIBNAME)
53 ENDFOREACH(LIBNAME )
54
55 # Check Netgen version
56 SET(NETGEN_V5 OFF)
57 SET(tmp_check_netgen ${CMAKE_BINARY_DIR}/tmp_check_netgen.cxx)
58 FILE(WRITE ${tmp_check_netgen}
59   "#include <iostream>      \n"
60   "#include <fstream>       \n"
61   "namespace nglib {        \n"
62   "#include \"nglib.h\"     \n"
63   "}                        \n"
64   "#include <occgeom.hpp>   \n"
65   "int main() {             \n"
66   "nglib::Ng_Init();        \n"
67   "netgen::Mesh* ngMesh;    \n"
68   "ngMesh->CalcLocalH(1.0); \n"
69   "nglib::Ng_Exit();        \n" 
70   "return 0;                \n"
71   "}                        \n"
72   )
73 IF(WINDOWS)
74  STRING(REPLACE "\\" "/" CAS_CPPFLAGS_TMP ${CAS_CPPFLAGS})
75  STRING(REPLACE "\\" "/" NETGEN_INCLUDES_TMP ${NETGEN_INCLUDES})
76 ENDIF(WINDOWS)
77
78 TRY_COMPILE(NETGEN_V5
79   ${CMAKE_BINARY_DIR}
80   ${tmp_check_netgen}
81   CMAKE_FLAGS "-DLINK_LIBRARIES:STRING=${NETGEN_LIB_nglib}"
82   COMPILE_DEFINITIONS ${CAS_CPPFLAGS_TMP} ${NETGEN_INCLUDES_TMP}
83   OUTPUT_VARIABLE OUTPUT
84   )
85 FILE(REMOVE ${tmp_check_netgen})
86
87 IF(NETGEN_V5)
88   SET(NETGEN_INCLUDES ${NETGEN_INCLUDES} -DNETGEN_V5)
89 ENDIF(NETGEN_V5)