Blob Blame History Raw
diff -rupN gmsh-4.0.1-source/CMakeLists.txt gmsh-4.0.1-source-new/CMakeLists.txt
--- gmsh-4.0.1-source/CMakeLists.txt	2018-09-07 09:25:41.000000000 +0200
+++ gmsh-4.0.1-source-new/CMakeLists.txt	2018-09-10 10:58:55.424830166 +0200
@@ -129,7 +129,7 @@ if(ENABLE_PRIVATE_API)
   file(GLOB_RECURSE HEADERS Common/*.h Numeric/*.h Geo/*.h Mesh/*.h Solver/*.h
     Post/*.h Graphics/*.h contrib/kbipack/*.h contrib/DiscreteIntegration/*.h
     contrib/HighOrderMeshOptimizer/*.h contrib/MeshOptimizer/*.h
-    contrib/MeshQualityOptimizer/*.h contrib/MathEx/*.h)
+    contrib/MeshQualityOptimizer/*.h)
   set(GMSH_PRIVATE_API ${CMAKE_CURRENT_BINARY_DIR}/Common/GmshConfig.h
       ${CMAKE_CURRENT_BINARY_DIR}/Common/GmshVersion.h ${HEADERS})
   get_property(IAMCHILD DIRECTORY PROPERTY PARENT_DIRECTORY)
@@ -706,7 +706,7 @@ if(HAVE_FLTK OR ENABLE_GRAPHICS)
 endif(HAVE_FLTK OR ENABLE_GRAPHICS)
 
 if(ENABLE_ANN)
-  find_library(ANN_LIB ann PATH_SUFFIXES lib)
+  find_library(ANN_LIB ANN PATH_SUFFIXES lib)
   find_path(ANN_INC "ANN.h" PATH_SUFFIXES src include ANN)
   if(ENABLE_SYSTEM_CONTRIB AND ANN_LIB AND ANN_INC)
     message(STATUS "Using system version of ANN")
@@ -720,8 +720,16 @@ if(ENABLE_ANN)
 endif(ENABLE_ANN)
 
 if(ENABLE_BFGS)
-  add_subdirectory(contrib/lbfgs)
-  include_directories(contrib/lbfgs)
+  find_library(BFGS_LIB lbfgs PATH_SUFFIXES lib)
+  find_path(BFGS_INC "lbfgs.h" PATH_SUFFIXES include)
+  if(BFGS_LIB AND BFGS_INC)
+    list(APPEND EXTERNAL_LIBRARIES ${BFGS_LIB} -lalglib)
+    list(APPEND EXTERNAL_INCLUDES ${BFGS_INC})
+  else(BFGS_LIB AND BFGS_INC)
+    message(STATUS "System libbfgs not found: using contrib/lbfgs instead")
+    add_subdirectory(contrib/lbfgs)
+    include_directories(contrib/lbfgs)
+  endif(BFGS_LIB AND BFGS_INC)
   set_config_option(HAVE_BFGS "Bfgs")
 endif(ENABLE_BFGS)
 
@@ -770,8 +778,16 @@ if(ENABLE_KBIPACK)
 endif(ENABLE_KBIPACK)
 
 if(ENABLE_MATHEX)
-  add_subdirectory(contrib/MathEx)
-  include_directories(contrib/MathEx)
+  find_library(MATHEX_LIB mathex PATH_SUFFIXES lib)
+  find_path(MATHEX_INC "mathex.h" PATH_SUFFIXES src include)
+  if(MATHEX_LIB AND MATHEX_INC)
+     list(APPEND EXTERNAL_LIBRARIES ${MATHEX_LIB})
+     list(APPEND EXTERNAL_INCLUDES ${MATHEX_INC})
+  else(MATHEX_LIB AND MATHEX_INC)
+     message(STATUS "System MATHEX not found: using contrib/MathEx instead")
+    add_subdirectory(contrib/MathEx)
+    include_directories(contrib/MathEx)
+  endif(MATHEX_LIB AND MATHEX_INC)
   set_config_option(HAVE_MATHEX "MathEx")
 endif(ENABLE_MATHEX)
 
@@ -844,9 +860,22 @@ if(HAVE_MESH)
   endif(ENABLE_BLOSSOM)
 
   if(ENABLE_NETGEN)
-    add_subdirectory(contrib/Netgen)
-    include_directories(contrib/Netgen contrib/Netgen/libsrc/include
-                        contrib/Netgen/nglib)
+    find_library(NETGEN_LIB nglib PATH_SUFFIXES lib)
+    find_path(NETGEN_INC "nglib.h" PATH_SUFFIXES include/netgen-mesher)
+    if(NETGEN_LIB AND NETGEN_INC)
+      list(APPEND EXTERNAL_LIBRARIES ${NETGEN_LIB})
+      list(APPEND EXTERNAL_INCLUDES ${NETGEN_INC})
+      # Netgen private headers contain what contrib/Salome does
+      list(APPEND EXTERNAL_LIBRARIES -lngocc -lngcsg -lngmesh -lnginterface)
+      list(APPEND EXTERNAL_INCLUDES ${NETGEN_INC}/private ${NETGEN_INC} ${NETGEN_INC}/private/include)
+      add_definitions(-DOCCGEOMETRY)
+      set_config_option(HAVE_SALOME "Salome")
+    else(NETGEN_LIB AND NETGEN_INC)
+      message(STATUS "System netgen not found: using contrib/Netgen instead")
+      add_subdirectory(contrib/Netgen)
+      include_directories(contrib/Netgen contrib/Netgen/libsrc/include
+                          contrib/Netgen/nglib)
+    endif(NETGEN_LIB AND NETGEN_INC)
     set_config_option(HAVE_NETGEN "Netgen")
     add_definitions(-DNO_PARALLEL_THREADS -DNOTCL)
   endif(ENABLE_NETGEN)
@@ -858,7 +887,7 @@ if(HAVE_MESH)
   endif(ENABLE_BAMG)
 
   if(ENABLE_MMG3D)
-    find_library(MMG3D_LIB mmg3dlib4.0 PATH_SUFFIXES lib)
+    find_library(MMG3D_LIB mmg3d PATH_SUFFIXES lib)
     find_path(MMG3D_INC "libmmg3d.h" PATH_SUFFIXES src include)
     if(ENABLE_SYSTEM_CONTRIB AND MMG3D_LIB AND MMG3D_INC)
        message(STATUS "Using system version of MMG3D")
diff -rupN gmsh-4.0.1-source/Mesh/CMakeLists.txt gmsh-4.0.1-source-new/Mesh/CMakeLists.txt
--- gmsh-4.0.1-source/Mesh/CMakeLists.txt	2018-08-08 18:28:41.000000000 +0200
+++ gmsh-4.0.1-source-new/Mesh/CMakeLists.txt	2018-09-10 10:58:55.424830166 +0200
@@ -47,6 +47,7 @@ set(SRC
     yamakawa.cpp
     Field.cpp
     surfaceFiller.cpp
+    nglib_gmsh.cpp
 )
 
 file(GLOB HDR RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.h)