Compile on Windows/de

Diese Seite erklärt Schritt für Schritt, wie FreeCAD 0.18 oder neuer unter Windows kompiliert werden kann.

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 kannst Du den Quellcode von FreeCAD bekommen:

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.

Hinweis: Es ist 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:

FreeCAD bauen
Abhängig von deinem Compiler wird der Prozess zur Erstellung von FreeCAD etwas anders ablaufen. In den folgenden Abschnitten werden die bekannten Arbeitsabläufe beschrieben. Wenn Du mit Qt Creator baust, gehe zu Bau mit Qt Erzeuger, ansonsten fahre direkt fort:

Bau mit Visual Studio 15 2017

 * 1) Starte das Visual Studio IDE. Dies kann entweder durch Drücken der Schaltfläche Projekt öffnen in der CMake GUI oder durch Doppelklicken auf die Datei FreeCAD.sln, die Du in Deinem Buildordner findest, geschehen.
 * 2) Stelle in der Symbolleiste der MSVC IDE sicher, dass Du für die erste Kompilierung Release' verwendest.
 * 3) Es gibt ein Fenster namens Solution' Explorer. Es listet alle möglichen Kompilierungsziele auf.

Um eine vollständige Kompilierung zu starten, klicke mit der rechten Maustaste auf das Ziel ALL_BUILD und wähle dann Build. Das wird nun ziemlich lange dauern.

Um ein einsatzbereites FreeCAD zu kompilieren, kompiliere das Ziel INSTALL, siehe Abschnitt Ausführen und Installieren von FreeCAD.

Wenn Du keine Fehler bekommst, ist das erledigt. "Herzlichen Glückwunsch! Du kannst MSVC beenden oder offen lassen.

Bau mit Visual Studio 12 2013
Stelle sicher, dass Du Visual Studio 12 x64 (oder den alternativen C-Compiler, den Du verwendest) als Erzeuger in CMake angibst, bevor Du weitermachst.


 * Starte Visual Studio 12 2013, indem Du auf das bei der Installation erstellte Desktop Symbol klickst.

Datei → Öffnen → Projekt/Lösung
 * Öffne das Projekt durch:


 * Öffne FreeCAD_Trunk.sln aus dem Buildordner CMake created.

Dies kann je nach System eine Weile dauern.
 * Schalte die Dropdown-Liste Lösungskonfiguration oben nach unten auf Release X64.


 * Bau → Lösung erstellen


 * Das wird lange dauern.....

Wenn Du keine Fehler bekommst, bist Du damit fertig. Beende Visual Studio und starte FreeCAD mit einem Doppelklick auf das FreeCAD Symbol im bin Ordner des Build Verzeichnisses.

Installation und Konfiguration des Qt Erzeugers

 * Herunterladen und installieren Qt Creator
 * Werkzeuge → Optionen → Texteditor → Registerkarte Verhalten:
 * Dateikodierungen → Standard-Kodierungen:
 * Gesetzt auf: ISO-8859-1 /...csISOLatin1' (Bestimmte Zeichen erzeugen Fehler/Warnungen mit Qt Creator, wenn sie auf UTF-8 gesetzt sind. Das scheint es zu beheben.)
 * Werkzeuge → Optionen → Bau & Lauf:
 * CMake Registerkarte
 * Fülle das Feld Ausführung mit dem Pfad zu cmake.exe aus.
 * Registerkarte Kits
 * Name: MSVC 2008
 * Compiler: Microsoft Visual C++ Compiler 9.0 (x86)
 * Debugger: Automatische Erkennung.....
 * Qt-Version: Keine
 * Registerkarte Allgemein
 * Deaktiviere das Kontrollkästchen: Erstelle immer ein Projekt, bevor Du es einsetzt.
 * Deaktiviere das Kontrollkästchen: Stelle das Projekt immer vor der Ausführung bereit.

Projektimport und Bau

 * Datei → Datei oder Projekt öffnen
 * Öffne CMakeLists.txt', das sich in der obersten Ebene der Quelle befindet.
 * Dadurch wird CMake gestartet.
 * Wähle das Build Verzeichnis und klicke auf Weiter.
 * Setze den Generator auf NMake Generator (MSVC 2008)'.
 * Klicke auf CMake ausführen. Folge den oben dargestellten Anweisungen, um CMake nach Deinen Wünschen zu konfigurieren.

Jetzt kann FreeCAD erstellt werden.
 * Bau → Baue alle
 * Das wird lange dauern.....

Nach Fertigstellung kann es ausgeführt werden: Unten links befinden sich 2 grüne Dreiecke. Eine davon ist Fehlersuche. Der andere wird ausgeführt. Wähle, was immer du willst.

Kommandozeilen Bau
Die Schritte, wie man von der Kommandozeile aus kompiliert, hängen vom Compiler ab. Für MSVC 2017 sind die Schritte:
 * 1) In Windows' Startmenü gehen Sie zu  und wähle Developer Command Prompt for VS 2017.
 * 2) Wechsle in deinen Buildordner.
 * 3) Führe den Befehl aus

oder

Diese Schritte können auch automatisiert werden. Hier ist zum Beispiel eine Lösung für MSVC 2017:
 * 1) Lade das Skript herunter compile-FC.txt.
 * 2) Umbenennen in compile-FC.bat'.
 * 3) Klicke im Datei Explorer von Windows mit der rechten Maustaste auf Dein Build Verzeichnis und benutze aus dem Kontextmenü Befehlszeile hier.
 * 4) Führe den Befehl aus

Anstatt compile-FC mit der Option install aufzurufen, kannst Du auch debug oder release verwenden:

debug  - FreeCAD in Fehlersuchkonfiguration kompilieren

release - kompiliere FreeCAD in der Veröffentlichungskonfiguration.

install    - kompiliert FreeCAD in der Freigabekonfiguration und erstellt ein Installationssetup.

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

Methode 2 ist die einfachere, da sie automatisch sicherstellt, dass sich alle für die Ausführung der FreeCAD.exe erforderlichen Bibliotheken im richtigen Ordner befinden. Die FreeCAD.exe und die Bibliotheken werden in dem Ordner ausgegeben, den du in der CMake-Variablen CMAKE_INSTALL_PREFIX angegeben hast.

Für Methode 1 müssen die Bibliotheken in den Ordner bin deines Buildordners (wo sich die FreeCAD.exe befindet) gelegt werden. Dies ist einfach zu bewerkstelligen:
 * 1) Öffne die CMake GUI.
 * 2) Suche dort nach der Variablenoption FREECAD_DEPEND_DIRS_TO_BUILD und überprüfe diese.
 * 3) Suche dort nach der Variablenoption FREECAD_LIBPACK_BIN_TO_BUILD und überprüfe diese.
 * 4) Klicke auf Konfigurieren. Am Ende der Konfiguration kopiert CMake automatisch die notwendigen Bibliotheken aus dem LibPack-Ordner.

Für FreeCAD 0.19 gibt es derzeit nur ein Problem, das manuelle Maßnahmen erfordert:
 * 1) Lade die Datei qwindowsvistastyle.zip aus dem FreeCAD Forum herunter.
 * 2) Erstelle einen neuen Unterordner namens styles im Ordner bin (wo sich die FreeCAD.exe befindet).
 * 3) Entpacke die ZIP-Datei in diesen Ordner.

Dies fügt den notwendigen Stil hinzu, damit FreeCAD wie ein normales Win 10-Programm aussieht. Ansonsten sieht es aus wie unter 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