Compile on Windows/fr

Cet page explique pas à pas comment compiler FreeCAD 0.18 ou plus récent dans Windows.

Prérequis
Premièrement, vous devez installer les bibliothèques et programmes suivants:

Requis

 * Git (Il y a plusieurs solutions alternatives telles que GitCola, Tortoise Git, et d'autres.)
 * CMake version 3.11.x - 3.14.x. Remarque: On ne peut généralement pas utiliser la dernière version de CMake. Par conséquent, utilisez uniquement une version de CMake dans la plage spécifiée sur cette page! Il est recommandé d'utiliser l'option "Ajouter CMake au chemin système pour tous les utilisateurs" lors de l'installation de CMake. Ensuite, vous pourrez facilement accéder ultérieurement à CMake également à partir de la ligne de commande/powershell.
 * LibPack (également appelé FreeCADLibs). Ceci est un ensemble de bibliothèques nécessaires à la compilation de FreeCAD sous Windows. Selon la version de FreeCAD que vous souhaitez compiler, vous devez télécharger le LibPack correspondant. Par exemple, pour compiler FreeCAD 0.18, téléchargez la version 32 bits ou la version 64 bits du LibPack for 0.18, afin de compiler la dernière version de développement 0.19, téléchargez LibPack pour la version 0.19 (il n’existe qu'une version 64 bits). Il suffit de télécharger le LibPack pour décompresser et installez-le plus tard.  Note: Il est recommandé d'utiliser la même version de compilationMS Visual Studio (MSVC) pour laquelle LibPack est conçu. Cela garantit la réussite de la compilation et de l’exécution de FreeCAD.exe compilé. Ainsi, vous devriez par exemple pouvoir compiler FreeCAD 0.18 en utilisant LibPack pour 0.19 et MSVC 15, mais vous rencontrerez peut-être des problèmes pour compiler FreeCAD 0.18 en utilisant LibPack pour 0.18 et MSVC 15, car LibPack pour 0.18 est conçu pour être construit avec MSVC 12.


 * CMake version 3.11.x - 3.14.x. Note: Usually one cannot take the latest CMake version. Therefore only use a CMake version in the range specified on this page!

It is recommended to use the option Add CMake to the system PATH for all users when installing CMake. Then you can later easily access CMake also from the command line/powershell.


 * LibPack (also called FreeCADLibs). This is a set of libraries necessary to compile FreeCAD on Windows. Depending on the FreeCAD version you want to compile, you must download the corresponding LibPack. For example to compile FreeCAD 0.18, download either the 32bit or the 64bit version of the LibPack for 0.18, to compile the latest development version 0.19, download the LibPack for 0.19 (there is only a 64bit version).

Just download the LibPack, you will unpack and set it up later.

Note: It is recommended to use the same compiler MS Visual Studio (MSVC) version the LibPack is designed for. This assures that the compilation and the execution of the compiled FreeCAD.exe succeeds. So you should for example be able to compile FreeCAD 0.18 using the LibPack for 0.19 and MSVC 15 but you you might get problems compiling FreeCAD 0.18 using the LibPack for 0.18 and MSVC 15 because the LibPack for 0.18 is designed to be built with MSVC 12.

Programmes optionnels

 * Python 3.x. Une installation distincte de python n'est pas obligatoire car LibPack contient Python. Cependant, pour pouvoir tester ultérieurement votre version de FreeCAD, il est utile de disposer d'une installation Python autonome. Il est recommandé d’utiliser non pas la dernière version, mais la version précédente (par exemple, pas Python 3.7 mais 3.6).
 * Une interface graphique pour Git. Plusieurs interfaces sont disponibles, voir cette liste. L'avantage principal d'une interface est qu'il n'est pas nécessaire d'apprendre les commandes Git pour obtenir le code source de FreeCAD ou pour envoyer des correctifs au référentiel GitHub de FreeCAD. Nous décrivons ci-après la gestion du code source à l'aide de l'interface TortoiseGit. Cette interface s’intègre directement à l’explorateur de fichiers Windows et dispose d’une large communauté d’utilisateurs pour obtenir de l’aide en cas de problème.
 * NSIS Ceci est le programme pour générer l'installateur Windows de FreeCAD. (Information: pour FreeCAD 0.17 et les versions antérieures, le programme WiX a été utilisé pour créer le programme d'installation.)


 * Python 3.x. A separate python installation is not mandatory since the LibPack contains Python. However, to be able to test later your FreeCAD build it is useful to have a standalone Python installation. It is recommended to use not the latest version, but the prior version (e.g. not Python 3.7 but 3.6).


 * A GUI frontend for Git. There are several frontends available, see this list. The main benefit of a frontend is that you don't have to learn the Git commands to get the source code of FreeCAD or to send patches to the GitHub repository of FreeCAD.

In the following we describe source code handling using the frontend TortoiseGit. This frontend integrates directly to Windows file explorer and has a large user community to get help in case you have problems.


 * NSIS This is the program to generate the Windows installer of FreeCAD. (Information: For FreeCAD 0.17 and older the program WiX was used to create the installer.)

Code source
Vous pouvez maintenant obtenir le code source de FreeCAD:

Utiliser une interface
Lorsque vous utilisez le Git frontend TortoiseGit: Maintenant, le code source est téléchargé et son dossier devient un dossier suivi par Git.
 * 1) Créez un nouveau dossier où placer le code source.
 * 2) Cliquez avec le bouton droit sur ce dossier dans l’explorateur de fichiers Windows et sélectionnez-le dans le menu contextuel Git Clone.
 * 3) Un dialogue apparaîtra. Utilisez-le ici comme URL pour le référentiel FreeCAD https://github.com/FreeCAD/FreeCAD.git et cliquez sur OK.

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

and click OK.

Now the source code is downloaded and its folder becomes a folder tracked by Git.

Utiliser la ligne de commande
Pour créer une branche locale et télécharger le code source, vous devez ouvrir un terminal (invite de commande) et entrez dans le répertoire ou vous désirez placer le code source, puis tapez:

Compiler
Le compilateur par défaut (recommandé) est MS Visual Studio (MSVC). Bien qu'il soit possible d'utiliser d'autres compilateurs utilisant Cygwin ou MinGW gcc, il n'a pas encore été testé ou porté.

Vous pouvez obtenir une version gratuite de MSVC (pour une utilisation OpenSource) en téléchargeant l'édition "Communauté" de MS Visual Studio. Pour ce faire, utilisez cette URL https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=xx  où xx est le numéro de version. Donc, pour obtenir MSVC 15 (appelé également MSVC 2017), utilisez cette URL: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=15

https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=xx

where xx is the version number. So to get MSVC 15 (calso called MSVC 2017), use this URL:

https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&rel=15

Pour ceux qui ne veulent pas installer l'énorme MSVC uniquement pour avoir un compilateur, voir CompileOnWindows - Réduire l'espace disque.

Remarque: Bien que l'édition Communauté de MSVC soit gratuite, vous devez créer un compte Microsoft à partir de l'EDI MSVC pour pouvoir utiliser l'EDI pendant plus de 30 jours. Si vous ne compilez qu'en utilisant la ligne de commande, vous n'avez pas besoin de l'EDI et donc pas de compte Microsoft.

As free and OpenSource alternative IDE you can use KDevelop. You can use KDevelop to modify and write C++ code but must use the command line to compile.

Chemin de Configuration Système optionnelle
Vous pouvez éventuellement inclure les chemins d'accès à certains dossiers de la variable système PATH. Ceci est utile si vous souhaitez accéder aux programmes de ces dossiers à partir de la ligne de commande/powershell ou si vous souhaitez que des programmes spéciaux soient trouvés par le compilateur ou CMake. En outre, l’ajout de dossiers à PATH peut s’avérer nécessaire si vous n’utilisez pas les options correspondantes lors de l’installation du programme.


 * Vous pouvez inclure le dossier de votre LibPack dans votre variable système PATH. Ceci est utile si vous envisagez de créer plusieurs configurations/versions de FreeCAD.
 * Si vous n'avez pas utilisé l'option permettant d'ajouter CMake à PATH lors de son installation, ajoutez son dossier d'installation C:\Program Files\CMake\bin à PATH.
 * Si vous n'avez pas utilisé l'option permettant d'ajouter TortoiseGit à PATH lors de son installation, ajoutez son dossier d'installation C:\Program Files\TortoiseGit\bin à PATH.

C:\Program Files\CMake\bin to the PATH.
 * If you did not use the option to add TortoiseGit to the PATH while installing it, add its installation folder

C:\Program Files\TortoiseGit\bin to the PATH.

Pour ajouter à votre chemin au système:
 * 1) Dans le menu Démarrer de Windows, cliquez avec le bouton droit de la souris sur Ordinateur et choisissez Propriétés.
 * 2) Dans la boîte de dialogue qui apparaît, cliquez sur Paramètres système avancés.
 * 3) Une autre boîte de dialogue s'ouvrira. Cliquez sur l'onglet Avancé sur Variables d'environnement.
 * 4) Encore une autre boîte de dialogue s'ouvrira. Sélectionnez ensuite la variable Path et cliquez sur Editer.
 * 5) Une autre boîte de dialogue s'ouvrira. Cliquez ici sur Nouveau et ajoutez le chemin d'accès au dossier de Git ou du LibPack.
 * 6) Enfin, appuyez sur OK et fermez toutes les boîtes de dialogue en appuyant sur OK.

LibPack
Au début, vous devez configurer un dossier de construction:
 * 1) Créez un nouveau dossier où va se trouver FreeCAD compilé. Il est fortement recommandé que ce dossier ne se trouve pas dans le dossier du code source de FreeCAD.
 * 2) Créez-y un nouveau sous-dossier pour le LibPack. Remarque: Le nom de ce sous-dossier doit être identique au nom du fichier LibPack. Si par exemple le LibPack a le nom de fichier FreeCADLibs_12.1.2_x64_VC15.7z, vous devez nommer le sous-dossier FreeCADLibs_12.1.2_x64_VC15.
 * 3) Extrayez le LibPack dans ce sous-dossier.

CMake
Maintenant, vous devez configurer l'environnement de construction à l'aide de CMake:
 * 1) Ouvrez l'interface graphique de CMake
 * 2) Spécifiez le dossier source de FreeCAD
 * 3) Spécifiez le dossier de construction que vous venez de créer à l'étape précédente.
 * 4) Cliquez sur Configurer
 * 5) Dans la boîte de dialogue qui apparaît, spécifiez le générateur en fonction de celui que vous souhaitez utiliser. Pour MS Visual Studio standard, utilisez Visual Studio xx 2yyy, où xx correspond à la version du compilateur et à l'année de sa publication. Il est recommandé d'utiliser l'option par défaut Utiliser les compilateurs natifs par défaut. Remarque: Il est important de spécifier la variante de bit correcte. Si vous avez la variante 64 bits de LibPack, vous devez également utiliser le compilateur x64.

Note: It is important to specify the correct bit variant. If you have the 64bit variant of LibPack you must also use the x64 compiler.

Cela commencera la configuration et échouera à cause de paramètres manquants.

S'il échoue avec le message "Visual Studio est introuvable", la prise en charge de CMake dans MSVC n'est pas encore installée. Pour l'installer:
 * 1) Ouvrez l'EDI MSVC
 * 2) Utilisez le menu Outils → Obtenir les outils et fonctionnalités
 * 3) Dans l'onglet Workloads, activez Développement de bureau avec C++
 * 4) Sur le côté droit, vous devriez maintenant voir que le composant Outils Visual C++ pour CMake sera installé.
 * 5) Installez-le.

S'il n'y a pas d'erreur à propos de Visual Studio, tout va bien, mais CMake ne connaît pas encore tous les paramètres nécessaires. Donc maintenant:
 * 1) Assurez-vous que l'option de recherche Avancée est cochée.
 * 2) Recherchez dans CMake la variable FREECAD_LIBPACK_DIR et spécifiez-y l'emplacement correct dans le dossier LibPack.
 * 3) Recherchez la variable BUILD_QT5 et activez cette option.
 * 4) Cliquez à nouveau sur Configurer

Il ne devrait maintenant y avoir aucune erreur. Si oui, cliquez sur Générer. Ceci fait, vous pouvez fermer CMake et continuer à démarrer la compilation de FreeCAD. Cependant, pour la première compilation, maintenez-le ouvert pour le cas où vous souhaitez ou devez modifier certaines options pour le processus de construction:

Options pour le procédé de compilation
Le système de construction CMake vous donne la flexibilité nécessaire pour le processus de construction. Cela signifie que vous pouvez activer et désactiver certaines fonctionnalités ou certains modules avec les variables CMake.

Voici la description de certaines de ces variables:

Note: Some components are required for other components. If you for example uncheck BUILD_ROBOT CMake will inform you that then the component Path cannot be compiled correctly. Therefore check the CMake output after you changed a BUILD_XXX option! || depends
 * CMAKE_INSTALL_PREFIX  || The output folder when building the target INSTALL, see also section Running and installing FreeCAD || Windows' default program installation folder
 * FREECAD_COPY_DEPEND_DIRS_TO_BUILD || Copies the LibPack libraries needed to execute the FreeCAD.exe to the build folder. See also section Running and installing FreeCAD. || OFF
 * FREECAD_COPY_LIBPACK_BIN_TO_BUILD || Copies the LibPack binaries needed to execute the FreeCAD.exe to the build folder. See also section Running and installing FreeCAD. || OFF
 * FREECAD_LIBPACK_USE || Switch the usage of the FreeCAD LibPack on or off || ON
 * FREECAD_LIBPACK_DIR || Directory where the LibPack is || FreeCAD's source code folder
 * FREECAD_RELEASE_PDB || Create debug libraries also for release builds || ON
 * }
 * FREECAD_LIBPACK_USE || Switch the usage of the FreeCAD LibPack on or off || ON
 * FREECAD_LIBPACK_DIR || Directory where the LibPack is || FreeCAD's source code folder
 * FREECAD_RELEASE_PDB || Create debug libraries also for release builds || ON
 * }
 * FREECAD_RELEASE_PDB || Create debug libraries also for release builds || ON
 * }

Compilation de FreeCAD
En fonction de votre compilateur, le processus de construction de FreeCAD sera légèrement différent. Dans les sections suivantes, vous décrivez les flux de travail connus. Si vous construisez avec Qt Creator, passez à Compiler avec Qt Creator, sinon, procédez directement:

Construire avec Visual Studio 15 2017
Cela va maintenant prendre beaucoup de temps.
 * 1) Démarrez l'IDE Visual Studio. Cela peut être effectué en appuyant sur le bouton Ouvrir un projet dans l'interface graphique de CMake ou en double-cliquant sur le fichier FreeCAD.sln que vous trouvez dans votre dossier de construction.
 * 2) Dans la barre d’outils de l’EDI MSVC, assurez-vous que vous utilisez pour la première compilation Release.
 * 3) Il y a une fenêtre appelée "Solution" explorateur. Il répertorie toutes les cibles de compilation possibles. Pour démarrer une compilation complète, cliquez avec le bouton droit de la souris sur la cible ALL_BUILD, puis choisissez Construire.

To start a full compilation, right-click on the target ALL_BUILD and then choose Build. This will now take quite a long time.

Pour compiler un FreeCAD prêt à l’emploi, compilez la cible INSTALL, voir la section Exécution et installation de FreeCAD.

Si vous n'obtenez aucune erreur, vous avez terminé. Félicitations! Vous pouvez quitter MSVC ou le garder ouvert.

Compilation avec Visual Studio 12 2013
Assurez vous de spécifier Visual Studio 12 x64(ou un Compilateur-C que vous utilisez) comme compilateur utilisé par CMake avant de continuer.


 * Démarrez Visual Studio 12 2013 en cliquant sur l'icône du bureau créé lors de son installation.

Fichier → Ouvrir → Projet/Solution
 * Ouvrez le projet par:


 * Ouvrez le fichier FreeCAD_Trunk.sln dans le dossier CMake créé

Cette action peut prendre un certain temps en fonction de votre système
 * Dans Configuration Solutions, en haut de la barre déroulante activez Release X64


 * Build → Build Solution


 * Cela va prendre un certain temps ...

Si vous ne recevez pas d'erreurs vous avez terminé. Quitter Visual Studio et lancez FreeCAD en double cliquant sur l'icône FreeCAD dans le dossier bin du répertoire de compilation.

Installation et configuration de Qt Creator

 * Téléchargez et installez Qt Creator
 * Outils → Options → Editeur Texte → Behavior tab:
 * File Encodings → Default Encodings:
 * Set to: ISO-8859-1 /...csISOLatin1 (Certain caracteres créent une errors/warnings avec Qt Creator if left set to UTF-8. Cela semble pour corrigé.)
 * Tools → Options → Build & Run:
 * CMake tab
 * Fill Executable box with path to cmake.exe
 * Kits tab
 * Name: MSVC 2008
 * Compiler: Microsoft Visual C++ Compiler 9.0 (x86)
 * Debugger: Détection automatique ...
 * Qt version: None
 * General tab
 * Uncheck: Toujours compiler et déployer le projet
 * Uncheck: Toujours déployer le projet avant de l'exécuter

Importer un projet et compiler

 * File → Open File or Project
 * Open CMakeLists.txt qui est dans le plus haut niveau de la source
 * Ceci démarre CMake
 * Choisissez créer le répertoire et cliquez sur suivant
 * Ensemble de générateurs de NMake Generator (MSVC 2008)
 * Cliquez sur Démarrer CMake. Suivez les instructions décrites ci-dessus pour configurer CMake à votre convenance.

Maintenant FreeCAD est construit
 * Build → Build All
 * Ceci peut prendre du temps...

Une fois terminé, il peut être exécuté: Il y a 2 triangles verts en bas à gauche. Un est pour la mise au point. L'autre est pour l'exécution. Faites votre choix.

Compilation en ligne de commande
Les étapes pour compiler à partir de la ligne de commande dépendent du compilateur. Pour MSVC 2017, les étapes sont les suivantes:
 * 1) Dans le menu Démarrer de Windows, accédez à  et choisissez Invite de commande du développeur pour VS 2017.
 * 2) Allez dans votre dossier de construction.
 * 3) Exécute la commande  ou

or

Ces étapes peuvent également être automatisées. Voici par exemple une solution pour MSVC 2017: Au lieu d'appeler compile-FC avec l'option installer, vous pouvez aussi utiliser déboguer ou release: déboguer  - compiler FreeCAD dans la configuration de débogage release - compiler FreeCAD dans la configuration de release install   - compiler FreeCAD dans la configuration de la version et créer une installation
 * 1) Téléchargez le script compile-FC.txt.
 * 2) Le renommer en compile-FC.bat
 * 3) Dans l'explorateur de fichiers de Winddows Shift+Cliquez-droit sur votre dossier de construction et utilisez-le dans le menu contextuel ''Invite de commandes ici '.
 * 4) Exécute la commande

Instead of calling compile-FC with the option install you can also use debug or release:

debug  - compile FreeCAD in debug configuration

release - compile FreeCAD in release configuration

install   - compile FreeCAD in release configuration and create an install setup

Exécution et installation de FreeCAD
Il existe 2 méthodes pour exécuter la compilation de FreeCAD: Method 1: Vous exécutez FreeCAD.exe que vous trouvez dans votre dossier de construction qui se trouve dans le sous-dossier bin Method 2: Vous construisez la cible INSTALL

Method 1: You execute the FreeCAD.exe that you find in your build folder in the subfolder bin

Method 2: You build the target INSTALL

La méthode 2 est la plus simple, car elle assure automatiquement que toutes les bibliothèques requises pour exécuter FreeCAD.exe se trouvent dans le bon dossier. FreeCAD.exe et les bibliothèques seront sortis dans le dossier que vous avez spécifié dans la variable CMake CMAKE_INSTALL_PREFIX.

Pour la méthode 1, vous devez placer les bibliothèques dans le dossier bin de votre dossier de construction (où se trouve FreeCAD.exe). Cela peut être facilement fait en utilisant les variables CMake en option:
 * 1) Ouvrez l'interface graphique de CMake.
 * 2) Recherchez et cochez la variable FREECAD_COPY_DEPEND_DIRS_TO_BUILD.
 * 3) Recherchez et cochez la variable FREECAD_COPY_LIBPACK_BIN_TO_BUILD.
 * 4) Cliquez sur Configurer. A la fin de la configuration, CMake copiera automatiquement les bibliothèques nécessaires du dossier LibPack.

Pour FreeCAD 0.19, un seul problème nécessite actuellement une action manuelle:
 * 1) Téléchargez le fichier qwindowsvistastyle.zip à partir du forum FreeCAD.
 * 2) Créez un nouveau sous-dossier nommé styles dans le dossier bin (où se trouve FreeCAD.exe).
 * 3) Extraire le fichier ZIP dans ce dossier. Cela ajoute le style nécessaire pour que FreeCAD ressemble à un programme Win 10 normal. Sinon, il ressemblera à Windows 98.

This adds the necessary style to make FreeCAD look like a normal Win 10 program. Otherwise it looks like in Windows 98.

Mise à jour de la compilation
FreeCAD est très activement développé. Par conséquent, son code source change presque quotidiennement. De nouvelles fonctionnalités sont ajoutées et des bugs corrigés. Pour bénéficier de ces modifications du code source, vous devez reconstruire votre FreeCAD. Cette reconstruction se fait en deux étapes:
 * 1) Mise à jour du code source
 * 2) Recompilation

Utiliser une interface
Lorsque vous utilisez le Git frontend TortoiseGit:
 * 1) Dans l'explorateur de fichiers Windows faites clic droit sur le dossier de code source FreeCAD et sélectionnez dans le menu contextuel Pull.
 * 2) Une boîte de dialogue apparaîtra. Sélectionnez la branche de développement que vous souhaitez obtenir. master est la branche principale. Par conséquent, utilisez la sauf si vous voulez compiler une nouvelle fonctionnalité spéciale à partir d'une branche qui n'a pas encore été fusionnée avec maître. (Pour plus d'informations sur les branches Git, consultez Processus de développement Git). Cliquez enfin sur OK.

Finally click OK.

Utiliser la ligne de commande
Ouvrez un terminal (invite de commande) et accédez au répertoire source. Puis tapez:

où master est le nom de la branche principale du développement. Si vous voulez obtenir le code d’une autre branche, utilisez son nom au lieu de master.

Recompilation

 * 1) Ouvrez l'EDI MSVC en double-cliquant sur le fichier FreeCAD.sln ou sur le fichier ALL_BUILD.vcxproj dans votre dossier de construction.
 * 2) Continuer à l'étape 2 de la section Construire avec Visual Studio 15 2017.

Références
A voir
 * Compiler dans Windows avec Visual Studio 2013
 * Compiling - Speeding up