Improve NETGEN detection and support V6.
This commit is contained in:
committed by
wmayer
parent
d094d3e33f
commit
e3cf2331a0
@@ -17,8 +17,6 @@ SET(NETGEN_DEFINITIONS -DNO_PARALLEL_THREADS -DOCCGEOMETRY)
|
||||
IF(DEFINED MACPORTS_PREFIX OR DEFINED HOMEBREW_PREFIX)
|
||||
# We haven't supported Netgen prior to 5.3.1 on MacOS, and the current
|
||||
# plan is for the next Netgen version to be 6.1 (currently unreleased).
|
||||
LIST( APPEND NETGEN_DEFINITIONS -DNETGEN_V5 )
|
||||
|
||||
IF(DEFINED HOMEBREW_PREFIX)
|
||||
EXEC_PROGRAM(brew ARGS --prefix nglib OUTPUT_VARIABLE NGLIB_PREFIX)
|
||||
ELSE(DEFINED HOMEBREW_PREFIX)
|
||||
@@ -39,8 +37,8 @@ IF(DEFINED MACPORTS_PREFIX OR DEFINED HOMEBREW_PREFIX)
|
||||
ENDIF(NOT NETGENDATA)
|
||||
|
||||
ELSE(DEFINED MACPORTS_PREFIX OR DEFINED HOMEBREW_PREFIX)
|
||||
FIND_PATH(NGLIB_INCLUDE_DIR nglib.h /usr/include)
|
||||
FIND_LIBRARY(NGLIB_LIBRARIES nglib /usr/lib /usr/local/lib)
|
||||
FIND_PATH(NGLIB_INCLUDE_DIR NAMES nglib.h PATHS ${NETGEN_INCLUDEDIR} /usr/include)
|
||||
FIND_LIBRARY(NGLIB_LIBRARIES nglib PATHS ${NETGEN_LIBDIR} /usr/lib /usr/local/lib)
|
||||
|
||||
IF(NOT NETGENDATA)
|
||||
SET(NETGENDATA /usr/share/netgen/libsrc)
|
||||
@@ -48,17 +46,42 @@ ELSE(DEFINED MACPORTS_PREFIX OR DEFINED HOMEBREW_PREFIX)
|
||||
|
||||
ENDIF(DEFINED MACPORTS_PREFIX OR DEFINED HOMEBREW_PREFIX)
|
||||
|
||||
FIND_PATH(NETGEN_DIR_csg csg.hpp PATHS ${NETGENDATA}/csg)
|
||||
FIND_PATH(NETGEN_DIR_gen array.hpp PATHS ${NETGENDATA}/general)
|
||||
FIND_PATH(NETGEN_DIR_geom2d geom2dmesh.hpp PATHS ${NETGENDATA}/geom2d)
|
||||
FIND_PATH(NETGEN_DIR_gprim gprim.hpp PATHS ${NETGENDATA}/gprim)
|
||||
FIND_PATH(NETGEN_DIR_la linalg.hpp PATHS ${NETGENDATA}/linalg)
|
||||
FIND_PATH(NETGEN_DIR_mesh meshing.hpp PATHS ${NETGENDATA}/meshing)
|
||||
FIND_PATH(NETGEN_DIR_occ occgeom.hpp PATHS ${NETGENDATA}/occ)
|
||||
FIND_PATH(NETGEN_DIR_stlgeom stlgeom.hpp PATHS ${NETGENDATA}/stlgeom)
|
||||
FIND_PATH(NETGEN_DIR_include NAMES mydefs.hpp PATHS ${NETGEN_INCLUDEDIR} ${NGLIB_INCLUDE_DIR} ${NETGENDATA}/include)
|
||||
FIND_PATH(NETGEN_DIR_csg NAMES csg.hpp PATHS ${NETGEN_INCLUDEDIR} ${NGLIB_INCLUDE_DIR} ${NETGENDATA}/csg)
|
||||
FIND_PATH(NETGEN_DIR_gen NAMES array.hpp PATHS ${NETGEN_INCLUDEDIR} ${NGLIB_INCLUDE_DIR} ${NETGENDATA}/general)
|
||||
FIND_PATH(NETGEN_DIR_geom2d NAMES geom2dmesh.hpp PATHS ${NETGEN_INCLUDEDIR} ${NGLIB_INCLUDE_DIR} ${NETGENDATA}/geom2d)
|
||||
FIND_PATH(NETGEN_DIR_gprim NAMES gprim.hpp PATHS ${NETGEN_INCLUDEDIR} ${NGLIB_INCLUDE_DIR} ${NETGENDATA}/gprim)
|
||||
FIND_PATH(NETGEN_DIR_la NAMES linalg.hpp PATHS ${NETGEN_INCLUDEDIR} ${NGLIB_INCLUDE_DIR} ${NETGENDATA}/linalg)
|
||||
FIND_PATH(NETGEN_DIR_mesh NAMES meshing.hpp PATHS ${NETGEN_INCLUDEDIR} ${NGLIB_INCLUDE_DIR} ${NETGENDATA}/meshing)
|
||||
FIND_PATH(NETGEN_DIR_occ NAMES occgeom.hpp PATHS ${NETGEN_INCLUDEDIR} ${NGLIB_INCLUDE_DIR} ${NETGENDATA}/occ)
|
||||
FIND_PATH(NETGEN_DIR_stlgeom NAMES stlgeom.hpp PATHS ${NETGEN_INCLUDEDIR} ${NGLIB_INCLUDE_DIR} ${NETGENDATA}/stlgeom)
|
||||
|
||||
LIST( APPEND NETGEN_INCLUDE_DIRS
|
||||
IF(NOT NGLIB_INCLUDE_DIR AND NOT NETGEN_DIR_include)
|
||||
MESSAGE(STATUS "Cannot find NETGEN header files.")
|
||||
ELSE()
|
||||
file(STRINGS ${NETGEN_DIR_include}/mydefs.hpp NETGEN_VERSION
|
||||
REGEX "#define PACKAGE_VERSION.*"
|
||||
)
|
||||
string(REGEX MATCH "[0-9]+" NETGEN_VERSION ${NETGEN_VERSION})
|
||||
# EXECUTE_PROCESS(COMMAND grep -e ".*define.*PACKAGE_VERSION" ${NETGEN_DIR_include}/mydefs.hpp
|
||||
# COMMAND sed -r "s:.*PACKAGE_VERSION \"([0-9]*).*:\\1:g"
|
||||
# OUTPUT_VARIABLE NETGEN_VERSION
|
||||
# OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
ENDIF()
|
||||
|
||||
IF(NOT NGLIB_LIBRARIES)
|
||||
MESSAGE(STATUS "Cannot find NETGEN library.")
|
||||
ENDIF()
|
||||
|
||||
IF(NGLIB_INCLUDE_DIR AND NGLIB_LIBRARIES)
|
||||
SET(NETGEN_FOUND TRUE)
|
||||
SET(NETGEN_INCLUDE_DIRS ${NETGEN_DIR_include} ${NGLIB_INCLUDE_DIR}
|
||||
${NETGEN_DIR_csg} ${NETGEN_DIR_gen} ${NETGEN_DIR_geom2d}
|
||||
${NETGEN_DIR_gprim} ${NETGEN_DIR_la} ${NETGEN_DIR_mesh}
|
||||
${NETGEN_DIR_occ} ${NETGEN_DIR_stlgeom} )
|
||||
|
||||
${NETGEN_DIR_occ} ${NETGEN_DIR_stlgeom})
|
||||
LIST(REMOVE_DUPLICATES NETGEN_INCLUDE_DIRS)
|
||||
MESSAGE(STATUS "Found NETGEN version ${NETGEN_VERSION}")
|
||||
LIST(APPEND NETGEN_DEFINITIONS -DNETGEN_VERSION=${NETGEN_VERSION})
|
||||
ELSE()
|
||||
SET(NETGEN_FOUND FALSE)
|
||||
ENDIF()
|
||||
|
||||
Reference in New Issue
Block a user