Difference between revisions of "FreeCAD from Source"

From Da Nerd Mage Wiki
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 32: Line 32:
<span style="color: rgb(153, 51, 102);">'''Note: This should build a stable version.''' (You can change branch to match current stable version...)</span>
<span style="color: rgb(153, 51, 102);">'''Note: This should build a stable version.''' (You can change branch to match current stable version...)</span>


* <code>git clone --recurse-submodules <nowiki>https://github.com/FreeCAD/FreeCAD.git</nowiki> freecad-source</code>
* <code>git clone --recurse-submodules <nowiki>https://github.com/FreeCAD/FreeCAD.git</nowiki> --branch releases/FreeCAD-1-0 freecad-source
</code>


== '''<span style="color: rgb(132, 63, 161);">The prerequisites:</span>''' ==
== '''<span style="color: rgb(132, 63, 161);">The prerequisites:</span>''' ==


* <code>sudo apt install cmake cmake-gui libboost-date-time-dev libboost-dev libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-serialization-dev libboost-thread-dev libcoin-dev libeigen3-dev libgts-bin libgts-dev libkdtree++-dev libmedc-dev libocct-data-exchange-dev libocct-ocaf-dev libocct-visualization-dev libopencv-dev libproj-dev libpyside2-dev libqt5opengl5-dev libqt5svg5-dev qtwebengine5-dev libqt5x11extras5-dev libqt5xmlpatterns5-dev libshiboken2-dev libspnav-dev libvtk9-dev libx11-dev libxerces-c-dev libzipios++-dev occt-draw pyside2-tools python3-dev python3-matplotlib python3-packaging python3-pivy python3-ply python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtsvg python3-pyside2.qtwidgets python3-pyside2.qtnetwork python3-pyside2.qtwebengine python3-pyside2.qtwebenginecore python3-pyside2.qtwebenginewidgets python3-pyside2.qtwebchannel python3-markdown python3-git qtbase5-dev qttools5-dev swig libyaml-cpp-dev</code>
* <code>sudo apt install cmake cmake-gui libboost-date-time-dev libboost-dev libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-serialization-dev libboost-thread-dev libcoin-dev libeigen3-dev libgts-bin libgts-dev libkdtree++-dev libmedc-dev libocct-data-exchange-dev libocct-ocaf-dev libocct-visualization-dev libopencv-dev libproj-dev libpyside2-dev libqt5opengl5-dev libqt5svg5-dev qtwebengine5-dev libqt5x11extras5-dev libqt5xmlpatterns5-dev libshiboken2-dev libspnav-dev libvtk9-dev libx11-dev libxerces-c-dev libzipios++-dev occt-draw pyside2-tools python3-dev python3-matplotlib python3-packaging python3-pivy python3-ply python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtsvg python3-pyside2.qtwidgets python3-pyside2.qtnetwork python3-pyside2.qtwebengine python3-pyside2.qtwebenginecore python3-pyside2.qtwebenginewidgets python3-pyside2.qtwebchannel python3-markdown python3-git qtbase5-dev qttools5-dev swig libyaml-cpp-dev python3-pybind11</code>
* <code>sudo apt install python3-pybind11</code>


===Notes:===
===Notes:===

Latest revision as of 23:25, 7 August 2025

Proven on:
Logo LMDE.png
6 (Faye)


Logo Debian.png
12 (bookworm)


Installing FreeCAD from the repositories gives you a couple silly options. Directly installing gets you a seriously outdated version and installing a FLATPAK which seems to be rather broken.

So, let's try building it from source.

(Based on: FreeCAD Documentation / Compile on Linux)

The required tools:

  • sudo apt install git cmake

Get the source:

Note: This builds a non-stable version. (Whatever state the code is currently in...)

  • git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git freecad-source

or maybe:

Note: This should build a stable version. (You can change branch to match current stable version...)

  • git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git --branch releases/FreeCAD-1-0 freecad-source

The prerequisites:

  • sudo apt install cmake cmake-gui libboost-date-time-dev libboost-dev libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-serialization-dev libboost-thread-dev libcoin-dev libeigen3-dev libgts-bin libgts-dev libkdtree++-dev libmedc-dev libocct-data-exchange-dev libocct-ocaf-dev libocct-visualization-dev libopencv-dev libproj-dev libpyside2-dev libqt5opengl5-dev libqt5svg5-dev qtwebengine5-dev libqt5x11extras5-dev libqt5xmlpatterns5-dev libshiboken2-dev libspnav-dev libvtk9-dev libx11-dev libxerces-c-dev libzipios++-dev occt-draw pyside2-tools python3-dev python3-matplotlib python3-packaging python3-pivy python3-ply python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtsvg python3-pyside2.qtwidgets python3-pyside2.qtnetwork python3-pyside2.qtwebengine python3-pyside2.qtwebenginecore python3-pyside2.qtwebenginewidgets python3-pyside2.qtwebchannel python3-markdown python3-git qtbase5-dev qttools5-dev swig libyaml-cpp-dev python3-pybind11

Notes:

  • libvtk9-dev is a moving target. (The official instructions listed libvtk7-dev which doesn't exist in Debian 12...)
  • python3-pybind11 wasn't even listed in the official instructions.
  • python3-pyside2uic WAS listed, but doesn't exist & isn't required.

Set it up:

  • cd freecad-source/
  • mkdir build
  • cd build
  • cmake ../

Build it:

  • make -j$(nproc --ignore=2)

Install it:

  • sudo make install