Compile on Windows/de

Diese Seite erklärt Schritt für Schritt, wie FreeCAD 0.18 oder neuer unter Windows kompilieren können.

Voraussetzungen
Zuerst müssen die folgenden erforderlichen Programme und Bibliotheken installiert werden:

Erforderlich

 * Git (Es gibt auch ein GUI Frontend für Git, siehe nächster Abschnitt.)


 * CMake Version 3.11.x - 3.14.x. Hinweis:'' Normalerweise kann man nicht die neueste CMake-Version nehmen. Verwende daher nur eine CMake-Version in dem auf dieser Seite angegebenen Bereich!

Es wird empfohlen, bei der Installation von CMake die Option CMake zum Systempfad für alle Benutzer hinzufügen zu verwenden. Dann kannst Du später einfach auf CMake zugreifen, auch über die Befehlszeile/Powershell.


 * LibPack (auch FreeCADLibs genannt). Dies ist ein Satz von Bibliotheken, die notwendig sind, um FreeCAD unter Windows zu kompilieren. Je nachdem, welche FreeCAD Version du kompilieren möchtest, musst du das entsprechende LibPack herunterladen. Um beispielsweise FreeCAD 0.18 zu kompilieren, lade entweder die 32bit- oder die 64bit-Version des LibPack für 0.18 herunter, um die neueste Entwicklungsversion 0.19 zu kompilieren, lade das LibPack für 0.19 herunter (es gibt nur eine 64bit-Version).

Lade einfach das LibPack herunter, Du wirst es entpacken und später einrichten.

Note: Es wird empfohlen, den gleichen Compiler MS Visual Studio (MSVC) zu verwenden, für den das LibPack bestimmt ist. Dies stellt sicher, dass die Kompilierung und Ausführung der kompilierten FreeCAD.exe erfolgreich ist. So solltest Du z.B. FreeCAD 0.18 mit dem LibPack für 0.19 und MSVC 15 kompilieren können, aber Du könntest Probleme bekommen, FreeCAD 0.18 mit dem LibPack für 0.18 und MSVC 15 zu kompilieren, da das LibPack für 0.18 für MSVC 12 entworfen wurde.

Optionale Programme

 * Python 3.x. Eine separate Python-Installation ist nicht erforderlich, da das LibPack Python enthält. Um Dein FreeCAD-Build später testen zu können, ist es jedoch sinnvoll, eine eigenständige Python-Installation zu haben. Es wird empfohlen, nicht die neueste Version zu verwenden, sondern die vorherige Version (z.B. nicht Python 3.7, sondern 3.6).


 * Ein GUI Frontend für Git. Es stehen mehrere Frontends zur Verfügung, siehe diese Liste. Der Hauptvorteil eines Frontends besteht darin, dass Sie die Git-Befehle nicht erlernen müssen, um den Quellcode von FreeCAD zu erhalten oder Patches an das GitHub-Repository von FreeCAD zu senden.

Im Folgenden beschreiben wir die Handhabung des Quellcodes über das Frontend TortoiseGit. Dieses Frontend ist direkt in den Windows Datei Explorer integriert und verfügt über eine große Benutzer Gemeinschaft um Hilfe bei Problemen zu erhalten.


 * NSIS Dies ist das Programm, um den Windows Installer von FreeCAD zu generieren. (Informationen: Für FreeCAD 0.17 und älter wurde das Programm WiX zur Erstellung des Installers verwendet.)

Quellcode
Jetzt können Sie den Quellcode von FreeCAD erhalten:

Verwendung eines Frontend
Bei Verwendung des Git Frontend TortoiseGit:
 * 1) Erstelle einen neuen Ordner, in dem sich der Quellcode befinden sollte.
 * 2) Klicke mit der rechten Maustaste auf diesen Ordner im Windows Datei Explorer und wähle im Kontextmenü Git Clone.
 * 3) Es erscheint ein Dialogfeld. Verwende dort die Internetadresse für das FreeCAD Repository.

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

und klicke auf OK.

Nun wird der Quellcode heruntergeladen und sein Ordner wird zu einem Ordner, der von Git nachverfolgt wird.

Verwendung der Kommandozeile
Um einen lokalen Trackingzweig zu erstellen und den Quellcode herunterzuladen, öffne ein Terminal (Eingabeaufforderung) und wechsle dort in das Verzeichnis, in dem die Quelle gespeichert werden soll, und gib dann ein:

Kompilierer
Der Standard-Compiler (empfohlen) ist MS Visual Studio (MSVC). Obwohl es möglich sein kann, andere Compiler mit Cygwin oder MinGW gcc zu verwenden, ist es bisher nicht getestet oder portiert worden.

Du kannst eine kostenlose Version von MSVC (für die OpenSource Nutzung) erhalten, indem Du die Gemeinschafts Edition von MS Visual Studio herunterlädst. Verwende dazu diese URL

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

wobei xx die Versionsnummer ist. Um also MSVC 15 (auch MSVC 2017 genannt) zu erhalten, verwende diese URL:

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

Für diejenigen, die die Installation des riesigen MSVC für den reinen Zweck, einen Compiler zu haben, vermeiden wollen, siehe CompileOnWindows - Reducing Disk Footprint.

Note: Obwohl die "Gemeinschafts" version von MSVC kostenlos ist, muss ein Microsoft-Konto erstellt werden, indem man die MSVC-IDE verwendet, damit man die IDE für mehr als 30 Tage nutzen kann. Wenn du nur über die Kommandozeile kompilieren willst, brauchst du die IDE und damit kein Microsoft-Konto.

Als kostenlose und OpenSource alternative IDE kannst du KDevelop verwenden. Du kannst KDevelop verwenden, um C++-Code zu modifizieren und zu schreiben, musst aber die Befehlszeile zum Kompilieren verwenden.

Optionale Systempfad Konfiguration
Optional können die Pfade zu einigen Ordnern in die Systemvariable PATH aufgenommen werden. Dies ist hilfreich, wenn du über die Befehlszeile/Powershell auf Programme in diesen Ordnern zugreifen möchtest oder wenn du möchtest, dass spezielle Programme vom Compiler oder CMake gefunden werden. Außerdem kann es notwendig sein, Ordner zum PATH hinzuzufügen, wenn du bei der Installation des Programms nicht die entsprechenden Optionen verwendet hast.


 * Du kannst den Ordner deines LibPacks in deine System PATH Variable aufnehmen. Dies ist nützlich, wenn du vorhast, mehrere Konfigurationen/Versionen von FreeCAD zu erstellen.
 * Wenn du die Option zum Hinzufügen von CMake zum PFAD während der Installation nicht verwendet hast, füge seinen Installationsordner hinzu.

"C:\\Program Files\CMake\CMake\" zum PATH.
 * Wenn du die Option, TortoiseGit während der Installation zum PFAD hinzuzufügen, nicht genutzt hast, füge seinen Installationsordner hinzu.

C:\Program Files\TortoiseGit\bin zum PATH.

Um der PATH Variablen Ordnerpfade hinzuzufügen:
 * 1) Klicke im Windows-Startmenü mit der rechten Maustaste auf Computer und wähle Eigenschaften.
 * 2) Klicke im erscheinenden Dialog auf Erweiterte Systemeinstellungen.
 * 3) Es öffnet sich ein weiterer Dialog. Klicke dort in der Registerkarte Erweitert auf Umgebungsvariablen.
 * 4) Wieder öffnet sich ein weiterer Dialog. Wähle dann die Variable Pfad und klicke auf Bearbeiten.
 * 5) Und wieder öffnet sich ein weiterer Dialog. Klicke dort auf New' und füge zum PATH zum Ordner von Git oder dem LibPack hinzu.
 * 6) Abschließend drücke OK und schließe alle Dialoge, indem Du ebenfalls OK' drückst.

LibPack
Zuerst muss ein Buildordner eingerichtet werden:
 * 1) Erstelle einen neuen Ordner, in dem sich das kompilierte FreeCAD befinden soll. Es wird dringend empfohlen, dass sich dieser Ordner nicht im Quellcode Ordner von FreeCAD befindet.
 * 2) Erstelle dort einen neuen Unterordner für das LibPack. Note:Der Name dieses Unterordners muss mit dem LibPack Dateinamen identisch sein. Wenn z.B. das LibPack den Dateinamen FreeCADLibs_12.1.2_x64_VC15.7z hat, musst Du den Unterordner FreeCADLibs_12.1.2_x64_VC15 nennen.
 * 3) Entpacke das LibPack in diesen Unterordner.

CMake
Nun muss die Buildumgebung mit CMake konfiguriert werden:
 * 1) Öffne die CMake GUI.
 * 2) Gib dort den Quellordner von FreeCAD an.
 * 3) Gib den Buildordner an, den du gerade im vorherigen Schritt erstellt hast.
 * 4) Klicke auf Konfigurieren'.
 * 5) In dem erscheinenden Dialogfeld gib den Erzeuger entsprechend  an, den Du verwenden möchtest. Für das Standard-MS Visual Studio verwende Visual Studio xx 2yyyyy, wobei xx die Compiler Version und yyyy das Jahr ihrer Veröffentlichung ist. Es wird empfohlen, die Standardoption Use default native compilers zu verwenden.

Note: Iist es wichtig, die richtige Bitvariante anzugeben. Wenn du die 64bit Variante von LibPack hast, musst du auch den x64 Compiler verwenden.

Dies wird mit der Konfiguration beginnen und schlägt wegen fehlender Einstellungen fehl.

Wenn es mit der Meldung fehlschlägt, dass Visual Studio nicht gefunden werden konnte, ist die CMake-Unterstützung in MSVC noch nicht installiert. Um das zu tun:
 * 1) Öffne die MSVC IDE.
 * 2) Verwende das Menü Tools → Get Tools and Features
 * 3) Aktiviere auf der Registerkarte 'Workloads Desktop-Entwicklung mit C++'''.
 * 4) Auf der rechten Seite solltest Du nun sehen, dass die Komponente Visual C++ tools for CMake installiert wird.
 * 5) Installiere es.

Wenn es keinen Fehler bei Visual Studio gibt, ist alles in Ordnung, aber CMake kennt noch nicht alle notwendigen Einstellungen. Deshalb jetzt:
 * 1) Vergewissere Dich, dass die Suchoption Erweitert aktiviert ist.
 * 2) Suche in CMake nach der Variable FREECAD_LIBPACK_DIR' und gib dort den richtigen Speicherort für den LibPack-Ordner an.
 * 3) Suche nach der Variablen BUILD_QT5' und aktiviere diese Option.
 * 4) Klicke erneut auf Configure'.

Es sollte nun keine Fehler geben. Wenn ja, klicke auf Generate'. Danach kannst Du CMake schließen und mit der Kompilierung von FreeCAD fortfahren. Halte es jedoch für den Fall, dass einige Optionen für den Build-Prozess geändert werden sollen oder müssen, für die erste Kompilierung offen:

Optionen für den Build Prozess
Das CMake Build-System gibt Dir die Flexibilität über den Build-Prozess. Das bedeutet, dass du einige Funktionen oder Module über CMake-Variablen ein- und ausschalten kannst.

Hier ist eine Beschreibung für einige dieser Variablen:

Building FreeCAD
Depending on your compiler, the process for building FreeCAD will be slightly different. In the following sections you known workflows are described. If you are building with Qt Creator, jump to Building with Qt Creator, otherwise proceed directly:

Building with Visual Studio 15 2017

 * 1) Start the Visual Studio IDE. This can either be done by pressing the button Open Project in the CMake GUI or by double-clicking on the file FreeCAD.sln that you find in your build folder.
 * 2) In the toolbar of the MSVC IDE assure that you use for the first compilation Release.
 * 3) There is a window called Solution explorer. it lists all possible compilation targets.

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

To compile a ready-to use FreeCAD, compile the target INSTALL, see section Running and installing FreeCAD.

If you don't get any errors you are done. Congratulations! You can exit MSVC or keep it open.

Building with Visual Studio 12 2013
Make sure to specify Visual Studio 12 x64(or the alternate C-Compiler you are using) as the generator in CMake before you continue.


 * Start Visual Studio 12 2013 by clicking on the desktop icon created at installation.

File → Open → Project/Solution
 * Open the project by:


 * Open FreeCAD_Trunk.sln from the build folder CMake created

This may take a while depending on your sytem
 * Switch the Solutions Configuration drop down at the top to Release X64


 * Build → Build Solution


 * This will take a long time...

If you don't get any errors you are done. Exit Visual Studio and start FreeCAD by double clicking the FreeCAD icon in the bin folder of the build directory.

Installation and configuration of Qt Creator

 * Download and install Qt Creator
 * Tools → Options → Text Editor → Behavior tab:
 * File Encodings → Default Encodings:
 * Set to: ISO-8859-1 /...csISOLatin1 (Certain characters create errors/warnings with Qt Creator if left set to UTF-8. This seems to fix it.)
 * 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: Auto detected...
 * Qt version: None
 * General tab
 * Uncheck: Always build project before deploying it
 * Uncheck: Always deploy project before running it

Import project and building

 * File → Open File or Project
 * Open CMakeLists.txt which is in the top level of the source
 * This will start CMake
 * Choose build directory and click next
 * Set generator to NMake Generator (MSVC 2008)
 * Click Run CMake. Follow the instructions depicted above to configure CMake to your liking.

Now FreeCAD can be built
 * Build → Build All
 * This will take a long time...

Once complete, it can be run: There are 2 green triangles at the bottom left. One is debug. The other is run. Pick whichever you want.

Command line build
The steps how to compile from the command line depends on the compiler. For MSVC 2017 the steps are:
 * 1) In Windows' start menu go to  and choose Developer Command Prompt for VS 2017
 * 2) Change to your build folder.
 * 3) Execute the command

or

These steps can also be automaized. Here is for example a solution for MSVC 2017:
 * 1) Download the script compile-FC.txt.
 * 2) Rename it to compile-FC.bat
 * 3) In Winddows' file explorer Shift+Right-click on your build folder and use from the context menu Command prompt here.
 * 4) Execute the command

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

Ausführen und Installieren von FreeCAD
Es gibt 2 Methoden, um das kompilierte FreeCAD auszuführen:

Methode 1: Du führst die FreeCAD.exe aus, die du in deinem Build Verzeichnis findest, im Unterverzeichnis bin'''.

Methode 2: Du baust das Ziel 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 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:
 * 1) Open the CMake GUI.
 * 2) Search there for the variable option FREECAD_COPY_DEPEND_DIRS_TO_BUILD and check it.
 * 3) Search there for the variable option FREECAD_COPY_LIBPACK_BIN_TO_BUILD and check it.
 * 4) Click on Configure. At the end of the configuration CMake will automatically copy the necessary libraries from the LibPack folder.

For FreeCAD 0.19 there is currently only one issue that requires manual action:
 * 1) Download the file qwindowsvistastyle.zip from the FreeCAD forum.
 * 2) Create a new subfolder named styles in the bin folder (where the FreeCAD.exe is).
 * 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.

Aktualisierung des Build
FreeCAD ist sehr aktiv entwickelt. Daher ändert sich der Quellcode fast täglich. Neue Funktionen wurden hinzugefügt und Fehler behoben. Um von diesen Quellcode-Änderungen zu profitieren, musst Du Dein FreeCAD neu erstellen. Dies geschieht in zwei Schritten:
 * 1) Aktualisierung des Quellcodes
 * 2) Rekompilierung

Verwendung eines Frontends
Bei Verwendung des Git Frontend TortoiseGit:
 * 1) Klicke mit der rechten Maustaste auf deinen FreeCAD Quellcode Ordner im Windows Datei Explorer und wähle im Kontextmenü Pull'.
 * 2) Es erscheint ein Dialogfeld. Wähle dort aus, welchen Entwicklungszweig Du bekommen möchtest. master' ist der Hauptzweig. Verwendedies daher, es sei denn, du möchtest ein spezielles neues Feature aus einem Zweig kompilieren, der noch nicht mit master zusammengeführt wurde. (Für weitere Informationen über Git-Zweige siehe Git development process.)

Klicke abschließend auf OK'.

Verwendung der Kommandozeile
Öffne ein Terminal (Eingabeaufforderung) und wechsle dort in dein Quellverzeichnis. Dann tippe:

wobei master der Name des Hauptentwicklungszweiges ist. Wenn du Code von einem anderen Zweig erhalten möchtest, verwende dessen Namen anstelle von master.

Rekompilierung

 * 1) Öffne die MSVC-IDE, indem Du entweder auf die Datei FreeCAD.sln oder auf die Datei ALL_BUILD.vcxproj in Deinem Build-Verzeichnis doppelklickst.
 * 2) Fahre mit Schritt 2 aus Abschnitt Building with Visual Studio 15 2017 fort.

Referenzen
Siehe auch
 * Kompilieren unter Windows mit Visual Studio 2013
 * Kompilieren - Beschleunigen