Compiler sous Windows
CompileOnWindows/fr
Cet article explique pas à pas comment compiler FreeCAD dans Windows.
Prérequis
Ce que vous devez avoir, c'est le compilateur. Sous Windows, nous utilisons le compilateur MS VisualStudio 8 (ou VC++ Express) avec le highest service pack.
Bien qu'il soit probablement possible d'utiliser Cygwin ou MinGW gcc, ils ne sont, jusqu'à présent, ni testés ni portés. Nous avons également été amenés d'utiliser VC8 Express Edition.
Vous devez également télécharger Windows Platform SDK et Windows.h. Vous devez aussi posséder toutes les librairies tierces, pour compiler FreeCAD avec succès.
Si vous utilisez des compilateurs MS vous devrez très probablement télécharger Third Party Libraries de FreeCAD, qui vous fournit tous les outils nécessaires à la compilation de FreeCAD pour Windows.
Les autres conditions préalables (et programmes utiles), sont les suivants :
- cMake
- TortoiseGit
- Python 2.6
- WiX (Windows installer XML v3.0) - si vous voulez faire un installateur msi.
Il est également nécessaire d'avoir, dans votre chemin d'accès système "Path" :
Travailler avec cMake
Tout d'abord, vous devez télécharger download cMake, et, l'installer sur votre machine de travail.
Passer à cMake
Depuis la version 0.9, nous utilisons le système de compilation CMake pour générer la compilation et la création des fichiers pour les différents compilateurs.
Nous n'avons plus à livrer de fichiers vcproj.
Si vous voulez créer d'anciennes versions de FreeCAD (0,8 et plus), voir "Compilation de versions plus anciennes", plus loin dans cet article.
Nous avons changé, parce qu'il est devenu de plus en plus pénible de maintenir les dossiers de projet, de plus de 30 cibles et compilations x.
CMake, nous donne la possibilité de soutenir les " IDE " alternatifs, comme Code::Blocks, Qt Creator et Eclipse CDT.
le compilateur principal que nous utilisons, est encore MS VC9 Express. Mais pour l'avenir, nous prévoyons, un processus de construction sur Windows sans compilateur propriétaire.
Configurer le processus de construction
La première étape pour construire FreeCAD avec CMake, est de configurer l'environnement.
Il y a fondamentalement deux façons d'utiliser le LibPack :
- Installation de toutes les libs nécessaires et laissez CMake les trouver.
- Dans le premier cas, il vous suffit de donner à CMake le chemin vers le LibPack, et, tout le reste doit être fait automatiquement,
et, vous verrez un écran comme celui-ci :
Vous voyez le chemin de LibPack inséré dans la variable FREECAD_LIBPACK_DIR. A partir de maintenant, tous les chemins sont présents et fixés.
Vous avez juste besoin d'appuyer sur le bouton Generate pour obtenir les fichiers générés du projet.
Si vous cochez l'option FREECAD_LIBPACK_USE, la configuration essaie de trouver la bibliothèque que votre système a besoin, selon que les libs fonctionnent plus ou moins bien.
Donc, vous devez régulièrement définir les chemins (paths) manuellement. CMake affiche ceux qu'il ne trouve pas, et qui ont besoins d'être spécifiés.
Options de construction du processus de génération
Le système de construction CMake nous donne beaucoup plus de souplesse, au cours du processus de compilation.
Cela signifie que nous pouvons activer et désactiver certaines fonctionnalités ou modules. C'est de cette manière que le noyau Linux travaille.
Vous avez beaucoup de commutateurs (cases à cocher), pour déterminer le processus de construction.
Voici la description de ces commutateurs mais, beaucoup de choses vont très probablement changer à l'avenir, parce que nous voulons accroître beaucoup plus la flexibilité de construction.
Variable name | Description | Default |
---|---|---|
FREECAD_LIBPACK_USE | Switch the usage of the FreeCAD LibPack on or off | On Win32 on, otherwishe off |
FREECAD_LIBPACK_DIR | Directory where the LibPack is | FreeCAD SOURCE dir |
FREECAD_BUILD_GUI | Build FreeCAD with all Gui related modules | ON |
FREECAD_BUILD_CAM | Build the CAM module, experimental! | OFF |
FREECAD_BUILD_INSTALLER | Create the project files for the Windows installer. | OFF |
FREECAD_BUILD_DOXYGEN_DOCU | Create the project files for source code documentation. | OFF |
FREECAD_MAINTAINERS_BUILD | Switch on stuff needed only when you do a Release build. | OFF |
Procédures avec CMake et Visual Studio 2008
Une fois que vous commencer avec CMake GUI, sélectionnez le dossier source, ajoutez le dossier de destination et cliquez sur Configure.
CMake vous demandera de sélectionner un générateur - le générateur recommandé pour les FreeCAD est Visual Studio 9 2008.
Une fois que vous cliquez sur Next (Suivant), CMake affichera erreur car il ne peut pas trouver LibPack.
Vous aurez besoin de cocher manuellement Libpack qui se trouve dans la variable FREECAD_LIBPACK_DIR.
Après cela, vous devez cliquer sur Configure une fois de plus, et la configuration est faite, maintenant, cliquez sur Generate. Maintenant que vous avez terminé avec CMake, vous pouvez le fermer.
Avant d'utiliser Visual Studio, nous devons ajouter à libpack le chemin d'accès au système (vous ne devez faire cela qu'une seule fois lors de la première construction). Vous devez aller dans "Panneau de configuration → Système → Paramètres système avancés".
Dans la boîte de dialogue les "Control Panel → System", sous onglet "Avancé" il y a le bouton Environment Variables. Cliquez sur ce bouton.
Une fois que vous cliquez dessus, ajoutez le chemin d'accès à libpack, et séparez le des autres chemins (path) avec un ";" (point virgule) comme ceci, ....em32;C:\Progr....
Maintenant, vous devez démarrer Visual Studio 2008. Visual C++ 2008 Express fonctionnera également. Avant de compiler, une bonne procédure, est de copier le dossier bin de libpack\bin dans le dossier bin des fichiers de compilation (ceux générés par CMake).
Après cela, allez dans "File → Open → Project/Solution". Puis vous devez ouvrir le fichier FreeCAD_Trunk.sln, à partir des fichiers de compilation générés par CMake.
Une fois ouvert, il y aura trois menus contextuels dans la barre d'outils, l'un d'eux, "Debug", est à basculer sur "Release", ensuite, exécutez "Build → Build Solution" (ou tout simplement appuyez sur F7 , le processus peut prendre du temps.
Une fois terminé, choisissez "Debug → Start without Debugging". Une fenêtre popup vous demandera de sélectionner le fichier .exe. Cliquez dans le menu popup sous la rubrique "Executable File Name" et choisissez "Browse", puis allez dans le dossier bin\ où sont les fichiers source, et sélectionnez "FreeCAD.exe" et . . . vous avez terminé !
Compilation en ligne de command
Voici un exemple pour compiler FreeCAD en mode 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
Compilation de versions plus anciennes
Utilisation de LibPack
Pour compiler facilemant FreeCAD , nous fournissons une librairie complète, c'est la LibPack, vous pouvez vous la procurer sur la page de téléchargement de 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 systeme PATH.
N'oubliez pas que vous devrez remplacer "%FREECADLIB%" avec le nom de chemin d'accès, Windows ne remplace pas de façon récursive les variables d'environnement.
Configurer les répertoires dans Visual Studio
Certains chemins (path) dans Visual Studio doivent être configurés. Pour les modifier, allez dans le menu Tools → Options → Directory
Includes
Ajouter les chemins ci-dessous, la liste des chemins (path) comprend :
- %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 ci-dessous, dans la liste :
- %FREECADLIB%\lib
Executables
Ajoutez le chemin ci-dessous pour la recherche des exécutables :
- %FREECADLIB%\bin
Le répertoire d'installation des binaires de TortoiseSVN est généralement "C:\Programm Files\TortoiseSVN\bin", cela est nécessaire quand SubWVRev.exe est utilisé, pour compiler une distribution, qui est utilisée, pour extraire le numéro de version à partir de Subversion.
Python doit être installé
Lors de la compilation, des scripts Python sont exécutés. Donc, l'interpréteur Python doit être présent avec le système d'exploitation. Utilisez une boîte de commande pour le vérifier. Si la bibliothèque Python n'est pas installée correctement, vous obtiendrez un message d'erreur comme Cannot find Python.exe. Si vous utilisez le LibPack vous pouvez également utiliser Python.exe dans le répertoire bin.
Specialement pour VC8
Lors de la compilation du projet avec VC8, vous devez changer les liens d'informations pour la bibliothèque WildMagic, puisque vous avez besoin de versions différentes pour VC6 et VC8. Les deux versions sont fournies dans LIBPACK/dll.
Pour "AppMesh", dans les propriétés du projet changez le nom de la bibliothèque wm.dll pour la version VC8. Prenez soin de le changer avec Debug et quittez la configuration.
Compilation
Après vous être conformé à toutes ces conditions préalables la compilation, j'espère q'un seul clic de souris dans VC suffira File:64px-FreeCAD05 Tango Face-smile.png
Après la compilation
Allez dans l'environnement ou FreeCAD a été compilé, vous aurez besoin de mettre certains fichiers de la LibPack dans le dossier bin, où se trouve FreeCAD.exe après une compilation réussie :
- python.exe and python_d.exe from LIBPACK/bin
- python25.dll and python25_d.dll from LIBPACK/bin
- python25.zip from LIBPACK/bin
- make a copy of Python25.zip and rename it to Python25_d.zip
- QtCore4.dll from LIBPACK/bin
- QtGui4.dll from LIBPACK/bin
- boost_signals-vc80-mt-1_34_1.dll from LIBPACK/bin
- boost_program_options-vc80-mt-1_34_1.dll from LIBPACK/bin
- xerces-c_2_8.dll from LIBPACK/bin
- zlib1.dll from LIBPACK/bin
- coin2.dll from LIBPACK/bin
- soqt1.dll from LIBPACK/bin
- QtOpenGL4.dll from LIBPACK/bin
- QtNetwork4.dll from LIBPACK/bin
- QtSvg4.dll from LIBPACK/bin
- QtXml4.dll from LIBPACK/bin
Lorsque vous utilisez LibPack avec une version de Python plus de 2.5, vous devez copier deux fichiers supplémentaires,
qui sont :
- zlib.pyd and zlib_d.pyd from LIBPACK/bin/lib. Nécessaire pour que Python puisse ouvrir la bibliothèque Python zippéé.
- _sre.pyd and _sre_d.pyd from LIBPACK/bin/lib. Nécessaire pour que Python puisse compiler dans le système d'aide intégré.
Si vous n'arrivez pas à le faire fonctionner, à cause d'une erreur Python, il est très probable que l'un des fichiers zlib*.pyd est manquant.
Trucs supplémentaires
Si vous voulez compiler du code source de la documentation, vous aurez besoin de DoxyGen.
Pour créer et installer un package vous aurez besoin de WIX.
Pendant la compilation des scripts Python son utilisés, assurez vous que Python fonctionne correctement.
Pour plus de détails, allez voir dans README.Linux dans vos sources.
Tout d'abord, vous devez construire le plugin Qt, qui fournit tous les widgets personnalisés de FreeCAD, et, dont nous avons besoin pour Qt Designer.
Les sources sont situées dans :
//src/Tools/plugins/widget//.
jusqu'à présent, nous ne fournissons pas de makefile - mais appelez :
qmake plugin.pro
Une fois fait, appeler make va créer la bibliothèque
//libFreeCAD_widgets.so//.
Pour rendre cette bibliothèque visible à Qt Designer vous devez copier le fichier dans :
//$QTDIR/plugin/designer//.