netgenplugin/adm_local/cmake_files/FindNETGEN.cmake
2013-04-01 13:28:55 +00:00

85 lines
3.2 KiB
CMake

# Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
SET(NETGENHOME $ENV{NETGENHOME})
FIND_PATH(NETGEN_INCLUDES_DIR nglib.h ${NETGENHOME}/include)
SET(NETGEN_INCLUDES)
SET(NETGEN_INCLUDES ${NETGEN_INCLUDES} -I${NETGEN_INCLUDES_DIR} -I${NETGENHOME}/share/netgen/include)
SET(NETGEN_INCLUDES ${NETGEN_INCLUDES} -DNO_PARALLEL_THREADS -DOCCGEOMETRY)
SET(NETGEN_LIBS)
FIND_LIBRARY(NETGEN_LIB_csg csg PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
#FIND_LIBRARY(NETGEN_LIB_gen gen PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
FIND_LIBRARY(NETGEN_LIB_geom2d geom2d PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
#FIND_LIBRARY(NETGEN_LIB_gprim gprim PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
FIND_LIBRARY(NETGEN_LIB_interface interface PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
#FIND_LIBRARY(NETGEN_LIB_la la PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
FIND_LIBRARY(NETGEN_LIB_mesh mesh PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
FIND_LIBRARY(NETGEN_LIB_occ occ PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
FIND_LIBRARY(NETGEN_LIB_stl stl PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
FIND_LIBRARY(NETGEN_LIB_nglib nglib PATHS ${NETGENHOME}/lib ${NETGENHOME}/lib/LINUX)
FOREACH(LIBNAME
${NETGEN_LIB_csg}
# ${NETGEN_LIB_gen}
${NETGEN_LIB_geom2d}
# ${NETGEN_LIB_gprim}
${NETGEN_LIB_interface}
# ${NETGEN_LIB_la}
${NETGEN_LIB_mesh}
${NETGEN_LIB_occ}
${NETGEN_LIB_stl}
${NETGEN_LIB_nglib}
)
IF(LIBNAME)
SET(NETGEN_LIBS ${NETGEN_LIBS} ${LIBNAME})
ENDIF(LIBNAME)
ENDFOREACH(LIBNAME )
# Check Netgen version
SET(NETGEN_V5 OFF)
SET(tmp_check_netgen ${CMAKE_BINARY_DIR}/tmp_check_netgen.cxx)
FILE(WRITE ${tmp_check_netgen}
"#include <iostream> \n"
"#include <fstream> \n"
"namespace nglib { \n"
"#include \"nglib.h\" \n"
"} \n"
"#include <occgeom.hpp> \n"
"int main() { \n"
"nglib::Ng_Init(); \n"
"netgen::Mesh* ngMesh; \n"
"ngMesh->CalcLocalH(1.0); \n"
"nglib::Ng_Exit(); \n"
"return 0; \n"
"} \n"
)
TRY_COMPILE(NETGEN_V5
${CMAKE_BINARY_DIR}
${tmp_check_netgen}
CMAKE_FLAGS "-DLINK_LIBRARIES:STRING=${NETGEN_LIB_nglib}"
COMPILE_DEFINITIONS ${CAS_CPPFLAGS} ${NETGEN_INCLUDES}
OUTPUT_VARIABLE OUTPUT
)
FILE(REMOVE ${tmp_check_netgen})
IF(NETGEN_V5)
SET(NETGEN_INCLUDES ${NETGEN_INCLUDES} -DNETGEN_V5)
ENDIF(NETGEN_V5)