Compile on Windows/fr

Cette 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.15.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.

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

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

Utiliser une interface
Lorsque vous utilisez le Git frontend TortoiseGit:
 * 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.

Maintenant, le code source est téléchargé et son dossier devient un dossier suivi par 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

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.

Comme alternative gratuite et OpenSource IDE, vous pouvez utiliser KDevelop. Vous pouvez utiliser KDevelop pour modifier et écrire du code C ++, mais vous devez utiliser la ligne de commande pour compiler.

Chemin de Configuration Système optionnel
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.

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 2yyy à 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.

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:

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

 * 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. Cela va maintenant prendre beaucoup de temps.

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

Ces étapes peuvent également être automatisées. Voici par exemple une solution pour MSVC 2017:
 * 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

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

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

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.

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.

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.

Tools
In order to join the FreeCAD development you should compile and install the following tools:

Qt Designer plugin
FreeCAD uses Qt as toolkit for its user interface. All dialogs are setup in UI-files that can be edited using the program Qt Designer that is part of any Qt installation and also included in the LibPack. FreeCAD has its own set of Qt widgets to provide special features like adding a unit to input fields and to set preferences properties.

Installation
To make Qt Designer aware of the FreeCAD widgets, you must


 * 1) Download this ZIP file. (Compiled using Qt 5.12, see below.)
 * 2) Extract the DLL file in the ZIP and copy it
 * If you use the LibPack: to the folder ~\FreeCADLibs_12.1.4_x64_VC15\bin\designer Since there will only be a bin folder and you must first create the designer subfolder.
 * If you have a full Qt installation: you can choose between the folder C:\Qt\Qt5.12.5\5.12.5\msvc2017_64\plugins\designer or C:\Qt\Qt5.12.5\5.12.5\msvc2017_64\bin\designer (adapt the paths to your installation!).

(Re)Start Qt Designer and check its menu. If the plugin FreeCAD_widgets.dll is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must compile the DLL by yourself.

If you prefer using Qt Creator instead of Qt Designer, the DLL must be placed in this folder: C:\Qt\Qt5.12.5\Tools\QtCreator\bin\plugins\designer (Re)Start Qt Creator, switch to the mode Design and then check the menu. If the plugin FreeCAD_widgets.dll is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must compile the DLL by yourself.

Compilation
The DLL cannot be loaded as plugin if it was compiled using another Qt version than the one your Qt Designer/Qt Creator is based on. In this case you must compile the DLL by yourself. This is done the following way:


 * 1) Change to the FreeCAD source folder ~\src\Tools\plugins\widget
 * 2) Open a MSVC x64 command prompt using the Windows Start menu and change within it to the above folder. It is important that it is the x64 version of the MSVC command prompt!
 * 3) Execute this command If qmake could not be found, use the full path to it, e.g. for the LibPack it should be this one (adapt it to your installation): D:\FreeCAD-build\FreeCADLibs_12.1.4_x64_VC15\bin\qmake -t vclib plugin.pro for a full Qt installation it is C:\Qt\Qt5.12.5\5.12.5\msvc2017_64\bin\qmake -t vclib plugin.pro (adapt the paths to your installation!)
 * 4) The call of qmake created the file FreeCAD_widgets.vcxproj in the folder ~\src\Tools\plugins\widget. Double-click on it and the MSVC IDE will open.
 * 5) In the toolbar of the MSVC IDE assure that you use the compilation target Release.
 * 6) There is a window called Solution Explorer. Right-click there on FreeCAD_widgets and then choose Build.
 * 7) As result you should now have a FreeCAD_widgets.dll in the folder ~\src\Tools\plugins\widget\release that you can install as plugin as described above.

Tumbnail Provider
FreeCAD has the feature to provide preview thumbnails for *.FCStd files. That means that in the Windows file explorer *.FCStd files are shown with a screenshot of the model it contains. To provide this feature, FreeCAD needs to have the file FCStdThumbnail.dll installed to Windows.

Installation
The DLL is installed this way:
 * 1) Download this ZIP file and extract it.
 * 2) Open a Windows command prompt with administrator privileges (these privileges are a requirement).
 * 3) Change to the folder where the DLL is.
 * 4) Execute this command

So check if it works, assure that in FreeCAD the preferences option Save thumbnail into project file when saving document is enabled and save a model. Then view in Windows Explorer the folder of the saved model using a symbol view. You should now see a screenshot of the model in the folder view.

Compilation
To compile the FCStdThumbnail.dll
 * 1) Change to the FreeCAD source folder ~\src\Tools\thumbs\ThumbnailProvider
 * 2) Open the CMake GUI
 * 3) Specify there as source folder the one you are currently in.
 * 4) Use the same folder as build folder.
 * 5) Click Configure
 * 6) In the appearing dialog, specify the generator according to the one you want to use. For the standard MS Visual Studio use Visual Studio xx 2yyy where xx is the compiler version and 2yyy the year of its release. It is recommended to use the default option Use default native compilers. 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.
 * 7) Click on Generate.
 * 8) You should now have the file ALL_BUILD.vcxproj in the folder ~\src\Tools\thumbs\ThumbnailProvider. Double-click on it and the MSVC IDE will open.
 * 9) In the toolbar of the MSVC IDE assure that you use the compilation target Release.
 * 10) There is a window called Solution Explorer. Right-click there on ALL_BUILD and then choose Build.
 * 11) As result you should now have a FCStdThumbnail.dll in the folder ~\src\Tools\thumbs\ThumbnailProvider\release that you can install as described above.

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