CompileOnUnix/fr

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. Il y a trois moyens de l'obtenir :

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é):

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

Github
Le dépôt officiel de FreeCAD est sur Github : github.com/FreeCAD/FreeCAD

Paquet source
Vous pouvez également télécharger un paquet source, mais il pourrait être désuet, il vaut donc toujours mieux obtenir les dernières sources par git ou github.


 * Paquets source FreeCAD officiels (indépendants des distributions): FreeCAD-0.17_pre.zip.

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 Distributions anciennes et non-conventionnelles ci-dessous.

Passer directement à Compiler 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.

either:
 * build-essential
 * cmake
 * python
 * python-matplotlib
 * libtool
 * libcoin60-dev (Debian Wheezy, Wheezy-backports, Ubuntu 13.04 and before)

or:
 * libcoin80-dev (Debian unstable(Jesse), testing, Ubuntu 13.10 and forward)

either:
 * libsoqt4-dev
 * libxerces-c-dev
 * libboost-dev
 * libboost-filesystem-dev
 * libboost-regex-dev
 * libboost-program-options-dev
 * libboost-signals-dev
 * libboost-thread-dev
 * libboost-python-dev
 * libqt4-dev
 * libqt4-opengl-dev
 * qt4-dev-tools
 * python-dev
 * python-pyside
 * pyside-tools
 * libopencascade-dev (official opencascade version)

or:
 * liboce*-dev (opencascade community edition)
 * oce-draw


 * libeigen3-dev
 * libqtwebkit-dev
 * libshiboken-dev
 * libpyside-dev
 * libode-dev
 * swig
 * libzipios++-dev
 * libfreetype6
 * libfreetype6-dev

Instructions additionnelles (EN) pour libcoin80-dev Debian wheezy-backports, unstable, testing, Ubuntu 13.10 et plus

Notez que liboce*-dev inclut les bibliothèques suivantes : Vous pourriez devoir installer ces paquets par leur nom individuel :
 * liboce-foundation-dev
 * liboce-modeling-dev
 * liboce-ocaf-dev
 * liboce-visualization-dev
 * liboce-ocaf-lite-dev

Vous pouvez optionnellement installer ces paquets supplémentaires :
 * libsimage-dev (to make Coin to support additional image file formats)
 * checkinstall (to register your installed files into your system's package manager, so yo can easily uninstall later)
 * python-pivy (needed for the 2D Drafting module)
 * python-qt4 (needed for the 2D Drafting module)
 * doxygen and libcoin60-doc (if you intend to generate source code documentation)
 * libspnav-dev (for 3Dconnexion devices support like the Space Navigator or Space Pilot)

Ubuntu 16.04 no need liboce-foundation8 liboce-ocaf-lite8 liboce-ocaf8 liboce-modeling8 liboce-visualization8 you can use

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

Fedora
You need the following packages:


 * 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 (if coin2 is the latest available for your version of Fedora, use packages from http://www.zultron.com/rpm-repo/ )
 * soqt-devel
 * freetype
 * freetype-devel

And optionally:


 * libspnav-devel (for 3Dconnexion devices support like the Space Navigator or Space Pilot)
 * pivy ( https://bugzilla.redhat.com/show_bug.cgi?id=458975 Pivy is not mandatory but needed for the Draft module )

Gentoo
Easiest way to check which packages are needed to compile FreeCAD is to check via portage:

emerge -pv freecad

This should give a nice list of extra packages that you need installed on your system.

OpenSUSE
You need the following packages: For FreeCAD 0.14 stable and 0.15 unstable, if Eigen3 and swig libraries are not found in standard repos, you can get them with a one-click install here: Also, note that the Eigen3 Library from Factory Education was causing problems sometimes, so use the one from the KDE 4.8 Extra repo
 * gcc
 * cmake
 * OpenCASCADE-devel
 * libXerces-c-devel
 * python-devel
 * libqt4-devel
 * libshiboken-devel
 * python-pyside-devel
 * python-pyside-tools
 * Coin-devel
 * SoQt-devel
 * boost-devel
 * libode-devel
 * libQtWebKit-devel
 * libeigen3-devel
 * gcc-fortran
 * freetype2
 * freetype2-devel
 * Eigen3
 * swig
 * Eigen3
 * swig

Starting with 0.17pre Opensuse 13.2 is too old to build due to too old boost.

Arch Linux
You will need the following libraries from the official repositories:


 * 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
 * swig

Also, make sure to check the AUR for any missing packages that are not on the repositories, currently:
 * python2-pyside-tools
 * med (Modelisation et Echanges de Donnees)

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 2D Drafting 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

Utiliser cMake
cMake est un nouveau système de compilation dont l'avantage est d'être commun à plusieurs systèmes d'exploitation (Linux, Windows, MacOSX, etc). FreeCAD utilise désormais cMake comme système de compilation principal. La compilation avec cMake est généralement très simple et se déroule en deux étapes. À la première étape, cMake vérifie que tous les programmes et bibliothèques nécessaires sont présents sur votre système, et configure tout ce qui est nécessaire pour la compilation subséquente. Quelques alternatives vous sont détaillées ci-dessous, mais FreeCAD est livré avec des options par défaut sensées. La seconde étape est la compilation proprement dite, qui produit l'exécutable FreeCAD. La modification des options de cmake par rapport à leurs valeurs par défaut est beaucoup plus facile avec cmake-gui ou d'autres applications graphiques cmake qu'avec cmake en ligne de commande, car les applications graphiques vous fourniront un retour interactif.

Puisque FreeCAD est une application lourde, la compilation peut prendre un certain temps (environ 10 minutes sur un PC rapide, 30 minutes (ou plus) sur un PC lent).

Compilation dans le dossier source
Si vous n'en êtes pas sûr, en raison de ses limitations, ne compilez pas dans le dossier source, crééz plutôt une compilation hors-source tel qu'expliqué dans la section suivante. Toutefois, FreeCAD peut être compilé dans le dossier source, ce qui veut dire que les fichiers résultant de la compilation partageront le même dossier que le code source. C'est acceptable si vous ne faites que tester FreeCAD, et que vous voulez le supprimer facilement en effaçant simplement ce dossier. Mais au cas où vous comptez compiler FreeCAD régulièrement, nous vous conseillons de faire une compilation hors-source, qui offre plusieurs avantages. les commandes suivantes compileront FreeCAD :

Si vous voulez utiliser la version de Pivy de votre système, ce que vous ferez le plus souvent, et si vous n'êtes pas sur Linux, définissez l'indicateur du compilateur pour utiliser la version correcte de Pivy (via FREECAD_USE_EXTERNAL_PIVY = 1). L'utilisation d'une version externe de Pivy externe se fait désormais par défaut sous Linux, depuis le développement de FreeCAD 0.16; il n'est donc pas nécessaire de définir manuellement cet indicateur sous Linux. En outre, définissez le type de "build" sur "Debug" si vous souhaitez une version de débogage, ou "Release" si ce n'est pas le cas. Une compilation "Release" s'exécutera beaucoup plus rapidement qu'une version "Debug". Le Sketcher devient très lent avec des esquisses complexes si votre FreeCAD est une version Debug. (NOTE: l'espace et "." Après les drapeaux cmake sont CRITIQUES!):

Ou pour une compilation "Release"
L'exécutable de FreeCAD résidera dans le dossier "bin", et vous pouvez le lancer par :

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.

Compilation hors-source
Si vous comptez suivre l'évolution rapide de FreeCAD, il est beaucoup plus pratique de le compiler dans un dossier séparé de la source. Chaque fois que vous mettez à jour le code source, cMake distinguera intelligemment quels fichiers ont changé, et ne compilera que ce qui est requis. Les compilation hors-source sont particulièrement pratiques avec le système Git, puisque vous pouvez facilement essayer d'autres branches sans embrouiller le système de compilation. Pour compiler hors-source, créez un dossier de compilation distinct du dossier source freecad, et depuis le dossier de compilation, pointez cMake vers le dossier source (ou si vous utilisez cmake-gui, remplacez "cmake" dans le code ci-dessous par "cmake-gui"):

Votre exécutable résidera dans le dossier "bin" (sous le dossier freecad-build).

Options de configuration
Il existe un certain nombre de modules expérimentaux ou inachevés que vous pourriez vouloir compiler afin de travailler sur ceux-ci. Pour ce faire, vous devez régler les options appropriées lors de l'étape de configuration. Faites-le soit en ligne de commande, en passant les options -D : = à cMake ou en utilisant une des interfaces graphiques disponibles pour cMake (par ex. pour Debian, les paquets cmake-qt-gui ou cmake-curses-gui). La modification des options de cmake par rapport à leurs valeurs par défaut est beaucoup plus facile avec cmake-gui ou d'autres applications graphiques qu'avec cmake en ligne de commande, car elles vous donneront un retour interactif.

À titre d'exemple, pour configurer en ligne de commande la compilation du module Assembly, cochez la case dans une application graphique cmake (par ex. cmake-gui) ou dans un terminal, saisissez :

Les options possibles sont listées dans le fichier CmakeLists.txt situé à la racine du dossier source FreeCAD.

Greffon Qt designer
Si vous voulez faire du développement Qt pour FreeCAD, vous aurez besoin du greffon Qt designer qui fournit tous les widgets personnalisés de FreeCAD. Allez dans

Pour l'instant nous ne fournissons pas de makefile -- mais appeler

le génère. Une fois que c'est fait,

créera la bibliothèque libFreeCAD_widgets.so. Pour faire en sorte que cette bibliothèque soit reconnue par Qt Designer, vous devez copier le fichier vers $QTDIR/plugin/designer

Doxygen
Si vous vous sentez assez audacieux pour vous plonger dans le code, vous pourriez tirer avantage à construire et consulter la documentation source de FreeCAD générée par Doxygen.

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

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

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

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 :

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
These scripts provide a reliable way to install the correct set of dependencies required to build and run FreeCAD on Ubuntu. They make use of the FreeCAD Ubuntu PPA repositories, and should work on any version of Ubuntu targeted by the PPA. The 'daily' PPA targets recent versions of Ubuntu, and the 'stable' PPA targets all officially supported versions of Ubuntu.

This script installs dependencies for the daily development snapshot of FreeCAD.

This script installs dependencies for the latest stable release of FreeCAD. (For Ubuntu 12.04, omit "--enable-source" from the add-apt-repository command.)

(These scripts also install the PPA build of FreeCAD itself, as a side effect. You could then uninstall that while leaving the dependencies in place. However, leaving it installed will enable the package manager to keep the set of dependencies up to date, which is useful if you are following the development for a long time.)

After installing the dependencies, please see the generic instructions for getting the source code, running CMake, and compiling. The following script is an example of one way to do this.

OpenSUSE 12.2
No external Repositories are needed to compile FreeCAD 0.13 with this release. However, there is an imcompatability with python3-devel which needs to be removed. FreeCAD can be compiled from GIT similar to in OpenSUSE 12.2

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

Fedora 22/23/24
Posted by user [PrzemoF] in the forum.

{ echo "~/$MAIN_DIR already exist. Quitting.."; exit; }

cd $MAIN_DIR

git clone https://github.com/FreeCAD/FreeCAD.git

mkdir $BUILD_DIR

Updating the source code
FreeCAD development happens fast, everyday or so there are bug fixes or new features. The cmake systems allows you to intelligently update the source code, and only recompile what has changed, making subsequent compilations very fast. Updating the source code with git or subversion is very easy:

Move into the appropriate build directory and run cmake again (as cmake updates the version number data for the Help menu, ...about FreeCAD), however you do not need to add the path to source code after "cmake", just a space and a dot:

Links
See also Compiling - Speeding up How to speed up compilation