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

Please note that FreeCAD's source code is around 500 MB in size; it may be three times as big if you clone the Git repository with its entire modification history. Getting all dependencies may require downloading 500 MB or more of new files; when these files are unpacked they may require 1500 MB or more in space. Also beware that the compilation process may generate up to 1500 MB of additional files as the system copies and modifies the entire source code. Therefore, be sure you have enough free space in your hard drive, at least 4 GB, when attempting compilation.

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 :

Cependant, si la version de FreeCAD dans les référentiels est ancienne, les dépendances peuvent être mauvaises pour compiler une version récente de FreeCAD. Par conséquent, vérifiez 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 de FreeCAD utilisent le langage Python ; Si vous utilisez une distribution basée sur Debian, il est probablement déjà installée. Python 2 devenant obsolète en 2019, aucun nouveau développement ne devrait être fait dans cette version du langage.

Please check that you have Python 3 installed. Python 2 was obsoleted in 2019, so new development in FreeCAD is not tested with this version of the language.

Les librairies Boost doivent être installées :

Les librairies Coin doivent être installées :
 * , pour Debian Jessie, Stretch, Ubuntu 16.04 à 18.10, ou
 * , pour Debian Buster, Ubuntu 19.04 et suivants, ainsi que pour Ubuntu 18.04/18.10 avec les PPAs freecad-stable/freecad-daily ajoutés à vos sources logicielles.

Plusieurs librairies traitant des mathématiques, des surfaces triangulées, du tri, des maillages, de la vision par ordinateur, des projections cartographiques, de la visualisation 3D, du système X11 Window, de l'analyse XML et de la lecture de fichiers Zip :
 * 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
 * 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. Changez par  si vous voulez installer les librairies de la communauté.

Paquets optionnels
Vous pouvez éventuellement installer ces paquets supplémentaires :
 * , pour que Coin prenne en charge d'autres formats de fichier image.
 * et (ou  pour d'anciens systèmes), si vous avez l’intention de générer de la documentation sur le code source.
 * , pour la prise en charge des périphériques 3Dconnexion, comme Space Navigator ou Space Pilot.
 * , si vous avez l'intention d'enregistrer vos fichiers installés dans le gestionnaire de paquets de votre système, afin de pouvoir les désinstaller ultérieurement.

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.

By November 2015 the obsolete version of Pivy included with the FreeCAD source code will no longer compile on many systems. This isn't a big problem as normally you should get Pivy from your distribution's package manager; if you cannot find Pivy, you may have to compile it yourself, see Pivy compilation instructions.

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 votre CPU et du nombre de cœurs utilisés pour 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 de  contrôle le nombre de jobs (fichiers) compilés en parallèle. Le programme retourne le nombre de cœurs de processeur de votre système utilisés avec l'option, vous pouvez choisir de travailler sur autant de fichiers que vous avez de cœurs afin d'accélérer la compilation. Dans l'exemple, il sera utilisé tous les cœurs sauf deux ; Cela permettra à votre système de rester réactif pendant la compilation en arrière-plan. L'exécutable FreeCAD apparaîtra éventuellement dans le dossier.

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
Auparavant, une version de Pivy était incluse dans le code source de FreeCAD (interne). Si vous souhaitez utiliser la copie de Pivy (externe) de votre système, vous devez utiliser.

L'utilisation externe de Pivy est devenue la valeur par défaut à partir du développement de FreeCAD 0.16 ; cette option n'a donc plus besoin d'être définie manuellement.

Doxygen
Si vous avez installé Doxygen, vous pouvez créer la documentation du code source. Voir la documentation source pour les instructions.

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 système CMake vous permet de mettre à jour intelligemment le code source et de ne recompiler que ce qui a changé, ce qui accélère les compilations ultérieures.

Déplacez-vous à l'emplacement où le code source FreeCAD a été téléchargé pour la première fois et recupérez le nouveau code.

Puis déplacez-vous dans le répertoire de compilation où le code a été initialement compilé, puis exécutez à nouveau. Dans ce cas, ne spécifiez pas le chemin du code source, indiquez simplement le répertoire présent (indiqué par un point).

Pour utiliser tous les cœurs de processeur pour la compilation, utilisez

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