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

Source code
Now you can get the source code of FreeCAD:

Using a frontend
When using the Git frontend TortoiseGit:
 * 1) Create a new folder where the source code should be.
 * 2) Right-click on this folder in the Windows file explorer and select in the context menu Git Clone.
 * 3) A dialog will appear. Use there as URL for the FreeCAD repository

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

and click OK.

Now the source code is downloaded and its folder becomes a folder tracked by Git.

Using the command line
To create a local tracking branch and download the source code, open a terminal (command prompt) and switch there to the directory you want the source, then type:

Compiler
The default (recommended) compiler is MS Visual Studio (MSVC). Though it may be possible to use other compilers using Cygwin or MinGW gcc it is not tested or ported so far.

You can get a free version of MSVC (for OpenSource usage) by downloading the Community edition of MS Visual Studio. To do so, use this URL

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

where xx is the version number. So to get MSVC 15 (calso called MSVC 2017), use this URL:

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

For those who want to avoid installing the huge MSVC for the mere purpose of having a compiler, see CompileOnWindows - Reducing Disk Footprint.

Note: Despite that the Community edition of MSVC is free, you must create a Microsoft account from withing the MSVC IDE that you can use the IDE for more than 30 days. If you will only compile using the command line, you don't need the IDE and thus no Microsoft account.

As free and OpenSource alternative IDE you can use KDevelop. You can use KDevelop to modify and write C++ code but must use the command line to compile.

Optional system path configuration
Optionally you can include the paths to some folders to the system PATH variable. This is helpful if you want to access programs in these folders from the command line/powershell or if you want special programs to be found by the compiler or CMake. Besides this, adding folders to the PATH might be necessary if you did not use the corresponding options when installing the program.


 * You can include the folder of your LibPack in your system PATH variable. This is useful if you plan to build multiple configurations/versions of FreeCAD.
 * If you did not use the option to add CMake to the PATH while installing it, add its installation folder

C:\Program Files\CMake\bin to the PATH.
 * If you did not use the option to add TortoiseGit to the PATH while installing it, add its installation folder

C:\Program Files\TortoiseGit\bin to the PATH.

To add folder paths to the PATH variable:
 * 1) In the Windows Start menu Right click on Computer and choose Properties.
 * 2) In the appearing dialog click on Advanced system settings.
 * 3) Another dialog will open. Click there in the tab Advanced on Environment Variables.
 * 4) Again another dialog will open. Select then the variable Path and click on Edit.
 * 5) And again another dialog will open. Click there on New and add to path to the folder of Git or the LibPack.
 * 6) Finally press OK and close all dialogs by pressing OK as well.

LibPack
At first you need to setup a build folder:
 * 1) Create a new folder where the compiled FreeCAD should be. It is highly recommended that this folder is not inside the source code folder of FreeCAD.
 * 2) Create there a new subfolder for the LibPack. Note: The name of this subfolder must be the same as the LibPack file name. If e.g. the LibPack has the filename FreeCADLibs_12.1.2_x64_VC15.7z, you must name the subfolder FreeCADLibs_12.1.2_x64_VC15.
 * 3) Extract the LibPack to this subfolder.

CMake
Now you need to configure the build environment using CMake:
 * 1) Open the CMake GUI
 * 2) Specify there the source folder of FreeCAD
 * 3) Specify the build folder you just created in the previous step.
 * 4) Click Configure
 * 5) 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 ad yyy 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.

This will begin the configuration and will fail because of missing settings.

If it fails with the message that Visual Studio could not be found the CMake support in MSVC is not yet installed. To do this:
 * 1)  Open the MSVC IDE
 * 2)  Use the menu Tools → Get Tools and Features
 * 3)  In the Workloads tab enable Desktop development with C++
 * 4) On the right side you should now see that the component Visual C++ tools for CMake will be installed.
 * 5) Install it.

If there is no error about Visual Studio, everything is fine, but CMake does not yet know all necessary settings. Therefore now:
 * 1) Assure that the search option Advanced is checked.
 * 2) Search in CMake for the variable FREECAD_LIBPACK_DIR and specify there the correct location to the LibPack folder.
 * 3) Search for the variable BUILD_QT5 and enable this option.
 * 4) Click Configure again

There should now be no errors. If so, click on Generate. After this is done you could close CMake and continue to start the compilation of FreeCAD. However, for the first compilation keep it open for the case that you want or need to change some options for the build process:

Options for the build process
The CMake build system gives you the flexibility over the build process. That means you can switch on and off some features or modules by CMake variables.

Here is a description for some of these variables:

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

Running and installing FreeCAD
There are 2 methods to run the compiled FreeCAD:

Method 1: You execute the FreeCAD.exe that you find in your build folder in the subfolder bin

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

Updating the build
FreeCAD is very actively developed. Therefore its source code changes almost daily. New features are added and bugs are fixed. To benefit from these source code changes, you must rebuild your FreeCAD. This is done in two steps:
 * 1) Updating the source code
 * 2) Recompilation

Using a frontend
When using the Git frontend TortoiseGit:
 * 1) Right-click on your FreeCAD source code folder in the Windows file explorer and select in the context menu Pull.
 * 2) A dialog will appear. Select there what development branch you want to get. master is the main branch. Therefore use this unless you want to compile a special new feature from a branch that has not yet been merged to master. (For more about Git branches, see Git development process.)

Finally click OK.

Using the command line
Open a terminal (command prompt) and switch there to your source directory. Then type:

where master the the name of the main development branch. If you want to get code from another branch, use its name instead of master.

Recompilation

 * 1) Open the MSVC IDE by double-clicking either on the file FreeCAD.sln or on the file ALL_BUILD.vcxproj in your build folder.
 * 2) Continue with step 2 from section Building with Visual Studio 15 2017.