Difference between revisions of "FreeCAD from Source"

From Da Nerd Mage Wiki
Jump to navigation Jump to search
Tag: Reverted
 
(11 intermediate revisions by the same user not shown)
Line 5: Line 5:
{{!}} style="text-align: center; width: 40px;" {{!}} 6 (Faye)
{{!}} style="text-align: center; width: 40px;" {{!}} 6 (Faye)
{{!}}
{{!}}
 
<br>
{{!}}- <!-- Debian -->
{{!}} style="text-align: center; width: 60px;" {{!}} [[File:Logo Debian.png{{!}}60px{{!}}link=https://www.debian.org/{{!}}center{{!}}middle{{!}}frameless]]
{{!}} style="text-align: center; width: 40px;" {{!}} 12 (bookworm)
{{!}}
<br>
<br>
{{!}}}
{{!}}}


Based on: [https://wiki.freecad.org/Compile_on_Linux FreeCAD Documentation / Compile on Linux]
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: [https://wiki.freecad.org/Compile_on_Linux FreeCAD Documentation / Compile on Linux])


== '''<span style="color: rgb(132, 63, 161);">The required tools:</span>''' ==
== '''<span style="color: rgb(132, 63, 161);">The required tools:</span>''' ==
Line 24: 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> --branch releases/FreeCAD-1-0 freecad-source
</code>


* <code>git clone --recurse-submodules <nowiki>https://github.com/FreeCAD/FreeCAD.git</nowiki> --branch releases/FreeCAD-0-21 freecad-source</code>
== '''<span style="color: rgb(132, 63, 161);">The prerequisites:</span>''' ==
* <code>git clone --recurse-submodules <nowiki>https://github.com/FreeCAD/FreeCAD.git</nowiki> --branch releases/FreeCAD-0-21 freecad-source</code>
*<br>
*<div class="mw-highlight mw-highlight-lang-bash mw-content-ltr" dir="ltr"><pre>git<span class="w"> </span>clone<span class="w"> </span>--recurse-submodules<span class="w"> </span>https://github.com/FreeCAD/FreeCAD.git<span class="w"> </span>freecad-source
</pre></div>
<code></code>


== '''<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 python3-pybind11</code>


* <code>sudo apt install 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>
===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.


== '''<span style="color: rgb(132, 63, 161);">Set it up:</span>''' ==
== '''<span style="color: rgb(132, 63, 161);">Set it up:</span>''' ==

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