Compiler sous Windows

From FreeCAD Documentation
Revision as of 08:34, 19 September 2019 by Mario52 (talk | contribs) (Created page with "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. C...")

Cet article explique pas à pas comment compiler FreeCAD dans Windows.

A voir

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

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).
  • TortoiseGit. C'est une interface graphique pour Git. Il s'intégrera directement à l'explorateur de fichiers Windows. Le principal avantage est que vous n'avez pas à apprendre les commandes Git pour obtenir le code source de FreeCAD ou pour envoyer des correctifs au référentiel Github de FreeCAD.

Code Source

Utiliser Git (de préférence)

Pour créer une branche locale et télécharger le code source, vous devez ouvrir un terminal (invite de commande) et faites cd pour vous diriger vers le répertoire ou vous désirez placer le code source, puis tapez:

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

Compiler

Sous Windows, le compilateur par défaut est MS Visual Studio CI utilise la version 2013.

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

Note

Bien qu'il puisse être possible d'utiliser Cygwin ou MinGW gcc ils n'ont été jusque présent ni testés ni soutenus.


Libraires tierces

Vous aurez besoin de tous les librairies tierces pour compiler FreeCAD avec succès. Si vous utilisez les compilateurs MS il est recommandé d'installer un FreeCAD LibPack, qui fournit toutes les bibliothèques nécessaires pour compiler FreeCAD dans Windows. Vous aurez besoin du Libpack pour votre architecture et votre compilateur. FreeCAD fournit actuellement Libpack Version 11 pour x32 et x64, pour VS9 2008, VS11 2012 et VS12 2013.

Programmes optionnels

  • L'installateur NSIS Windows installer (note: formerly, WiX a été utilisé - nous faisons maintenant une transition vers NSIS) - si vous voulez créer un MSI Installer

Chemin de Configuration Système

Dans votre système veillez définir les chemins corrects pour les programmes suivants:

  • git (non TortoiseGit, mais git.exe) il est nécessaire pour que Cmake mettre à jour correctement l'information "A propos de FreeCAD" dans le fichier de version.h qui permet à FreeCAD de signaler la bonne version "A propos de FreeCAD" à partir du menu Aide.
  • Optionnellement, vous pouvez inclure libpack dans votre chemin d'accès système. Ceci est utile si vous envisagez de construire de multiples configurations/versions de FreeCAD, vous devrez copier moins de fichiers comme expliqué plus loin dans le processus de construction.

Pour ajouter à votre chemin au système:

  • Menu Démarrer → clic droit sur Ordinateur → Propriétés → Paramètres système avancés
  • Onglet Avancé → Variables d'environnement ...
  • Ajouter path/to/GIT dans la variable d'environnement PATH
  • Chaque chemin doit être séparé par un point virgule ';'

Configuration avec CMake

CMake

La première étape pour construire FreeCAD avec CMake est de configurer son environnement.

Configure CMake en utilisant GUI

  • Ouvrez l'environnement CMake GUI
  • Spécifiez le répertoire des sources
  • Spécifiez le répertoire de compilation
  • Cliquez sur Configure
  • 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 yyy à 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. Donc maintenant:

  1. Recherchez dans CMake la variable 'FREECAD_LIBPACK_DIR' et spécifiez-y l'emplacement correct dans le dossier LibPack.
  2. Recherchez la variable BUILD_QT5 et activez cette option.
  3. 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 compilation CMake nous donne beaucoup plus de flexibilité au cours du processus de compilation. Ce qui veut dire nous pouvons activer et désactiver certaines fonctionnalités ou modules. Il y a une similitude au noyau compilation Linux. Vous avez beaucoup de commutateurs pour déterminer le processus de compilation.

Voici la description de certains de ces commutateurs. Ils seront très probablement modifiés dans le futur parce que nous voulons augmenter beaucoup plus la flexibilité de compilation.

Link table
Nom de la Variable Description Défaut
FREECAD_LIBPACK_USE active ou désactiver l'utilisation du LibPack de FreeCAD Sur Win32 activé, autres désactivé
FREECAD_LIBPACK_DIR Chemin du LibPack Chemin des SOURCES de FreeCAD
FREECAD_BUILD_GUI Compile FreeCAD avec tous les modules Gui Actif
FREECAD_BUILD_CAM Compile le module CAM, expérimental! Inactif
FREECAD_BUILD_INSTALLER Crée le fichier projet pour l'installateur Windows. Inactif
FREECAD_BUILD_DOXYGEN_DOCU Crée les fichiers sources pour la documentation. Inactif
FREECAD_MAINTAINERS_BUILD Active tout ce qui est nécessaire lorsque vous faites une version Release. Inactif

Si vous compilez avec Qt Creator, allez voir Compiler avec Qt Creator, autre procédure Compiler avec Visual Studio 9 2008.

Compilation de FreeCAD

En fonction de votre configuration actuelle, le processus de compilation de FreeCAD sera légèrement différente. Cela est dû à des différences dans les versions du logiciel et des logiciels disponibles pour chaque système d'exploitation.


La procédure suivante crée une compilation dans l'environnement Windows Vista/7/8, pour XP un autre ensemble d'outils VS est nécessaire pour VS 2012 et 2013, qui n'a pas été testé avec succès sur les Libpacks actuelles. Pour cibler XP (x32 et x64 fois), il est recommandé d'utiliser VS2008 et Libpack FreeCADLibs_11.0_x86_VC9.7z

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.
  • Ouvrez le projet par:

Fichier → Ouvrir → Projet/Solution

  • Ouvrez le fichier FreeCAD_Trunk.sln dans le dossier CMake créé
  • Dans Configuration Solutions, en haut de la barre déroulante activez Release X64

Cette action peut prendre un certain temps en fonction de votre système

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

Compiler avec Visual Studio 9 2008

Warning

Depuis la version 0.17 Freecad utilise c++11 la fonctionnalités n'est plus prise en charge par la version 2008



Compiler avec Qt Creator

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

Ici un exemple de compilation en ligne de commande:

rem @echo off
rem   Build script, uses vcbuild to completetly build FreeCAD
 
rem update trunc
d:
cd "D:\_Projekte\FreeCAD\FreeCAD_0.9"
"C:\Program Files (x86)\Subversion\bin\svn.exe" update 
 
rem  set the aprobiated Variables here or outside in the system
 
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem
set INCLUDE=
set LIB=
 
rem Register VS Build programms
call "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
 
rem Set Standard include paths
set INCLUDE=%INCLUDE%;%FrameworkSDKDir%\include
set INCLUDE=%INCLUDE%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
 
rem Set lib Pathes
set LIB=%LIB%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
set LIB=%LIB%;%PROGRAMFILES%\Microsoft Visual Studio\VC98\Lib
 
rem Start the Visuall Studio build process
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe" "D:\_Projekte\FreeCAD FreeCAD_0.9_build\FreeCAD_trunk.sln" /useenv


Running and installing FreeCAD

There are 2 methods to run the compiled FreeCAD:

  1. You execute the FreeCAD.exe that you find in your build folder in the subfolder bin
  2. You build the target INSTALL

Method 2 is the simpler one because it automatically assures that all libraries needed to run the FreeCAD.exe are in the correct folder. The FreeCAD.exe and the libraries will be output in the folder you specified in the CMake variable CMAKE_INSTALL_PREFIX.
For FreeCAD 0.19 there is currently only one issue that requires your action:

  1. Download the file qwindowsvistastyle.zip from the FreeCAD forum.
  2. Create a new subfolder named styles in the bin folder.
  3. Extract the ZIP-file to this folder.

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

For Method 1 you need to put the libraries into the bin folder of your build folder (where the FreeCAD.exe is). This can easily be done, by using the CMake variable option FREECAD_COPY_LIBPACK_BIN_TO_BUILD.

Compiler une ancienne version

Utiliser LibPack

Pour obtenir plus facile la compilation de FreeCAD, nous offrons une collection de toutes les bibliothèques nécessaires. Elle s’appelle LibPack. Vous pouvez les trouver sur la page de téléchargement sur sourceforge.

Vous devez définir les variables d'environnement suivantes:

FREECADLIB = "D:\Wherever\LIBPACK"
QTDIR = "%FREECADLIB%"

Ajoutez "%FREECADLIB%\bin" et "%FREECADLIB%\dll" dans la variable système PATH. Gardez à l'esprit ce que vous devez remplacer "%FREECADLIB%" avec le nom du chemin, Windows ne remplace pas les variables d'environnement de façon récursive.

Répertoire setup dans Visual Studio

Certains chemin de recherche de Visual Studio ont besoin d'être réglés. Pour les modifier, utilisez le menuTools→Options→Directory

Includes

Add the following search path to the include path search list:

  • %FREECADLIB%\include
  • %FREECADLIB%\include\Python
  • %FREECADLIB%\include\boost
  • %FREECADLIB%\include\xercesc
  • %FREECADLIB%\include\OpenCascade
  • %FREECADLIB%\include\OpenCV
  • %FREECADLIB%\include\Coin
  • %FREECADLIB%\include\SoQt
  • %FREECADLIB%\include\QT
  • %FREECADLIB%\include\QT\Qt3Support
  • %FREECADLIB%\include\QT\QtCore
  • %FREECADLIB%\include\QT\QtGui
  • %FREECADLIB%\include\QT\QtNetwork
  • %FREECADLIB%\include\QT\QtOpenGL
  • %FREECADLIB%\include\QT\QtSvg
  • %FREECADLIB%\include\QT\QtUiTools
  • %FREECADLIB%\include\QT\QtXml
  • %FREECADLIB%\include\Gts
  • %FREECADLIB%\include\zlib
Libs

Ajouter le chemin de recherche ci-dessous pour recherche le répetroire lib:

  • %FREECADLIB%\lib
Executables

Ajouter le chemin de recherche ci-dessous pour les exécutables:

  • %FREECADLIB%\bin
  • Le répertoire des binaires de TortoiseSVN , habituellement "C:\Program Files\TortoiseSVN\bin", cela est nécessaire pour lorsque SubWVRev.exe est utilisé pour extraire le numéro de version de Subversion.

Version de Python nécessaire

Lors de la compilation des scripts Python sont exécutées. Ainsi, l'interpréteur Python doit fonctionner sur l'OS. Utilisez une console pour le vérifier. Si la bibliothèque Python n'est pas correctement installée, vous obtiendrez un message d'erreur comme "Cannot find python.exe". Si vous utilisez le LibPack vous pouvez également utiliser la Python.exe dans le répertoire bin.

Specialement pour VC8

Lors de la compilation du projet avec VC8, vous devez modifier les informations de liaison pour la bibliothèque WildMagic, car vous avez besoin d'une version différente pour compiler avec VC6 et VC8. Les deux versions sont fournies dans LIBPACK/dll . Dans les propriétés du projet de AppMesh changez le nom de la bibliothèque wm.dl pour la version VC8. Prenez soin de le changer aussi dans Debug "et" Release configuration.

Compilation

Après vous avoir conformer à toutes ces conditions préalables à la compilation j'espère qu'un seul clic de souris sera suffisant dans VC

Après la Compilation

Après une compilation réussie: Pour rendre FreeCAD opérationnel dans l'environnement du compilateur vous devez copier quelques fichiers à partir du LibPack dans le dossier bin FreeCAD.exe

  • python.exe et python_d.exe de LIBPACK/bin
  • python25.dll et python25_d.dll de LIBPACK/bin
  • python25.zip de LIBPACK/bin
  • faire une copie de Python25.zip et renommez le en Python25_d.zip
  • QtCore4.dll de LIBPACK/bin
  • QtGui4.dll de LIBPACK/bin
  • boost_signals-vc80-mt-1_34_1.dll de LIBPACK/bin
  • boost_program_options-vc80-mt-1_34_1.dll de LIBPACK/bin
  • xerces-c_2_8.dll de LIBPACK/bin
  • zlib1.dll de LIBPACK/bin
  • coin2.dll de LIBPACK/bin
  • soqt1.dll de LIBPACK/bin
  • QtOpenGL4.dll de LIBPACK/bin
  • QtNetwork4.dll de LIBPACK/bin
  • QtSvg4.dll de LIBPACK/bin
  • QtXml4.dll de LIBPACK/bin

Lorsque vous utilisez un LibPack avec une version plus ancienne que Python 2.5, vous devez copier deux autres fichiers:

  • zlib.pyd et zlib_d.pyd de LIBPACK/bin/lib. Ceci est nécessaire pour que Python puisse ouvrir la bibliothèque dans le fichier compressé zip de Python.
  • _sre.pyd et _sre_d.pyd de LIBPACK/bin/lib. Ceci est nécessaire pour que Python puisse construire le système d'aide.

Si vous ne pouvez pas exécuter le programme en raison d'une erreur Python, il est plus que probable que l'un des fichiers zlib*.pyd est manquant.

Alternativement, vous pouvez copier tout le dossier bin de libpack dans le dossier bin de la compilation. Cela est plus facile, mais prend plus de temps et d'espace sur disque. Cela peut être substitué en créant des liens au lieu de copier les fichiers, voir CompileOnWindows - Réduire l'espace disque.

Suppléments

Si vous voulez compiler le code source de la documentation allez sur DoxyGen.

Pour créer et installer un paquet allez sur WIX.

Pendant la compilation des scripts Python sont exécutés. Donc, l'interpréteur Python doit fonctionner correctement.

Pour plus de détails lisez README.linux dans vos sources.

Tout d'abord vous devez construire le plugin Qt qui fournit tous les widgets personnalisés de FreeCAD nous avons besoin pour Qt Designer. Les sources sont situées en dessous

//src/Tools/plugins/widget//.

Jusqu'à présent, nous ne fournissons pas un makefile - mais vous devez l'appeler et la créer

qmake plugin.pro
Une fois fait, appelez construire et la bibliothèque sera créée 
//libFreeCAD_widgets.so//.

Pour rendre visible cette bibliothèque à Qt Designer vous devez copier le fichier

//$QTDIR/plugin/designer//.


References

Tracker/fr
CompileOnUnix/fr