From d3e4dd8e4ac1212a714bebbedab1bdc655d3d24a Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Wed, 15 Nov 2006 15:06:45 +0000 Subject: [PATCH] more occ work --- Common/CommandLine.cpp | 8 +++- Geo/GModelIO_OCC.cpp | 5 +- Geo/OCCEdge.cpp | 4 +- Geo/OCCFace.cpp | 4 +- Geo/OCCRegion.cpp | 4 +- configure | 101 +++++++++++++++++++++++++++++++++++++++++ configure.in | 35 +++++++++++++- 7 files changed, 151 insertions(+), 10 deletions(-) diff --git a/Common/CommandLine.cpp b/Common/CommandLine.cpp index ea1a81e51e..20c72a27ae 100644 --- a/Common/CommandLine.cpp +++ b/Common/CommandLine.cpp @@ -1,4 +1,4 @@ -// $Id: CommandLine.cpp,v 1.81 2006-09-24 05:59:13 geuzaine Exp $ +// $Id: CommandLine.cpp,v 1.82 2006-11-15 15:06:45 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -158,6 +158,12 @@ char *Get_BuildOptions(void) #endif #if defined(HAVE_ANN_) strcat(opt, "ANN "); +#endif +#if defined(HAVE_CGNS) + strcat(opt, "CGNS "); +#endif +#if defined(HAVE_OCC) + strcat(opt, "OCC "); #endif first = 0; } diff --git a/Geo/GModelIO_OCC.cpp b/Geo/GModelIO_OCC.cpp index 32055b81cf..4c1e3f8543 100644 --- a/Geo/GModelIO_OCC.cpp +++ b/Geo/GModelIO_OCC.cpp @@ -1,4 +1,4 @@ - // $Id: GModelIO_OCC.cpp,v 1.2 2006-11-15 14:35:03 remacle Exp $ + // $Id: GModelIO_OCC.cpp,v 1.3 2006-11-15 15:06:45 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -21,7 +21,8 @@ #include "GModel.h" #include "Message.h" -#ifdef _HAVE_OCC_ + +#if defined(HAVE_OCC) #include "OCCIncludes.h" #include "OCCVertex.h" #include "OCCEdge.h" diff --git a/Geo/OCCEdge.cpp b/Geo/OCCEdge.cpp index 16b5003d2a..611635c2ea 100644 --- a/Geo/OCCEdge.cpp +++ b/Geo/OCCEdge.cpp @@ -1,4 +1,4 @@ -// $Id: OCCEdge.cpp,v 1.2 2006-11-14 20:20:18 remacle Exp $ +// $Id: OCCEdge.cpp,v 1.3 2006-11-15 15:06:45 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -19,7 +19,7 @@ // // Please report all bugs and problems to <gmsh@geuz.org>. -#ifdef _HAVE_OCC_ +#if defined(HAVE_OCC) #include "GModel.h" #include "OCCEdge.h" diff --git a/Geo/OCCFace.cpp b/Geo/OCCFace.cpp index 3fd9dbe05b..3978cab58f 100644 --- a/Geo/OCCFace.cpp +++ b/Geo/OCCFace.cpp @@ -1,4 +1,4 @@ -// $Id: OCCFace.cpp,v 1.3 2006-11-15 14:35:03 remacle Exp $ +// $Id: OCCFace.cpp,v 1.4 2006-11-15 15:06:45 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -19,7 +19,7 @@ // // Please report all bugs and problems to <OCC@geuz.org>. -#ifdef _HAVE_OCC_ +#if defined(HAVE_OCC) #include "GModel.h" #include "OCCVertex.h" #include "OCCEdge.h" diff --git a/Geo/OCCRegion.cpp b/Geo/OCCRegion.cpp index bfaa45a2c1..458c5288ac 100644 --- a/Geo/OCCRegion.cpp +++ b/Geo/OCCRegion.cpp @@ -1,4 +1,4 @@ -// $Id: OCCRegion.cpp,v 1.1 2006-11-15 14:36:39 remacle Exp $ +// $Id: OCCRegion.cpp,v 1.2 2006-11-15 15:06:45 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -19,7 +19,7 @@ // // Please report all bugs and problems to <OCC@geuz.org>. -#ifdef _HAVE_OCC_ +#if defined(HAVE_OCC) #include "GModel.h" #include "OCCVertex.h" #include "OCCEdge.h" diff --git a/configure b/configure index cec80e4a04..d32894c552 100755 --- a/configure +++ b/configure @@ -864,6 +864,7 @@ Optional Features: --enable-matheval compile MathEval if available (default=yes) --enable-osmesa use OSMesa for offscreen rendering (default=no) --enable-cgns enable CGNS output (default=no) + --enable-occ enable OpenCascade support (default=no) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -879,6 +880,7 @@ Optional Packages: --with-osmesa-prefix=PFX prefix where OSMesa is installed --with-cgns-prefix=PFX prefix where CGNS is installed + --with-occ-prefix=PFX prefix where OpenCascade is installed Some influential environment variables: CC C compiler command @@ -1373,6 +1375,12 @@ if test "${with_cgns_prefix+set}" = set; then CGNS_PREFIX=$withval fi; +# Check whether --with-occ-prefix or --without-occ-prefix was given. +if test "${with_occ_prefix+set}" = set; then + withval="$with_occ_prefix" + OCC_PREFIX=$withval +fi; + # Check whether --enable-gsl or --disable-gsl was given. if test "${enable_gsl+set}" = set; then enableval="$enable_gsl" @@ -1452,6 +1460,11 @@ fi; if test "${enable_cgns+set}" = set; then enableval="$enable_cgns" +fi; +# Check whether --enable-occ or --disable-occ was given. +if test "${enable_occ+set}" = set; then + enableval="$enable_occ" + fi; UNAME=`uname` @@ -4490,6 +4503,94 @@ fi fi fi +if test "x${OCC_PREFIX}" != "x"; then + enable_occ="yes" +fi +if test "x$enable_occ" = "xyes"; then + if test "x${OCC_PREFIX}" != "x"; then + LDFLAGS="-L${OCC_PREFIX}/lib ${LDFLAGS}" + fi + echo "$as_me:$LINENO: checking for main in -lTKernel" >&5 +echo $ECHO_N "checking for main in -lTKernel... $ECHO_C" >&6 +if test "${ac_cv_lib_TKernel_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lTKernel $LIBS" +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + +int +main () +{ +main (); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_TKernel_main=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_TKernel_main=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +echo "$as_me:$LINENO: result: $ac_cv_lib_TKernel_main" >&5 +echo "${ECHO_T}$ac_cv_lib_TKernel_main" >&6 +if test $ac_cv_lib_TKernel_main = yes; then + OCC="yes" +else + OCC="no" +fi + + if test "x${OCC}" = "xyes"; then + OCC_LIBS="-lTKIGES -lTKPrim -lTKTopAlgo -lTKXDESTEP -lTKStdSchema" + OCC_LIBS="${OCC_LIBS} -lTKGeomAlgo -lTKSTEP -lTKStdLSchema -lTKV3d -lTKBRep" + OCC_LIBS="${OCC_LIBS} -lTKBool -lTKXDEIGES -lTKV2d -lTKGeomBase -lTKSTEP209" + OCC_LIBS="${OCC_LIBS} -lTKG3d -lTKSTEPAttr -lTKG2d -lTKIGES -lTKSTEPBase" + OCC_LIBS="${OCC_LIBS} -lTKMath -lTKernel -lTKShHealing -lTKMesh -lTKXSBase" + OCC_LIBS="${OCC_LIBS} -lTKXDESTEP -lTKSTEP" + if test "x${OCC_PREFIX}" = "x"; then + GMSH_LIBS="${GMSH_LIBS} ${OCC_LIBS}" + FLAGS="${FLAGS} -DHAVE_OCC" + else + GMSH_LIBS="${GMSH_LIBS} -L${OCC_PREFIX}/lib ${OCC_LIBS}" + FLAGS="${FLAGS} -DHAVE_OCC -I${OCC_PREFIX}/include -I${OCC_PREFIX}/inc" + fi + fi +fi + if test "x$enable_parallel" = "xyes"; then FLAGS="-DHAVE_PARALLEL ${FLAGS}" fi diff --git a/configure.in b/configure.in index d9a0be7ba5..0eaff18da4 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -dnl $Id: configure.in,v 1.105 2006-10-10 14:04:12 geuzaine Exp $ +dnl $Id: configure.in,v 1.106 2006-11-15 15:06:45 geuzaine Exp $ dnl dnl Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle dnl @@ -57,6 +57,10 @@ AC_ARG_WITH(cgns-prefix, AC_HELP_STRING([--with-cgns-prefix=PFX], [prefix where CGNS is installed]), [CGNS_PREFIX=$withval]) +AC_ARG_WITH(occ-prefix, + AC_HELP_STRING([--with-occ-prefix=PFX], + [prefix where OpenCascade is installed]), + [OCC_PREFIX=$withval]) dnl Parse '--enable' command line options AC_ARG_ENABLE(gsl, @@ -107,6 +111,9 @@ AC_ARG_ENABLE(osmesa, AC_ARG_ENABLE(cgns, AC_HELP_STRING([--enable-cgns], [enable CGNS output (default=no)])) +AC_ARG_ENABLE(occ, + AC_HELP_STRING([--enable-occ], + [enable OpenCascade support (default=no)])) dnl Get the operating system name UNAME=`uname` @@ -540,6 +547,32 @@ if test "x$enable_cgns" = "xyes"; then fi fi +dnl Check for OpenCascade +if test "x${OCC_PREFIX}" != "x"; then + enable_occ="yes" +fi +if test "x$enable_occ" = "xyes"; then + if test "x${OCC_PREFIX}" != "x"; then + LDFLAGS="-L${OCC_PREFIX}/lib ${LDFLAGS}" + fi + AC_CHECK_LIB(TKernel,main,OCC="yes",OCC="no") + if test "x${OCC}" = "xyes"; then + OCC_LIBS="-lTKIGES -lTKPrim -lTKTopAlgo -lTKXDESTEP -lTKStdSchema" + OCC_LIBS="${OCC_LIBS} -lTKGeomAlgo -lTKSTEP -lTKStdLSchema -lTKV3d -lTKBRep" + OCC_LIBS="${OCC_LIBS} -lTKBool -lTKXDEIGES -lTKV2d -lTKGeomBase -lTKSTEP209" + OCC_LIBS="${OCC_LIBS} -lTKG3d -lTKSTEPAttr -lTKG2d -lTKIGES -lTKSTEPBase" + OCC_LIBS="${OCC_LIBS} -lTKMath -lTKernel -lTKShHealing -lTKMesh -lTKXSBase" + OCC_LIBS="${OCC_LIBS} -lTKXDESTEP -lTKSTEP" + if test "x${OCC_PREFIX}" = "x"; then + GMSH_LIBS="${GMSH_LIBS} ${OCC_LIBS}" + FLAGS="${FLAGS} -DHAVE_OCC" + else + GMSH_LIBS="${GMSH_LIBS} -L${OCC_PREFIX}/lib ${OCC_LIBS}" + FLAGS="${FLAGS} -DHAVE_OCC -I${OCC_PREFIX}/include -I${OCC_PREFIX}/inc" + fi + fi +fi + dnl Check if we should build the parallel version if test "x$enable_parallel" = "xyes"; then FLAGS="-DHAVE_PARALLEL ${FLAGS}" -- GitLab