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  et compiler avec

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 ou le télécharger sous forme d'archive.

Git
Le meilleur moyen et le plus rapide d’obtenir le code est de cloner le dépôt git en lecture seule hébergé sur GitHub. Pour cela, vous avez besoin du programme disponible dans la plupart des distributions Linux. Il peut également être obtenu sur le site officiel.

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

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 ou 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 :

Cette commande peut installer de mauvaises librairies, veuillez donc vérifier que vous avez installé les packages suivants.

Ces packages sont essentiels à la réussite de toute compilation :
 * , installe les compilateurs C et C++ et les librairies C.
 * , un outil indispensable pour configurer la source de FreeCAD.
 * , des outils essentiels pour produire des librairies partagées.

Les scripts construits dans FreeCAD utilise le langage Python, il doit donc être installé :
 * ou
 * ou

Les librairies Coin doivent être installées :
 * pour Debian Jessie, Stretch, Ubuntu 16.04 à 18.10, ou
 * pour 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.

Les librairies Boost doivent être installées :

Quelques utilitaires doivent être installés :
 * , pour signaler le système utilisé.
 * , pour intégrer du code C++ avec Python.

Plusieurs librairies traitant des mathématiques, de la vision par ordinateur, des surfaces triangulées, des maillages, des projections cartographiques, de la visualisation 3D, de l'analyse XML, de la lecture de fichiers Zip et du système de fenêtre X11 doivent être installées :
 * or
 * or
 * or
 * or
 * or
 * or
 * or
 * or

Python 2 et Qt4
Pour compiler FreeCAD pour Debian Jessie, Stretch, Ubuntu 16.04, en utilisant Python 2 et Qt4, installez les dépendances suivantes. Ceci n’est plus recommandé car Python 2 et Qt4 sont obsolètes et disparaîtront des futures distributions Linux.

Python 3 et Qt5
Pour compiler FreeCAD avec 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, installez les dépendances suivantes.
 * or
 * or
 * or

Noyau OpenCascade
Le noyau OpenCascade est la librairie graphique principale pour créer des formes 3D. Il existe dans une version officielle OCCT et une version communautaire OCE. La version communautaire n'est plus recommandée car elle est obsolète.

Pour Debian Buster, Ubuntu 18.10 et versions ultérieures, ainsi que pour Ubuntu 18.04 avec les freecad-stable/freecad-daily PPAs ajoutés à vos sources de logiciels, installez les paquets officiels.

Pour Debian Jessie, Stretch, Ubuntu 16.04 et plus récente, installez les paquetages Edition Communautaire.

Vous pouvez installer toutes les librairies individuellement ou en utilisant l’extension astérisque :

Packages optionnels
Vous pouvez éventuellement installer ces paquets supplémentaires :
 * , pour permettre à Coin d'offrir davantage de formats d'images.
 * and, si vous avez l'intention de générer la documentation du code source.
 * , pour le support des périphériques 3Dconnexion comme la Space Navigator ou la Space Pilot.
 * , pour enregistrer vos fichiers installés dans votre gestionnaire de paquets, afin de pouvoir les désinstaller plus tard.

Commande unique pour Qt5 et Python 3
Requiert Pyside2, disponible sous Debian Buster et les freecad-stable/freecad-daily PPAs.

Commande unique pour Python 2 et Qt4
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 :


 * libspnav-devel (pour le support des périphériques 3Dconnexion comme le Space Navigator ou le Space Pilot)
 * pivy (https://bugzilla.redhat.com/show_bug.cgi?id=458975 Pivy n'est pas obligatoire mais nécessaire pour le module Draft)

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

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

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

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
 * desktop-file-utils
 * glew
 * hicolor-icon-theme
 * jsoncpp
 * libspnav
 * med
 * opencascade
 * shiboken2
 * xerces-c
 * pyside2
 * python-matplotlib
 * python-netcdf4
 * qt5-svg
 * qt5-webkit
 * qt5-webengine
 * boost
 * cmake
 * eigen
 * git
 * gcc-fortran
 * pyside2-tools
 * swig
 * qt5-tools
 * shared-mime-info

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

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, voir 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.

Vous pouvez générer le code dans ou hors du répertoire source. La construction hors source est généralement la meilleure option.

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 ; ensuite depuis le dossier de compilation pointez CMake comme dossier source. Vous pouvez également utiliser au lieu de  dans les instructions ci-dessous. Une fois que a fini de configurer l’environnement, utilisez  pour lancer la compilation proprement dite.

L'option contrôle le nombre de fichiers compilés en parallèle ; le programme  affiche le nombre de cœurs du processeur de votre système. Utiliser ce dernier programme de la manière indiquée utilisera tous les cœurs de votre système, sauf deux, pour compiler le logiciel. L'exécutable FreeCAD apparaîtra éventuellement dans le répertoire.

Compilation in-source
Les compilations in-source conviennent si vous regardez uniquement FreeCAD et souhaitez pouvoir le supprimer facilement en supprimant simplement ce dossier.

Les commandes suivantes vont compiler FreeCAD :

L’exécutable FreeCAD se trouvera alors dans le répertoire.

Comment réparer votre répertoire du code source après avoir accidentellement effectué une compilation dans le dossier source
Si vous avez accidentellement effectué une compilation dans le répertoire du code source et souhaitez restaurer le contenu uniquement du code source d'origine, vous pouvez effectuer les étapes suivantes.

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

Si vous n'effacez pas le répertoire source, les exécutions ultérieures de risquent de ne pas intégrer les nouvelles options sur le système si le code change.

Configuration
En appliquant différentes options à CMake, vous pouvez modifier la manière dont FreeCAD est compilé. La syntaxe est la suivante.

Où est le répertoire qui contient le code source. Le peut être omis dans la plupart des cas. L'espace après l'option peut également être omis.

Par exemple, pour éviter de construire le module FEM :

Toutes les variables possibles sont répertoriées dans le fichier, situé dans le dossier. Dans ce fichier, recherchez le mot pour voir toutes les variables pouvant être définies et leurs valeurs par défaut.

Vous pouvez également utiliser la commande pour répertorier la configuration actuelle, ainsi que toutes les variables pouvant être modifiées (une grande liste). Ci-dessous, nous avons répertorié certaines des options les plus pertinentes que vous pouvez utiliser.

Pour une compilation de Debogage
Créez une version pour résoudre les pannes dans FreeCAD. Attention, avec cette construction, Sketcher devient très lent avec des esquisses complexes.

Pour une compilation "Release"
Créez une version pour tester que le code qui ne plante pas. Une sera beaucoup plus rapide qu'une version.

Compiler en s'appuyant sur Qt5
Par défaut FreeCAD est compilé pour Qt4. Il est possible de compiler pour Qt5 avec les options suivantes.

Compiler en s'appuyant sur Python 3 et Qt5
Dans une distribution Linux moderne, vous devez uniquement fournir le chemin d'accès à l'interpréteur Python pour que le système de compilation soit configuré correctement.

Compiler pour une version spécifique de Python
Par défaut votre système peut utiliser Python 2, donc CMake essayera de configurer la compilation de FreeCAD avec cette version. Il est possible de choisir une version spécifique de Python en spécifiant l'exécutable Python souhaité.

Si cela ne fonctionne pas, vous devrez peut-être définir d'autres variables avec les répertoires Python requis.

Les emplacements et les numéros de version de vos fichiers et répertoires Python dépendent de votre distribution. Utilisez pour afficher la version de Python que vous utilisez actuellement. Seuls les deux premiers chiffres sont nécessaires ; Par exemple, si le résultat est, vous devez spécifier les répertoires associés à la version 3.6. Si vous ne connaissez pas les bons répertoires, essayez de les rechercher avec la commande.

Sinon utilisez dans un terminal pour déterminer les répertoires  ou.

Compiler avec Qt Creator en s'appuyant sur Python 3 and Qt5
Pour compiler dans Qt Creator, ajoutez ce qui suit au bas du menu.

Spécifiez à nouveau les chemins corrects et la version Python que vous souhaitez utiliser.

Allez à et choisissez  pour compiler la version graphique de FreeCAD ou  pour ne compiler que la version en ligne de commande.

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

Allez à

et appellez

pour créer un Makefile.

Une fois cela fait, lancez

pour créer la librairie. Pour faire connaître cette librairie à Qt Designer, vous devez copier le fichier dans.

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.

Using external Pivy became the default during development of FreeCAD 0.16, therefore this option does not need to be set manually anymore.

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 :

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

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)

(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.

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

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 27/28/29
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

Arch using AUR
Arch User Repository (AUR) is a collection user made recipes to build packages which are not officially supported by distribution maintainers / community. They are usually safe. You can see who maintain the package and for how long he did. It is recommended to check construction files. Also non open source software are available in this area even if maintained by the official owning company.

Prerequisite : git

Steps :
 * 1) Open a terminal. Optionally create a directory eg. . Optionally change directory eg..
 * 2) Clone the AUR repository :
 * 3) Enter AUR repository folder :
 * 4) Compile using Arch makepkg : . The -s or --syncdeps flag will also install required dependencies.
 * 5) Install created package : or double click on the pkgname-pkgver.pkg.tar.xz inside your file browser.

To update FreeCAD to latest build just repeat from step 3. Update AUR repo when there is some breaking change in the recipe or new features using inside the folder.

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 :

The CMake system allows you to intelligently update the source code, and only recompile what has changed, making subsequent compilations faster.

Move to the location where the FreeCAD source code was first downloaded, and pull the new code.

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 :

To use all CPU cores for compilation use

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