compile FreeCAD with nglib on debian jessie

Having trouble installing or compiling FreeCAD? Get help here.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
wmayer
Founder
Posts: 20243
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: compile FreeCAD with nglib on debian jessie

Post by wmayer »

I recently compiled netgen 5.3.1 and installed it under /opt/netgen and it worked for me. However, I still have installed the netgen package and maybe it got the headers from /usr/include/netgen. So, I have to check this again at the weekend.
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: compile FreeCAD with nglib on debian jessie

Post by bernd »

@werner:
For your information. I used the gist of vejmaire to compile FreeCAD with nglib: https://gist.github.com/vejmarie/817f77 ... 3c24cf17be

Thus in addition to install netgen to /opt/netgen I copied netgen source by "sudo cp -rf Netgen/netgen-5.3.1 /usr/share/netgen" to /usr/share. I have not installed any other netgen package. I may play a bit too.
Last edited by bernd on Fri Sep 09, 2016 5:22 am, edited 1 time in total.
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: compile FreeCAD with nglib on debian jessie

Post by bernd »

If I delete copied netgen source in /usr/share/netgen I get an cmake error. Means it is really needed at this location and seam not to take the headers from /opt/netgen with current cmake

Code: Select all

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
NETGEN_DIR_csg
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
NETGEN_DIR_gen
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
NETGEN_DIR_geom2d
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
NETGEN_DIR_gprim
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
NETGEN_DIR_include
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
NETGEN_DIR_la
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
NETGEN_DIR_mesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
NETGEN_DIR_occ
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
NETGEN_DIR_stlgeom
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh
   used as include directory in directory /home/hugo/Documents/dev/freecad/freecadbhb_master/freecad/src/3rdParty/salomesmesh

-- Configuring incomplete, errors occurred!
See also "/home/hugo/Documents/dev/freecad/freecadbhb_master/build/CMakeFiles/CMakeOutput.log".
See also "/home/hugo/Documents/dev/freecad/freecadbhb_master/build/CMakeFiles/CMakeError.log".
wmayer
Founder
Posts: 20243
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: compile FreeCAD with nglib on debian jessie

Post by wmayer »

See git commit 5e0a60b
  1. This fixes the build failure
  2. It simplifies including netgen. Instead of NETGEN_LIBDIR and NETGEN_INCLUDEDIR you can now set NETGEN_ROOT to /opt/netgen
  3. If the other headers are installed into /opt/netgen/libsrc there is nothing further to do. If they installed into a different place you have to set NETGEN_DATA to point to the libsrc directory
Where do you have the libsrc directory in your netgen installation?
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: compile FreeCAD with nglib on debian jessie

Post by bernd »

wmayer wrote:See git commit 5e0a60b
  1. This fixes the build failure
Works great here on Debian Jessie :D
wmayer wrote:Where do you have the libsrc directory in your netgen installation?
It is not installed by make install of netgen. There is an include with only a few files. I copied the libsrc from netgen source into /opt/netgen thus ...
wmayer wrote: [*]It simplifies including netgen. Instead of NETGEN_LIBDIR and NETGEN_INCLUDEDIR you can now set NETGEN_ROOT to /opt/netgen
Works great here too on Debian Jessie :D
wmayer wrote: [*]If the other headers are installed into /opt/netgen/libsrc there is nothing further to do. If they installed into a different place you have to set NETGEN_DATA to point to the libsrc directory[/list]
I will try if FreeCAD compiles with setting the include and do not copy libsrc manually. I report back.
aapo
Posts: 615
Joined: Mon Oct 29, 2018 6:41 pm

Re: compile FreeCAD with nglib on debian jessie

Post by aapo »

Sorry for necro-bumping this old thread, but I happened to stumble on with a very similar problem with current Debian Unstable (Bookworm / Sid), where NetGen has been updated to version 6.2.0, and there have been some related updates, obviously. I've been using the Debian provided NetGen for some time, and everything has been configured splendidly, but with these recent Debian updates I noticed that CMake can't properly find NetGen includes any more. Curiously, the CMake script almost looks in the correct place, but not quite: The configured include dirs are somehow missing the /usr prefix, which leads the compiler to look in the non-existent /include directory in the filesystem root.

Code: Select all

-- NETGEN:              6.2.0 (6.2-dev) [-DNO_PARALLEL_THREADS;-DOCCGEOMETRY;-DNETGEN_VERSION=393728] [] [/include/netgen/include;/include/netgen] [nglib] [/include/netgen/include;/include/netgen]

In my personal computer, I fixed this by simply linking the correct location to the place where CMake thinks the files are by creating the missing path into the filesystem root:

Code: Select all

sudo ln -s /usr/include /include

This solved the problem on my machine, but it's not very elegant. I wanted to post this to just give some information for others affected by the problem; as well as to give a starting point for improving the CMake script for NetGen, i.e. cMake/FindNETGEN.cmake. But in order to fix that, someone would neet to figure out what exactly is dropping the "usr" from the beginning of the paths.

Code: Select all

OS: Debian GNU/Linux bookworm/sid (KDE/plasma)
Word size of FreeCAD: 64-bit
Version: 0.21.0.31737 (Git)
Build type: Release
Branch: master
Hash: 2e5cb03261269ea2498a6062e4e949ccdc32fcc6
Python 3.11.1, Qt 5.15.8, Coin 4.0.0, Vtk 7.1.1, OCC 7.6.3
Locale: English/United States (en_US)
Installed mods: 
  * Assembly4
  * Render
  * fasteners
  * FCGear
  * Manipulator
  * Curves
  * sheetmetal
wmayer
Founder
Posts: 20243
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: compile FreeCAD with nglib on debian jessie

Post by wmayer »

On my Xubuntu 22.04 nglib-6.2 is used, too. In order to enable netgen support these packages (plus dependencies) must be installed:
  • libnglib-dev
  • netgen
  • netgen-headers
  • libmetis-dev
The build then continues without further problems. The hack to create a symlink is not needed here.

However, at runtime using the netgen mesher always crashes. This already happened to me with the 6.x version on my old system (Xubuntu 18.04). IIRC I got netgen support only working with one of the 5.x versions.
user1234
Veteran
Posts: 3345
Joined: Mon Jul 11, 2016 5:08 pm

Re: compile FreeCAD with nglib on debian jessie

Post by user1234 »

This is also my experience, that netgen never worked on Debian. You can compile it, sometimes you need some tricks, but it always crashed. Sadly, it seems, that there are no netgen maintainers for Debian and also compiling it on Debian is a pita, since they do not consider any dependency state of any OS.


Greetings
user1234
Post Reply