Compilation sous Unix

From FreeCAD Documentation
Jump to: navigation, search
This page is a translated version of the page CompileOnUnix and the translation is 100% complete.

Other languages:
български • ‎čeština • ‎Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎русский • ‎svenska • ‎Türkçe • ‎中文(中国大陆)‎
Arrow-left.svg Page précédente: Compiler sur Windows
Page suivante: Compiler sur Mac Arrow-right.svg

Sous les distributions GNU/Linux récentes, FreeCAD est généralement facile à compiler, puisque toutes les dépendances sont fournies par le gestionnaire de paquets. Cela se fait en 3 étapes :

  1. Obtenir le code source de FreeCAD
  2. Obtenir les dépendances (les paquets desquels FreeCAD dépend)
  3. Configurer avec "cmake" et compiler avec "make"

Vous trouverez ci-dessous des instructions détaillées du processus complet, quelques scripts de compilation et des particularités que vous pourriez rencontrer. Si vous constatez des informations erronées ou désuètes (les distributions Linux changent régulièrement), ou si vous utilisez une distribution qui n'est pas listée, votre aide pour corriger le tout sera appréciée.

Obtenir le code source

Avant de compiler FreeCAD, vous avez besoin du code source. Vous pouvez le cloner en utilisant git ou le télécharger sous forme d'archive.

Git

La méthode la meilleure et la plus rapide d'obtenir le code est de « cloner » le dépôt Git en lecture seule (il vous faut le paquet git installé):

git clone https://github.com/FreeCAD/FreeCAD.git freecad-code

Ceci crééra une copie de la dernière version du code source de FreeCAD dans un nouveau répertoire nommé "freecad-code".

Paquets source

Sinon vous pouvez télécharger la source sous forme d'archive.

Obtenir les dépendances

Pour compiler FreeCAD sous Linux, vous devez d'abord installer toutes les bibliothèques mentionnées dans la page Bibliothèques externes. Notez que les noms et la disponibilité des bibliothèques dépendra de votre distribution. Si vous n'utilisez pas la version la plus récente de votre distribution, certains des paquets ci-dessous pourraient être absents de vos dépôts. Dans ce cas, consultez la section Anciennes distributions et distributions non-conventionnelles ci-dessous.

Passer directement à la Compilation de FreeCAD

Debian et Ubuntu

Sous les systèmes basés sur Debian (Debian, Ubuntu, LinuxMint, etc...) , il est très facile d'installer toutes les dépendances requises. La plupart des bibliothèques sont disponibles via apt-get, le gestionnaire de paquets Synaptic, ou le gestionnaire de paquets de votre choix.

Si vous avez déjà installé FreeCAD depuis les dépôts officiels, vous pouvez installer ses dépendances de compilation à l'aide de cette unique ligne de commande dans un terminal :

 sudo apt build-dep freecad
  • build-essential
  • cmake
  • python
  • python-matplotlib
  • libtool

soit :

  • libcoin80-dev (Debian jessie, stretch, Ubuntu 16.04 à 18.10)

ou :

  • libboost-dev
  • libboost-date-time-dev
  • libboost-filesystem-dev
  • libboost-graph-dev
  • libboost-iostreams-dev
  • libboost-program-options-dev
  • libboost-python-dev
  • libboost-regex-dev
  • libboost-signals-dev
  • libboost-serialization-dev
  • libboost-thread-dev
  • libeigen3-dev
  • libopencv-dev | libcv-dev
  • libgts-bin
  • libgts-dev
  • libkdtree++-dev
  • libmedc-dev
  • libproj-dev
  • libvtk6-dev | libvtk7-dev
  • libx11-dev
  • libxerces-c-dev
  • libzipios++-dev
  • lsb-release
  • swig

avec Qt4 et Python 2 (pour Debian jessie, stretch, Ubuntu 16.04):

  • libqt4-dev
  • libqt4-opengl-dev
  • libqtwebkit-dev
  • libshiboken-dev
  • libpyside-dev
  • python-dev
  • python-pivy
  • python-ply
  • python-pyside
  • pyside-tools
  • qt4-dev-tools

ou avec Qt5 et Python 3 (Debian buster, Ubuntu 19.04 et ultérieures, ainsi que Ubuntu 18.04/18.10 avec l'un ou l'autre des dépôts PPA freecad-stable/freecad-daily ajouté à vos sources de logiciels) :

  • libqt5opengl5-dev
  • libqt5svg5-dev
  • libqt5webkit5-dev or qtwebengine5-dev
  • libqt5x11extras5-dev
  • libpyside2-dev
  • libshiboken2-dev
  • pyside2-tools
  • python3-dev
  • python3-pivy
  • python3-ply
  • python3-pyside2.qtcore
  • python3-pyside2.qtgui
  • python3-pyside2.qtsvg
  • python3-pyside2.qtwidgets
  • python3-pyside2uic
  • qtbase5-dev
  • qttools5-dev

soit :

  • libocct*-dev (version officielle opencascade à jour, disponible sous Debian buster et Ubuntu 18.10 et ultérieures, ainsi que Ubuntu 18.04 avec l'un ou l'autre des dépôts PPA freecad-stable/freecad-daily ajouté à vos sources de logiciels)
  • occt-draw

ou :

  • liboce*-dev (opencascade community edition, désuète, disponible sous Debian jessie, stretch, Ubuntu 16.04 et ultérieures)
  • oce-draw

Notez que liboce*-dev/libocct*-dev inclusent les bibliothèques suivantes (substituez oce par occt) :

  • liboce-foundation-dev
  • liboce-modeling-dev
  • liboce-ocaf-dev
  • liboce-visualization-dev
  • liboce-ocaf-lite-dev

Vous pourriez devoir installer ces paquets par leur nom individuel :

Vous pouvez optionnellement installer ces paquets supplémentaires :

  • libsimage-dev (pour permettre à Coin d'offrir davantage de formats d'images)
  • checkinstall (pour enregistrer vous fichiers installés dans votre gestionnaire de paquets, afin de pouvoir les désinstaller facilement plus tard)
  • python-matplotlib
  • doxygen and libcoin80-doc (si vous avez l'intention de générer la documentation du code source)
  • libspnav-dev (pour le support des périphériques 3Dconnexion comme la Space Navigator ou la Space Pilot)


Commande unique pour Qt5 et Python 3 (requiert Pyside2, disponible sous Debian buster et les dépôts PPA freecad-stable/freecad-daily)

sudo apt install cmake debhelper dh-exec dh-python 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-signals-dev libboost-thread-dev libcoin-dev libcv-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 libqt5x11extras5-dev libshiboken2-dev libspnav-dev libvtk7-dev libx11-dev libxerces-c-dev libzipios++-dev lsb-release occt-draw pyside2-tools python-matplotlib python3-dev python3-pivy python3-ply python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtsvg python3-pyside2.qtwidgets python3-pyside2uic qtbase5-dev qttools5-dev libqt5webkit5-dev swig

Commande unique pour Qt4 et Python 2

sudo apt install cmake debhelper dh-exec dh-python 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-signals-dev libboost-thread-dev libcoin80-dev libopencv-dev libeigen3-dev libgts-bin libgts-dev libkdtree++-dev libmedc-dev libocct-data-exchange-dev libocct-ocaf-dev libocct-visualization-dev libproj-dev libpyside-dev libqt4-dev libqt4-opengl-dev libqtwebkit-dev libshiboken-dev libspnav-dev libvtk6-dev libx11-dev libxerces-c-dev libzipios++-dev lsb-release occt-draw pyside-tools python-dev python-matplotlib python-pivy python-ply swig

Utilisateurs de Ubuntu 16.04, veuillez aussi consulter ces instructions complémentaires (EN).

Fedora

Vous avez besoin des paquets suivants :

  • gcc-c++ (or possibly another C++ compiler?)
  • cmake
  • doxygen
  • swig
  • gettext
  • dos2unix
  • desktop-file-utils
  • libXmu-devel
  • freeimage-devel
  • mesa-libGLU-devel
  • OCE-devel
  • python
  • python-devel
  • python-pyside-devel
  • pyside-tools
  • boost-devel
  • tbb-devel
  • eigen3-devel
  • qt-devel
  • qt-webkit-devel
  • ode-devel
  • xerces-c
  • xerces-c-devel
  • opencv-devel
  • smesh-devel
  • coin3-devel

(si coin2 est la dernière disponible pour votre version de Fedora, utilisez les paquets à partir de http://www.zultron.com/rpm-repo/)

  • soqt-devel
  • freetype
  • freetype-devel

Et optionnellement :

Gentoo

Le moyen le plus facile de vérifier quels paquets sont nécessaires pour compiler FreeCAD et de vérifier via portage :

emerge -pv freecad

Ceci devrait vous donner une superbe liste de paquets supplémentaires que devez avoir installés sur votre système.

Si FreeCAD n'est pas disponible sur portage, il est disponible sur la waebbl overlay. Le suivi des problèmes sur le recouvrement waebbl Github peut vous aider à résoudre certains problèmes que vous pourriez rencontrer. La superposition fournit freecad-9999 , que vous pouvez choisir de compiler ou simplement utiliser pour obtenir les dépendances.

layman -a waebbl

openSUSE

Tumbleweed

Les commandes suivantes installeront les packages nécessaires à la construction de FreeCAD avec Qt5 et Python 3.

zypper in --no-recommends -t pattern devel_C_C++ devel_qt5

zypper in libqt5-qtbase-devel libqt5-qtsvg-devel libqt5-qttools-devel boost-devel swig libboost_program_options-devel libboost_mpi_python3-devel libboost_system-devel libboost_program_options-devel libboost_regex-devel libboost_python3-devel libboost_thread-devel libboost_system-devel libboost_headers-devel libboost_graph-devel python3 python3-devel python3-matplotlib python3-matplotlib-qt5 python3-pyside2 python3-pyside2-devel python3-pivy gcc gcc-fortran cmake occt-devel libXi-devel opencv-devel libxerces-c-devel Coin-devel SoQt-devel freetype2-devel eigen3-devel libode6 vtk-devel libmed-devel hdf5-openmpi-devel openmpi2-devel netgen-devel freeglut-devel libspnav-devel f2c doxygen dos2unix glew-devel

La commande suivante installera Qt Creator et le débogueur de projet GNU.

zypper in libqt5-creator gdb

S'il manque des packages, vous pouvez vérifier le fichier Tumbleweed "FreeCAD.spec" sur Open Build Service.

Vérifiez également s’il existe des correctifs à appliquer (tels que 0001-find-openmpi2-include-files.patch).

Leap

S'il existe une différence entre les packages disponibles sur Tumbleweed et Leap, alors vous pouvez lire le lien "FreeCAD.spec" file on the Open Build Service pour déterminer les paquets requis.

Arch Linux

Vous aurez besoin des bibliothèques suivantes des référentiels officiels:

  • boost-libs
  • curl
  • hicolor-icon-theme
  • libspnav
  • opencascade
  • python2-matplotlib
  • shared-mime-info
  • xerces-c
  • boost
  • cmake
  • desktop-file-utils
  • eigen
  • gcc-fortran
  • swig

Aussi, assurez vous de vérifier le AUR pour tout paquet manquant qui ne sont pas dans les dépôts, actuellement :

  • coin
  • python2-pivy
  • python2-pyside
  • python2-pyside-tools
  • python2-shiboken
  • qtwebkit
  • med (Modelisation et Echanges de Donnees)
sudo pacman -S boost-libs curl hicolor-icon-theme libspnav opencascade python2-pivy python2-matplotlib python2-pyside python2-shiboken qtwebkit shared-mime-info xerces-c boost cmake coin desktop-file-utils eigen gcc-fortran med python2-pyside-tools

Distributions anciennes et non-conventionnelles

Sous d'autres distributions, nous n'avons que très peu de retours des utilisateurs, il pourrait être plus difficile de trouver les paquets requis. Repérez d'abord les bibliothèques requises mentionnées à la page Bibliothèques externes. Prenez note que certaines de ces bibliothèques pourraient se trouver dans votre distribution sous un nom différent (tel que nom, libnom, nom-dev, nom-devel, etc...).

Vous aurez aussi besoin du GNU gcc compiler en version égale ou supérieur à 3.0.0. g++ est également nécessaire puisque FreeCAD est complètement écrit en C++. Pendant la compilation, quelques script Python sont exécutés. L'interpréteur Python doit donc fonctionner correctement. Pour éviter tout problème avec l'éditeur de liens pendant la compilation, c'est aussi une bonne idée de régler les liens de bibliothèques dans votre variable LD_LIBRARY_PATH ou dans votre fichier ld.so.conf. C'est généralement déjà le cas dans les distributions récentes.

Pour plus de détails, consultez le fichier README.Linux dans vos sources.

Pivy

Pivy n'est pas nécessaire pour compiler FreeCAD ou l'exécuter, mais il est requis par le module Draft qui ne fonctionnera pas autrement. Si vous ne comptez pas utiliser ce module, vous n'avez pas besoin de pivy. En date de novembre 2015, la version obsolète de Pivy incluse dans le code source de FreeCAD ne compile plus sur de nombreux systèmes, en raison de son âge. Si vous ne trouvez pas Pivy dans les dépôts de paquets de votre distribution ou ailleurs, vous pouvez compiler pivy vous-même :

instructions de compilation Pivy

Compiler FreeCAD

FreeCAD utilise CMake comme système de construction principal. CMake est un système de compilation disponible sur tous les principaux systèmes d'exploitation. Compiler avec CMake est généralement très simple et se fait en deux étapes.

  1. CMake vérifie que tous les programmes et toutes les bibliothèques nécessaires sont présents sur votre système et configure le système de construction pour la deuxième étape. FreeCAD a le choix entre plusieurs options de configurations. Certaines alternatives sont détaillées ci-dessous.
  2. La compilation elle-même qui produit l'exécutable FreeCAD.

FreeCAD est une application volumineuse. La compilation peut durer entre 10 et 30 minutes en fonction de la puissance du matériel effectuant la compilation.

Compilation out-of-source

Si vous avez l’intention de suivre l’évolution rapide de FreeCAD, il est pratique de créer un dossier séparé que de le construire dans la source. Chaque fois que vous mettez à jour le code source, CMake peut déterminer de manière intelligente quels fichiers ont été modifiés et ne recompiler que ce qui est nécessaire. Les compilations hors source sont particulièrement pratiques lorsque vous utilisez le système Git car vous pouvez facilement essayer d’autres branches sans "dérouter" le système de compilation. Pour construire out-of-source, créez simplement un répertoire de construction distinct de votre dossier source FreeCAD et dans le dossier de compilation pointez CMake (ou si vous utilisez cmake-gui, remplacez "cmake" dans le code ci-dessous par "cmake-gui ") dans le dossier source:

$ mkdir freecad-build
$ cd freecad-build
$ cmake ../freecad-code (or whatever the path is to your FreeCAD source folder)
$ make -j$(nproc --ignore=2)

L’exécutable FreeCAD se trouvera alors dans le répertoire freecad-build/bin.

Compilation in-source

Les compilations in-source conviennent si vous regardez uniquement FreeCAD et souhaitez pouvoir le supprimer facilement en supprimant simplement ce dossier. Cependant, si vous n'êtes pas sûr où le compiler, ne faites pas une compilation in-source. Faites une compilation out-of-source comme expliqué précédemment. Cependant FreeCAD peut être compilé en mode in-source ce qui signifie que tous les fichiers résultant de la compilation restent dans le même dossier que le code source.

Les commandes suivantes vont compiler FreeCAD:

$ cd freecad-source
$ cmake .
$ make -j$(nproc --ignore=2)

L’exécutable FreeCAD se trouvera alors dans le répertoire freecad-source/bin .

Comment réparer votre répertoire du code source après avoir accidentellement effectué une compilation dans le dossier source

Ceci est une méthode utilisant Git pour réparer votre répertoire du code source après avoir accidentellement effectué une compilation dans le dossier source. Si vous ne l'effacez pas, les exécutions ultérieures de cmake risquent de ne pas capturer toutes vos nouvelles options.

$ > .gitignore
$ git clean -df
$ git reset --hard HEAD

La première ligne efface le fichier .gitignore . Cela garantit que les commandes de nettoyage et de réinitialisation suivantes affecteront tout le contenu du répertoire et n'ignoreront pas les éléments correspondant aux expressions contenues dans .gitignore. La deuxième ligne supprime tous les fichiers et répertoires qui ne sont pas suivis par le référentiel git, puis la réinitialisation réinitialisera toutes les modifications apportées aux fichiers suivis (y compris la première commande effaçant le fichier .gitignore.

Configuration

En appliquant différentes options à CMake, vous pouvez modifier la manière dont FreeCAD est compilé. Cela peut être utile à plusieurs fins. Par exemple, en appelant CMake comme ceci, vous pouvez lui demander de ne pas construire le module FEM:

cmake -D BUILD_FEM:BOOL=OFF ''path-to-freecad-root''

Toutes les options possibles sont listées dans le fichier racine CMakeLists.txt de FreeCAD. Essayez de rechercher la chaîne OPTION. Vous pouvez également utiliser la commande cmake-LH. Ci-dessous, nous avons répertorié certaines des options les plus pertinentes que vous pourriez vouloir configurer.

Pour indiquer une valeur pour une option trouvée dans le fichier CMakeLists.txt, utilisez l'indicateur suivant: -D <var>:<type>=<value>

Pour une compilation "Debug"

$ cmake -DCMAKE_BUILD_TYPE=Debug .

Ou pour une compilation "Release"

Une version Release sera beaucoup plus rapide qu'une version Debug. Sketcher devient très lent avec les croquis complexes si votre FreeCAD est une version Debug.

$ cmake -DCMAKE_BUILD_TYPE=Release .

Pivy interne ou externe

Si vous souhaitez utiliser votre copie de Pivy de votre système, ce que vous ferez le plus souvent, définissez le drapeau du compilateur sur le bon Pivy avec -DFREECAD_USE_EXTERNAL_PIVY=1. L'utilisation d'un Pivy externe est devenu la manière par défaut pour Linux lors du développement de FreeCAD 0.16. Il n'est pas besoin de définir manuellement lors de la compilation à partir de cette version sous Linux.

Compiler pour Qt5

Par défaut FreeCAD est compilé pour Qt4. Il est possible de compiler pour Qt5 en activant l'option -DBUILD-QT5.

cmake -DBUILD_QT5=ON .

Compiler pour une version spécifique de Python

Par défaut, FreeCAD ne peut détecter que Python 2. Il est possible de choisir comment compiler une version spécifique de Python (par exemple Python 2 ou Python 3) en définissant certaines options cmake. Un exemple pour Python 3 est présenté ci-dessous:

cmake -DPYTHON_LIBRARY=/usr/lib64/libpython3.6m.so \
    -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m \
    -DPYTHON_PACKAGES_PATH=/usr/lib64/python3.6/site-packages \
    -DPYTHON_EXECUTABLE=/usr/bin/python3.6 \
    .

Les emplacements et les numéros de version de vos fichiers et répertoires Python seront différents selon la distribution que vous utilisez. Vous pouvez les trouver en utilisant le locate or which d'Unix.

Compiler avec Qt Creator

Pour utiliser Qt5 et Python 3, ajoutez ce qui suit au bas de : Projects → Manage Kits → Kits → Default (or your kit) → CMake Configuration:

PYTHON_EXECUTABLE=/usr/bin/python3.7
PYTHON_INCLUDE_DIR=/usr/include/python3.7m
PYTHON_LIBRARY=/usr/lib64/libpython3.7m.so
PYTHON_PACKAGES_PATH=/usr/lib64/python3.7/site-packages
BUILD_QT5=ON

Les chemins utilisés pour python dépendent de votre système et doivent éventuellement être modifiés. "Python3 -m site" dans un terminal aidera au moins à déterminer le répertoire site-package.

Si vous n'utilisez pas Python 3.7.x, vous devrez remplacer le "3.7". Depuis un terminal, vous pouvez vérifier avec "Python3 -V" et ignorer le numéro le plus à droite.

Switch Projects → Run → Run Configuration de FreeCADMainCMD à FreeCADMain (à moins que vous ne vouliez utiliser que la version en ligne de commande).

Le plugin de développement de Qt

Si vous souhaitez développer des éléments Qt pour FreeCAD, vous aurez besoin du plugin Qt Designer qui fournit tous les widgets personnalisés de FreeCAD. Aller à:

freecad/src/Tools/plugins/widget

Jusqu’à présent, nous ne fournissons pas de fichier Make, mais appelons

qmake plugin.pro

le crée. Une fois que c'est fait, appeler

make

créera la bibliothèque libFreeCAD_widgets.so. Pour faire connaître cette bibliothèque à Qt Designer, vous devez copier le fichier dans $QTDIR/plugin/designer

Doxygen

Si vous vous sentez assez audacieux pour plonger dans le code, vous pouvez en profiter pour construire et consulter le Documentation source de FreeCAD généré par Doxygen

Construire un paquet Debian

Si vous envisagez de construire un paquet Debian voici les sources que vous devez installer en premier :

dh-make
devscripts

#optional, used for checking if packages are standard-compliant
lintian

Pour construire un paquet ouvrez une console, puis il suffit d'aller dans le répertoire FreeCAD et l’appeler

debuild

Une fois que le paquet est construit, vous pouvez utiliser lintian pour vérifier si le paquet contient des erreurs

#replace by the name of the package you just created
lintian your-fresh-new-freecad-package.deb

Dépannage

Note sur les systèmes 64 bits

Pour la compilation de FreeCAD pour 64 bits, il y a un problème connu avec le paquet OpenCASCADE 64 bits. Afin que FreeCAD s'exécute correctement, vous pourriez devoir exécuter le script ./configure avec le réglage additionnel define _OCC64 :

./configure CXXFLAGS="-D_OCC64"

Sous les systèmes basés sur Debian, cette solution n'est pas requise avec l'utilisation du paquet précompilé OpenCASCADE, puisque celui-ci est déja compilé avec ce réglage. Maintenant il ne reste plus qu'à compiler FreeCAD tel que décrit ci-dessus.

Scripts de compilation automatiques

Voici tout ce dont vous avez besoin pour une compilation complète de FreeCAD. Il s'agit d'une approche en un unique script qui fonctionne sous une distribution fraîchement installée. Les commandes demanderont un mot de passe (pour l'installation des paquets) et parfois reconnaître une empreinte pour un serveur externe ou le dépôt https-subversion. Ces scripts devraient fonctionner autant sous des systèmes 32 bits que 64 bits. Ils sont rédigés pour des versions spécifiques, mais devraient aussi fonctionner sous des versions ultérieures sans changements ou avec changements mineurs.

Si vous avez un tel script pour votre distribution favorite, svp envoyez-le nous ! Nous l'intégrerons dans cet article.

Ubuntu

Ces scripts fournissent un moyen fiable d'installer le bon ensemble de dépendances pour compiler et exécuter FreeCAD sur Ubuntu. Ils utilisent les dépôts PPA d'Ubuntu et devraient fonctionner sur n'importe quelle version d'Ubuntu ciblée par le PPA. Le 'daily' PPA cible les versions récentes d'Ubuntu et le 'stable' PPA cible toutes les versions officiellement supportées d'Ubuntu.

Ce script installe les dépendances pour l’instantané de développement quotidien de FreeCAD

#!/bin/sh
sudo add-apt-repository --enable-source ppa:freecad-maintainers/freecad-daily && sudo apt-get update
# Install the dependencies needed to build FreeCAD
sudo apt-get build-dep freecad-daily
# Install the dependencies needed to run FreeCAD (and a build of FreeCAD itself)
sudo apt-get install freecad-daily

Ce script installe les dépendances pour la dernière version stable de FreeCAD. (Pour Ubuntu 12.04, enlever "--enable-source" de la commande add-apt-repository)

#!/bin/sh
sudo add-apt-repository --enable-source ppa:freecad-maintainers/freecad-stable && sudo apt-get update
# Install the dependencies needed to build FreeCAD
sudo apt-get build-dep freecad
# Install the dependencies needed to run FreeCAD (and a build of FreeCAD itself)
sudo apt-get install freecad

(Ces scripts installent également les PPA de la compilation de FreeCAD en tant qu'effet secondaire.Vous pourriez alors les désinstaller tout en gardant les dépendances. Cependant, le laisser installé permettra au gestionnaire de paquets de garder l'ensemble des dépendances à jour, ce qui est utile si vous suivez le développement pendant une longue période.)

Après avoir installé les dépendances, consultez les instructions génériques pour obtenir le code source, exécuter CMake et compiler. Le script suivant est un exemple d'un moyen de le faire.

#!/bin/sh

# checkout the latest source
git clone https://github.com/FreeCAD/FreeCAD.git freecad

# go to source dir
cd freecad

# open cmake-gui window
cmake-gui .

# build configuration
cmake .

# build FreeCAD
# Note: to speed up build use all CPU cores: make -j$(nproc)
make

OpenSUSE 12.2

Aucuns dépôts externes ne sont nécessaires pour compiler FreeCAD 0.13 avec cette version. Cependant, il existe un incompatibilité avec python3-devel qui doit être enlevé. FreeCAD peut être compilé à partir de GIT de la même manière que pour OpenSUSE 12.2

# install needed packages for development
sudo zypper install gcc cmake OpenCASCADE-devel libXerces-c-devel \
python-devel libqt4-devel python-qt4 Coin-devel SoQt-devel boost-devel \
libode-devel libQtWebKit-devel libeigen3-devel gcc-fortran git swig
 
# create new dir, and go into it
mkdir FreeCAD-Compiled 
cd FreeCAD-Compiled
 
# get the source
git clone https://github.com/FreeCAD/FreeCAD.git free-cad
 
# Now you will have subfolder in this location called free-cad. It contains the source
 
# make another dir for compilation, and go into it
mkdir FreeCAD-Build1
cd FreeCAD-Build1 
 
# build configuration 
cmake ../free-cad
 
# build FreeCAD
make
 
# test FreeCAD
cd bin
./FreeCAD -t 0

Since you are using git, next time you wish to compile you do not have to clone everything, just pull from git and compile once more

# go into free-cad dir created earlier
cd free-cad
 
# pull
git pull
 
# get back to previous dir
cd ..
 
# Now repeat last few steps from before.
 
# make another dir for compilation, and go into it
mkdir FreeCAD-Build2
cd FreeCAD-Build2
 
# build configuration 
cmake ../free-cad
 
# build FreeCAD
# Note: to speed up build use all CPU cores: make -j$(nproc)
make
 
# test FreeCAD
cd bin
./FreeCAD -t 0

Debian Squeeze

# get the needed tools and libs
sudo apt-get install build-essential python libcoin60-dev libsoqt4-dev \
libxerces-c2-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev \
libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev \
libboost-serialization-dev libboost-signals-dev libboost-regex-dev \
libqt4-dev qt4-dev-tools python2.5-dev \
libsimage-dev libopencascade-dev \
libsoqt4-dev libode-dev subversion cmake libeigen2-dev python-pivy \
libtool autotools-dev automake gfortran
 
# checkout the latest source
git clone https://github.com/FreeCAD/FreeCAD.git freecad
 
# go to source dir
cd freecad
 
# build configuration 
cmake .
 
# build FreeCAD
# Note: to speed up build use all CPU cores: make -j$(nproc)
make
 
# test FreeCAD
cd bin
./FreeCAD -t 0

Fedora 27/28/29

Posted by user [PrzemoF] in the forum.

#!/bin/bash

ARCH=$(arch)

MAIN_DIR=FreeCAD
BUILD_DIR=build

#FEDORA_VERSION=27
#FEDORA_VERSION=28
FEDORA_VERSION=29

PACKAGES="gcc cmake gcc-c++ boost-devel zlib-devel swig eigen3 qt-devel \
shiboken shiboken-devel pyside-tools python-pyside python-pyside-devel xerces-c \
xerces-c-devel OCE-devel smesh graphviz python-pivy python-matplotlib tbb-devel \
 freeimage-devel Coin3 Coin3-devel med-devel vtk-devel"

FEDORA_29_PACKAGES="boost-python2 boost-python3 boost-python2-devel boost-python3-devel"

if [ "$FEDORA_VERSION" = "29" ]; then
    PACKAGES="$PACKAGES $FEDORA_29_PACKAGES"
fi

echo "Installing packages required to build FreeCAD"
sudo dnf -y install $PACKAGES
cd ~
mkdir $MAIN_DIR || { echo "~/$MAIN_DIR already exist. Quitting.."; exit; }
cd $MAIN_DIR
git clone https://github.com/FreeCAD/FreeCAD.git
mkdir $BUILD_DIR || { echo "~/$BUILD_DIR already exist. Quitting.."; exit; }
cd $BUILD_DIR
cmake ../FreeCAD 
make -j$(nproc)

Mettre à jour le code source

Le développement de FreeCAD est très rapide, presque chaque jour il y a des correctifs ou de nouvelles fonctionnalités. Le système cMake vous permet de mettre à jour le code source de façon intelligente, et ne recompile que ce qui a changé, ce qui accélère les compilations subséquentes. La mise à jour du code source avec git ou sous-version est très facile :

#Replace with the location where you cloned the source code the first time
cd freecad-code
#If you are using git
git pull

Déplacez vous dans le répertoire de compilation approprié et exécutez cmake encore une fois (puisque cmake met à jour les données du numéro de version pour le menu Aide, ...A propos de FreeCAD), cependant, vous n'avez pas besoin d'ajouter le chemin au code source après "cmake", juste un espace et un point :

#Replace with the location of the build directory
cd ../freecad-build
cmake .
# to use all cpu cores change to: make -j$(nproc)
make

Liens

Consultez également Compilation - Accélérer Comment accélérer la compilation.

Arrow-left.svg Page précédente: CompileOnWindows
Page suivante: CompileOnMac Arrow-right.svg