Compile on Windows/ro: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
(41 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{docnav|Tracker|CompileOnUnix}}


{{Docnav/ro
Acest articol explică pas cu pas '''how to compile FreeCAD on Windows'''.
|[[Licence/ro|Licence]]
|[[Compile_on_Linux/ro|Compile on Linux]]
}}


{{TOCright}}
A se vedea și

* [[Compile_on_Windows_with_VS2013|Compile on Windows with Visual Studio 2013]]
<div class="mw-translate-fuzzy">
* [[Compiling_(Speeding_up)|Compiling - Speeding up]]
Acest articol explică pas cu pas '''how to compile FreeCAD on Windows'''.
</div>


== Premise ==
== Premise ==

Compiling FreeCAD on Windows requires several tools and libraries.


===Programe necesare===
===Programe necesare===
Line 14: Line 20:
* [http://www.cmake.org/cmake/resources/software.html CMake] versiunea 2.x.x sau Cmake 3.x.x
* [http://www.cmake.org/cmake/resources/software.html CMake] versiunea 2.x.x sau Cmake 3.x.x
* Python >2.5 (Acest lucru este necesar numai dacă NU utilizați Libpack. Libpack este livrat încpând cu Python(2.7.x) potrivit pentru compilarea și rularea FreeCAD)
* Python >2.5 (Acest lucru este necesar numai dacă NU utilizați Libpack. Libpack este livrat încpând cu Python(2.7.x) potrivit pentru compilarea și rularea FreeCAD)

* A compiler. FreeCAD is tested with Visual Studio (MSVC)—other compilers may work, but instructions for use are not included here. More details in [[#Compiler]], below.

* [http://git-scm.com/ Git] (There are also GUI frontends available for Git, see the next section.)

* [https://cmake.org/download/ CMake] version 3.11.x or newer. </br> ''Hint:'' Choosing the option ''Add CMake to the system PATH for all users'' when installing CMake will make CMake accessible from the Windows command prompt, which can be useful.

* The [https://github.com/FreeCAD/FreeCAD-LibPack LibPack]. This is a single package containing all of the libraries necessary to compile FreeCAD on Windows. Download the version of the LibPack that corresponds to the version of FreeCAD you want to compile. To compile FreeCAD 0.20 download the [https://github.com/FreeCAD/FreeCAD-LibPack/releases/tag/2.6 LibPack version 2.6], for FreeCAD 0.19 download the [https://github.com/FreeCAD/FreeCAD-LibPack/releases/tag/1.0 LibPack version 1.0]. Extract the LibPack to a convenient location. (If your computer does not recognize the .7z extension, you must install the program [https://www.7-zip.org 7-zip].) </br> '''Note''': It is highly recommended to compile FreeCAD with the compiler version the LibPack is designed for. For example, you might run into problems compiling FreeCAD 0.20 using MSVC&nbsp;2017 because the LibPack is designed to be built with MSVC&nbsp;2019 or newer.

===Optional programs===

* A GUI frontend for Git. There are several frontends available, see [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs this list]. The main benefit of a frontend is that you don't have to learn the Git commands to get the source code of FreeCAD or to send patches to the GitHub repository of FreeCAD.

In the following we describe source code handling using the [https://tortoisegit.org/ TortoiseGit] frontend. This frontend integrates directly into Windows file explorer and has a large user community to get help in case you have problems.

* [http://sourceforge.net/projects/nsis/ NSIS] is used to generate the FreeCAD Windows installer.


===Codul sursă===
===Codul sursă===
====Utilizați Git (de preferință)====
====Utilizați Git (de preferință)====

Now you can get the source code of FreeCAD:

====Using a frontend====

When using the [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs Git frontend] TortoiseGit:
# Create a new folder where the source code will be downloaded.
# Right-click on this folder in the Windows file explorer and select '''Git Clone''' in the context menu.
# A dialog will appear. In it, enter the URL for the FreeCAD Git repository

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

and click '''OK'''.

The latest source code will be downloaded from the FreeCAD Git repository and the folder will be tracked by Git.

====Using the command line====


Pentru a crea o ramură de urmărire locală și pentru a descărca codul sursă, trebuie să deschideți un terminal (promp de comandă) și cd(change directory) în directorul pe care doriți să plasați codul sursă, apoi tastați:
Pentru a crea o ramură de urmărire locală și pentru a descărca codul sursă, trebuie să deschideți un terminal (promp de comandă) și cd(change directory) în directorul pe care doriți să plasați codul sursă, apoi tastați:


{{Code|code=
<div class="mw-translate-fuzzy">
<syntaxhighlight>git clone https://github.com/FreeCAD/FreeCAD.git FreeCAD-code</syntaxhighlight>
git clone https://github.com/FreeCAD/FreeCAD.git
}}
</div>


===Compilator===
===Compilator===
Line 28: Line 67:
[https://github.com/FreeCAD/FreeCAD/blob/master/appveyor.yml CI] utilizează versiunea din 2013.
[https://github.com/FreeCAD/FreeCAD/blob/master/appveyor.yml CI] utilizează versiunea din 2013.


The default (recommended) compiler is MS Visual Studio (MSVC). Though it may be possible to use other compilers, for example gcc via Cygwin or MinGW, it is not tested or covered here.
Pentru cei care doresc să evite instalarea imensului Visual Studio pentru simplul scop de a avea un compilator, vezi [[CompileOnWindows - Reducing Disk Footprint]].


You can get a free version of MSVC (for individual usage) by downloading the [https://visualstudio.microsoft.com/vs/community/ ''Community'' edition of MS Visual Studio].
{{Note|Note|Though it may be possible to use Cygwin or MinGW gcc it's not tested or ported so far.}}

Pentru cei care doresc să evite instalarea imensului Visual Studio pentru simplul scop de a avea un compilator, vezi [[CompileOnWindows - Reducing Disk Footprint]].


'''Note:''' Although the ''Community'' edition of MSVC is free, to use the IDE for more than a 30-day trial period you must create a Microsoft account. If you will only compile using the command line, you don't need the IDE and thus no Microsoft account.
===Biblioteci de la terți===
Veți avea nevoie de [[Third Party Libraries]] pentru a compila cu succes FreeCAD. Dacă utilizați compilatoare MS, se recomandă să instalați a [https://github.com/FreeCAD/FreeCAD-ports-cache/releases FreeCAD LibPack],, care oferă toate bibliotecile necesare pentru a construi FreeCAD sub Windows. Veți avea nevoie de Libpack pentru arhitectura și compilatorul dvs. FreeCAD furnizează în prezent Libpack Version11 for x32 and x64, pentru VS9 2008, VS11 2012, și VS12 2013.


As a free and OpenSource alternative IDE you can use [https://www.kdevelop.org/download KDevelop]. You can use KDevelop to modify and write C++ code but must use the command line to compile.
===Programe opționale===
* [http://sourceforge.net/projects/nsis/ NSIS] Windows installer (note: formerly, [http://wixtoolset.org/ WiX] instalator a fost folosit - acum în tranziție la NSIS) - dacă doriți să faceți instalare Msi


===Configurarea căii de sistem===
===Configurarea căii de sistem===
Line 43: Line 82:
*În mod opțional, puteți include Libpack în calea dvs. de sistem. Acest lucru este util dacă intenționați să construiți mai multe configurații / versiuni ale FreeCAD, va trebui să copiați mai puține fișiere după cum este explicat mai târziu în procesul de rulare.
*În mod opțional, puteți include Libpack în calea dvs. de sistem. Acest lucru este util dacă intenționați să construiți mai multe configurații / versiuni ale FreeCAD, va trebui să copiați mai puține fișiere după cum este explicat mai târziu în procesul de rulare.


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.
Pentru a adăuga la cale asitemului dvs:


* 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.
<div class="mw-translate-fuzzy">
* If you did not use the option to add CMake to the PATH while installing it, add its installation folder
* Start menu -> Right click on Computer -> Properties -> Advanced system settings
* Advanced tab -> Environment Variables...
* Add the PATH/TO/GIT to the '''PATH'''
* It should be separated from the others with a semicolon `;`
</div>


''C:\Program Files\CMake\bin'' to the PATH.
== Configurare cu CMake ==
* 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.
=== Comutarea la CMake ===
{{Note|Warning|De la versiunea 0.9 a FreeCAD am stopat furnizarea fișierelor .vcproj }}
În prezent, FreeCAD utilizează sistemul de compilație CMake pentru a genera construirea și a crea fișiere care pot fi utilizate cu diferite sisteme de operare și compilatoare.
Dacă doriți să construiți versiuni de construire anterioare lui FreeCAD (0.8 și mai vechi) vezi mai jos în acest articol [[#Building older versions|Building older versions]].


Pentru a adăuga la cale asitemului dvs:
Am schimbat pentru că a devenit din ce în ce mai dureros să păstrați fișiere de proiect pentru 30+ fișire și a compila pentru x compilatoare
CMake ne dă posibilitatea de a susține alte IDEs, ca de exemplu Code::Blocks, Qt Creator și Eclipse CDT.
Compilatorul principal este totuși MS VC9 Express, deși. Dar planificăm pentru viitor un proces de complialre Windows fără software compilator proprietar.


=== CMake ===
== Configurare cu CMake ==
Primul pas pentru a compila FreeCAD cu CMake este de a configura mediul. Acolo
sunt două moduri de a face acest lucru:
* Utilizând LibPack
* Instalând toae pachetele necesare și a lăsa CMake să le găsească


Once you have all of the necessary tools, libraries, and FreeCAD source code, you are ready to begin the configuration and compilation process. This process will proceed in five steps:
# Run CMake once to examine your system and begin the configuration progress (this will report that it failed).
# Adjust necessary CMake settings to set the locations of the LibPack and enable Qt5.
# Re-run CMake to finalize the configuration (this time it should succeed).
# Use CMake to generate the Visual Studio build system.
# Use Visual Studio to build FreeCAD.


===CMake===
Următorul proces va presupune că utilizați LibPack. A doua opțiune poate fi discutată
în [[#Options for the Build Process|Options for the Build Process]].


First, configure the build environment using CMake:
=== Configurare CMake în GUI ===
* Open the CMake GUI
# Open the CMake GUI
* Specify the source folder
# Specify the source folder of FreeCAD.
# Specify a build folder (do not use the source folder -- CMake will create this folder if it does not exist).
* Specify the build folder
* Click '''Configure'''
# Click '''Configure'''.
# In the dialog that appears specify the generator you want to use: in most cases you will use the defaults in this dialog. For the standard MS Visual Studio use ''Visual Studio xx 2yyy'' where xx is the compiler version and 2yyy the year of its release. It is recommended to use the default option ''Use default native compilers''.
* Specify the generator according to the IDE that you'll use.


'''Note:''' It is important to specify the correct bit variant. If you have the 64-bit variant of the LibPack you must also use the x64 compiler.


<div class="mw-translate-fuzzy">
Aceasta va începe configurarea și ar trebui să eșueze deoarece locația
Aceasta va începe configurarea și ar trebui să eșueze deoarece locația
'''FREECAD_LIBPACK_DIR''' is unset.
'''FREECAD_LIBPACK_DIR''' is unset.
Line 91: Line 125:
* Close CMake
* Close CMake
* Copy '''libpack\bin''' folder into the new build folder CMake created
* Copy '''libpack\bin''' folder into the new build folder CMake created
</div>

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:
# Open the MSVC IDE
# Use the menu Tools → Get Tools and Features
# In the ''Workloads'' tab enable ''Desktop development with C++''
# On the right side you should now see that the component ''Visual C++ tools for CMake'' will be installed.
# Install it.

If it fails with a message about the wrong Python version or missing Python, then:
# Use the "Search:" box in CMake to search for the string "Python"
# If you see there a path like ''C:/Program Files/Python38/python.exe'', CMake recognized the Python that is already installed on your PC, but that version is not compatible with the LibPack. Since the LibPack includes a compatible version of Python, modify the following Python settings in CMake to its paths (assuming the LibPack is in the folder ''D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17''):
[[File:CMake_Python_settings.png]]

If there is no error about Visual Studio or Python, everything is fine, but CMake does not yet know all necessary settings. Therefore now:
# Search in CMake for the variable '''FREECAD_LIBPACK_DIR''' and specify the location of the LibPack folder you downloaded earlier.
# Only if building FreeCAD 0.19, search for the variable '''BUILD_QT5''' and enable this option.
# Click '''Configure''' again.

There should now be no errors. If you continue to encounter errors that you cannot diagnose, visit the [https://forum.freecadweb.org/viewforum.php?f=4 Install/Compile forum] on the FreeCAD forum website. If CMake proceeded correctly, click on '''Generate'''. After this is done you can close CMake and start the compilation of FreeCAD using Visual Studio. However, for the first compilation keep it open in case you want or need to change some options for the build process.

'''Note:''' When compiling FreeCAD 0.19, the CMake variable '''BUILD_ENABLE_CXX_STD''' will be set to '''C++14''' while for FreeCAD 0.20 it will be set to '''C++17'''. This is because FreeCAD 0.20 requires at least the C++ language standard version 17. So when you compiled the last time FreeCAD 0.19 it is necessary to re-run CMake for FreeCAD 0.20 to change the C++ language standard.


=== Opțiuni pentru compilarea Proceselor ===
=== Opțiuni pentru compilarea Proceselor ===


<div class="mw-translate-fuzzy">
Sistemul de compilare CMake ne oferă o mult mai mare flexibilitate în procesul de compilare. Asta înseamnă că
Sistemul de compilare CMake ne oferă o mult mai mare flexibilitate în procesul de compilare. Asta înseamnă că
putem porni și dezactiva câteva funcționalități sau module. Este într-un fel ca compilarea kernel-ului Linux.
putem porni și dezactiva câteva funcționalități sau module. Este într-un fel ca compilarea kernel-ului Linux.
Aveți o mulțime de comutatoare pentru a determina procesul de compilare.
Aveți o mulțime de comutatoare pentru a determina procesul de compilare.
</div>


<div class="mw-translate-fuzzy">
Iată descrierea unora dintre aceste switch-uri. Probabil că se vor schimba mult în viitor
Iată descrierea unora dintre aceste switch-uri. Probabil că se vor schimba mult în viitor
pentru că vrem să creștem flexibilitatea compilării mult mai mult.
pentru că vrem să creștem flexibilitatea compilării mult mai mult.
</div>


<div class="mw-translate-fuzzy">

{| class="wikitable" style="text-align:left"
{| class="wikitable" style="text-align:left"
|+ Link table
|+ Link table
Line 121: Line 181:
| FREECAD_MAINTAINERS_BUILD || Switch on stuff needed only when you do a Release build. || OFF
| FREECAD_MAINTAINERS_BUILD || Switch on stuff needed only when you do a Release build. || OFF
|}
|}
</div>

Dacă compilați Qt Creator, săriți la
[[#Building with Qt Creator|Building with Qt Creator]],
altfel procedați la
[[#Building with Visual Studio 9 2008|Building with Visual Studio 9 2008]].


== Compilarea FreeCAD ==
== Compilarea FreeCAD ==
În funcție de configurația actuală, procesul de construire a FreeCAD va fi ușor diferit. Acest lucru se datorează diferențelor dintre versiunile de software disponibile pentru fiecare sistem de operare.
În funcție de configurația actuală, procesul de construire a FreeCAD va fi ușor diferit. Acest lucru se datorează diferențelor dintre versiunile de software disponibile pentru fiecare sistem de operare.


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|Building with Qt Creator]], otherwise proceed directly:
The following procedure will work for compiling on Windows Vista/7/8, for XP an alternate VS tool set is required for VS 2012 and 2013, which has not been tested successfully with the current Libpacks. To target XP(both x32 and x64) it is recommended to use VS2008 and Libpack FreeCADLibs_11.0_x86_VC9.7z


<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


=== Building with Visual Studio 15 (2017), 16 (2019), and 17 (2022) ===
<div class="mw-translate-fuzzy">
<div class="mw-collapsible mw-collapsed toccolours">
=== Building with Visual Studio 12 2013 ===
<div class="mw-collapsible-content">
Make sure to specify '''Visual Studio 12 x64'''(or the alternate C-Compiler you are using) as the generator in CMake before you continue.
</div>


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


==== Release Build ====
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.
# 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.
# In the toolbar of the MSVC IDE assure that you use for the first compilation ''Release''.
# 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|Running and installing FreeCAD]].
<div class="mw-translate-fuzzy">
*Open the project by:
File -> Open -> Project/Solution
</div>


If you don't get any errors you are done. '''Congratulations!''' You can exit MSVC or keep it open.
*Open FreeCAD_Trunk.sln from the build folder CMake created


'''Note:''' FreeCAD 0.20 requires at least the C++ language standard version 17 but the 3rd-party component ''flann'' from the LibPack is not yet ready for this. Therefore you will get compilation errors for the target ''ReverseEngineering''. To fix this, right-click on this target in the MSVC solution explorer and select in the context menu the last entry ''Properties''. In the appearing dialog change the '''C++ Language Standard''' to '''ISO C++14'''. Finally build the target '''ALL_BUILD''' again.
*Switch the Solutions Configuration drop down at the top to '''Release''' '''X64'''
This may take a while depending on your sytem


==== Debug Build ====
<div class="mw-translate-fuzzy">
*Build -> Build Solution
</div>


For a debug build it is necessary that the Python is used that is included in the LibPack. To assure this:
*This will take a long time...
# Search in the CMake GUI for "Python"
# If you see there a path like ''C:/Program Files/Python38/python.exe'', CMake recognized the Python that is installed on your PC and not the one of the LibPack. In this case adapt these different Python settings in CMake to this (assuming the LibPack is in the folder ''D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17''):
[[File:CMake_Python_settings.png]]


Now
<div class="mw-translate-fuzzy">
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.
# 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.
# In the toolbar of the MSVC IDE assure that you use for the first compilation ''Debug''.
</div>
# 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''' in the context menu.
</div>
This will now take quite a long time.
</div>
If there were no compilation errors, you can start the debug build:
</div>
# Right-click on the target '''FreeCADMain''' and then choose '''Set as Startup Project''' in the context menu.
</div>
# Finally click in the toolbar on the button with the green triangle named '''Local Windows Debugger'''.


This will start the debug build of FreeCAD and you can use the MSVC IDE to debug it.


==== Video Resource ====
<div class="mw-collapsible mw-collapsed toccolours">
An English language tutorial that begins with configuration in CMake Gui and continues to the `Build` command in Visual Studio 16 2019 is available unlisted on YouTube at [https://youtu.be/s4pHvlDOSZQ Tutorial: Build FreeCAD from source on Windows 10].

<div class="mw-translate-fuzzy">
=== Building with Visual Studio 9 2008 ===
{{Note|Warning|Since early 0.17 cycle Freecad uses c++11 features that are not supported by 2008 version}}
</div>
</div>

<div class="mw-collapsible-content">

{{Note|Warning|Since early 0.17 cycle Freecad uses c++11 features that are not supported by 2008 version}}

</div>
</div>
</div>


<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


Line 197: Line 239:
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


<div class="mw-translate-fuzzy">
==== Installation and configuration of Qt Creator ====
==== Installation and configuration of Qt Creator ====
* Download and install [https://www.qt.io/offline-installers Qt Creator]
* Download and install [https://www.qt.io/offline-installers Qt Creator]
Line 214: Line 255:
*** Uncheck: Always build project before deploying it
*** Uncheck: Always build project before deploying it
*** Uncheck: Always deploy project before running it
*** Uncheck: Always deploy project before running it
</div>


* Download and install [https://www.qt.io/offline-installers Qt Creator]
<div class="mw-translate-fuzzy">
* 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 Build ====
==== Import project and Build ====
* File -> Open File or Project
* File -> Open File or Project
Line 224: Line 279:
* Set generator to '''NMake Generator (MSVC 2008)'''
* Set generator to '''NMake Generator (MSVC 2008)'''
* Click Run CMake. Follow the instructions depicted above to configure CMake to your liking.
* Click Run CMake. Follow the instructions depicted above to configure CMake to your liking.
</div>


* File → Open File or Project
<div class="mw-translate-fuzzy">
* 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
Now FreeCAD can be built
* Build -> Build All
* Build -> Build All
* This will take a long time...
* This will take a long time...
</div>


Once complete, it can be run:
Once complete, it can be run:
Line 237: Line 296:
</div>
</div>
</div>
</div>


<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<div class="mw-translate-fuzzy">
=== Command line build ===
=== Command line build ===
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
Here an example how to build FreeCAD from the Command line:
Here an example how to build FreeCAD from the Command line:
</div>


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


Here an example how to build FreeCAD from the Command line:
The steps how to compile from the command line depends on the compiler. For MSVC 2017 the steps are:
# In Windows start menu go to {{MenuCommand|Visual Studio 2017 → Visual Studio Tools}} and choose '''Developer Command Prompt for VS 2017'''
# Change to your build folder.
# Execute the command


{{Code|code=msbuild ALL_BUILD.vcxproj /p:Configuration=Release}}
{{Code|code=
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
}}
</div>
</div>


or
== Compilarea versiunilor vechi ==


{{Code|code=msbuild INSTALL.vcxproj /p:Configuration=Release}}
=== Using LibPack ===
To make it easier to get FreeCAD compiled, we provide a collection of all
needed libraries. It's called the [[Third Party Libraries|LibPack]]. You can find it on the [http://sourceforge.net/project/showfiles.php?group_id=49159 download page] on
sourceforge.


These steps can also be automaized. Here is for example a solution for MSVC 2017:
You need to set the following environment variables:
# Download the script [https://forum.freecadweb.org/download/file.php?id=92135 compile-FC.txt].
# Rename it to ''compile-FC.bat''
# In Windows file explorer Shift+Right-click on your build folder and use from the context menu ''Command prompt here''.
# Execute the command


{{Code|code=compile-FC install}}
:'''FREECADLIB''' = "D:\Wherever\LIBPACK"


Instead of calling '''compile-FC''' with the option ''install'' you can also use ''debug'' or ''release'':
:'''QTDIR''' = "%FREECADLIB%"


''debug'' &nbsp; - compile FreeCAD in debug configuration
Add "%FREECADLIB%\bin" and "%FREECADLIB%\dll" to the system ''PATH'' variable. Keep in mind that you have to replace "%FREECADLIB%" with the path name, since Windows does not recursively replace environment variables.


''release'' - compile FreeCAD in release configuration
==== Directory setup in Visual Studio ====
Some search path of Visual Studio need to be set.
To change them, use the menu ''Tools→Options→Directory


''install'' &nbsp;&nbsp; - compile FreeCAD in release configuration and create an install setup
===== 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


</div>
===== Libs =====
</div>
Add the following search path to the lib path search list:
* %FREECADLIB%\lib


==Running and installing FreeCAD==
===== Executables =====
Add the following search path to the executable path search list:
* %FREECADLIB%\bin
* TortoiseSVN binary installation directory, usually "C:\Programm Files\TortoiseSVN\bin", this is needed for a distribution build when ''SubWVRev.exe'' is used to extract the version number from Subversion.


There are 2 methods to run the compiled FreeCAD:
==== Python needed ====
During the compilation some Python scripts get executed. So the Python
interpreter has to function on the OS. Use a command box to check it. If
the Python library is not properly installed you will get an error message
like ''Cannot find python.exe''. If you use the LibPack you can also use the
python.exe in the bin directory.


''Method 1'': You execute the FreeCAD.exe that you find in your build folder in the subfolder ''bin''
==== Special for VC8 ====
When building the project with VC8, you have to change the link information for the WildMagic library, since you need a different version for VC6 and VC8. Both versions are supplied in ''LIBPACK/dll''. In the project properties for ''AppMesh'' change the library name for the ''wm.dll'' to the VC8 version. Take care to change it in Debug ''and'' Release configuration.


''Method 2'': You build the target ''INSTALL''
=== Compilare ===


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''.
După ce vă conformați tuturor cerințelor prealabile, compilației - sperăm - că doar un clic al mouse-ului în VC va fi suficient


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:
=== După compilare ===
# Open the CMake GUI.
După o compilare reușită, pentru a face FreeCAD operațional în mediul compilatorului, trebuie să copiați unele fișiere din [[Third Party Libraries|LibPack]] în folderul ''bin'' al FreeCAD.exe:
# Search there for the variable option ''FREECAD_COPY_DEPEND_DIRS_TO_BUILD'' and check it. If there is no such option, the libraries were already copied, see the [[#Options_for_the_build_process|description of the options]].
# Search there for the variable option ''FREECAD_COPY_LIBPACK_BIN_TO_BUILD'' and check it.
# Search there for the variable option ''FREECAD_COPY_PLUGINS_BIN_TO_BUILD'' and check it.
# Click on '''Configure'''. At the end of the configuration CMake will automatically copy the necessary libraries from the LibPack folder.


===Troubleshooting===
* ''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''


When running FreeCAD you may encounter missing DLLs when using certain workbenches or features of workbenches. The error message in FreeCAD's console will not tell you what DLL is missing. To find this out you must use an external tool:
Când se utilizează [[Third Party Libraries|LibPack]] cu versiune Python mai veche de 2.5 trebuie să copiați suplimentar 2 fișiere:
* ''zlib.pyd'' și ''zlib_d.pyd'' de la ''LIBPACK/bin/lib''.
Acest lucru este necesar pentru ca Python șă poată deschide biblioteca în fițierul arhivat zip Python.
* ''_sre.pyd'' și ''_sre_d.pyd'' de la ''LIBPACK/bin/lib''. Acest lucru este necesar pentru ca Python să poată construi sistemul de help.


* Download the latest release of the program '''Dependencies''': https://github.com/lucasg/Dependencies/releases (choose the file ''Dependencies_x64_Release.zip'')
Dacă nu puteți rula programul din cauza unei erori Python, este mai mult decât probabil că unul dintre fișierele ''zlib*.pyd'' lipsește.
* In the FreeCAD [[Python console]] execute these commands:
<nowiki>import os
os.system(r"~\DependenciesGui.exe")</nowiki>
'''Note''': Instead of the ~ you must specify the full path to the ''DependenciesGui.exe'' on your system.
* Now drag in the *.pyd file of the workbench with which you get missing DLLs reported.


==Updating the build==
Alternativ, puteți să copiați întregul dosar bin al lipback în folderul bin al compilației. Acest lucru este mai ușor, dar necesită timp și spațiu pe disc. Acest lucru se poate face prin crearea de link-uri în loc de a copia fișiere, a se vedea[[CompileOnWindows - Reducing Disk Footprint#avoiding copying any libpack files to launch FreeCAD|CompileOnWindows - Reducing Disk Footprint]].


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:
=== Chestiuni suplimentre ===
# Updating the source code
# Recompilation


===Updating the source code===
Dacă doriți să construiți documentația codului sursă de care aveți nevoie [http://www.stack.nl/~dimitri/doxygen/ DoxyGen].


====Using a frontend====
To create an intstaller package you need [http://wix.sourceforge.net/ WIX].


When using the [https://en.wikipedia.org/wiki/Comparison_of_Git_GUIs Git frontend] TortoiseGit:
Pe durata compilației scriptul Python este executat. Deci, interpretorul Python trebuie să funcționeze corect.
# Right-click on your FreeCAD source code folder in the Windows file explorer and select in the context menu '''Pull'''.
# 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 [[Source_code_management#Git_development_process|Git development process]].)


Finally click '''OK'''.
Pentru mai multe detalii aruncați o privire pe ''README.Linux'' în sursele dvs.


====Using the command line====
Mai întâi trebuie să construiți pluginul Qt care oferă toate widgeturile personalizate de FreeCAD de care avem nevoie pentru Qt Designer. Sursele sunt situate sub


Open a terminal (command prompt) and switch there to your source directory. Then type:
{{Code|code=
//src/Tools/plugins/widget//.
}}


Până acum, nu am oferit un ”makefile” - dar trebuie să-l numiți
{{Code|code=
{{Code|code=
git pull https://github.com/FreeCAD/FreeCAD.git master
qmake plugin.pro
}}
}}


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''.
și să-l creați . Odată făcută treaba asta, chemați-l și "make" va crea biblioteca


===Recompilation===
{{Code|code=
//libFreeCAD_widgets.so//.
}}


# Open the MSVC IDE by double-clicking either on the file ''FreeCAD.sln'' or on the file ''ALL_BUILD.vcxproj'' in your build folder.
Pentru a face cunoscută această bibliotecă ''Qt Designer'', trebuie să copiați fișierul
# Continue with step 2 from section [[#Building_with_Visual_Studio_15_2017|Building with Visual Studio 15 2017]].


==Tools==
{{Code|code=
//$QTDIR/plugin/designer//.
}}


In order to join the FreeCAD development you should compile and install the following tools:
== References ==


===Qt Designer plugin===

FreeCAD uses [https://en.wikipedia.org/wiki/Qt_(software) Qt] as toolkit for its user interface. All dialogs are setup in UI-files that can be edited using the program [https://doc.qt.io/qt-5/qtdesigner-manual.html Qt Designer] that is part of any Qt installation and also included in the LibPack. FreeCAD has its own set of Qt widgets to provide special features like adding a unit to input fields and to set preferences properties.

====Compilation====

The plugin cannot be loaded by the Qt Designer if it was compiled using another Qt version than the one your Qt Designer/Qt Creator is based on. Therefore the plugin must be compiled together with FreeCAD:

* In the CMake options (see [[Compile_on_Windows#Options_for_the_build_process|this section above]]) enable the option BUILD_DESIGNER_PLUGIN and reconfigure.
* open MSVC and build the target '''FreeCAD_widgets'''

As result you will get the plugin file '''FreeCAD_widgets.dll'' in the folder</br>''~\src\Tools\plugins\widget\Release''

====Installation====

To install the plugin, copy it to either:
* If you use the LibPack: to the folder</br>''~\FreeCADLibs_12.5.4_x64_VC17\bin\designer''</br>Since there will only be a ''bin'' folder and you must first create the ''designer'' subfolder.
* If you have a full Qt installation: you can choose between the folder</br>''C:\Qt\5.15.2\msvc2019_64\plugins\designer''</br>or</br>''C:\Qt\5.15.2\msvc2019_64\bin\designer'' (you must first create the ''designer'' subfolder.)</br>(adapt the paths to your installation!).

Finally (re)start Qt Designer and check its menu {{MenuCommand|Help → Plugins}}. If the plugin '''FreeCAD_widgets.dll''' is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must [[#Compilation|compile]] the DLL by yourself.

If you prefer using [https://en.wikipedia.org/wiki/Qt_Creator Qt Creator] instead of Qt Designer, the plugin file must be placed in this folder:</br>''C:\Qt\Qt5.15.2\Tools\QtCreator\bin\plugins\designer''</br>Then (re)start Qt Creator, switch to the mode '''Design''' and then check the menu {{MenuCommand|Tools → Form Editor → About Qt Designer Plugins}}. If the plugin '''FreeCAD_widgets.dll''' is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must [[#Compilation|compile]] the DLL by yourself.

===Thumbnail Provider===

FreeCAD has the feature to provide preview thumbnails for *.FCStd files. That means that in the Windows file explorer *.FCStd files are shown with a screenshot of the model it contains. To provide this feature, FreeCAD needs to have the file '''FCStdThumbnail.dll''' installed to Windows.

====Installation====

The DLL is installed this way:
# Download [https://forum.freecadweb.org/download/file.php?id=13404 this ZIP file] and extract it.
# Open a Windows command prompt with administrator privileges (these privileges are a requirement).
# Change to the folder where the DLL is.
# Execute this command {{Code|code=regsvr32 FCStdThumbnail.dll}}

So check if it works, assure that in FreeCAD the preferences option '''[[Preferences_Editor#Document|Save thumbnail into project file when saving document]]''' is enabled and save a model. Then view in Windows Explorer the folder of the saved model using a symbol view. You should now see a screenshot of the model in the folder view.

====Compilation====

To compile the FCStdThumbnail.dll
# Change to the FreeCAD source folder</br>''~\src\Tools\thumbs\ThumbnailProvider''
# Open the CMake GUI
# Specify there as source folder the one you are currently in.
# Use the same folder as build folder.
# Click '''Configure'''
# 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 and 2yyy the year of its release. It is recommended to use the default option ''Use default native compilers''.</br>'''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.
# Click on '''Generate'''.
# You should now have the file '''ALL_BUILD.vcxproj''' in the folder ''~\src\Tools\thumbs\ThumbnailProvider''. Double-click on it and the MSVC IDE will open.
# In the toolbar of the MSVC IDE assure that you use the compilation target ''Release''.
# There is a window called ''Solution Explorer''. Right-click there on '''ALL_BUILD''' and then choose '''Build'''.
# As result you should now have a '''FCStdThumbnail.dll''' in the folder ''~\src\Tools\thumbs\ThumbnailProvider\release'' that you can install as described above.

== Compiling Open Cascade==

The LibPack comes with a version of [https://en.wikipedia.org/wiki/Open_Cascade Open Cascade] that is suitable for general use. However, under some circumstances you may wish to compile against an alternate version of Open Cascade, such as one of their official releases, or a patched fork.

When compiling Open Cascade for FreeCAD note that there is no guarantee that FreeCAD will work with all versions of Open Cascade. Note also that when you are using the Netgen library, you must use the a NetGen version that it approved to compile with the Open Cascade version you like to compile.

To compile:
* First obtain the Open Cascade source code, either directly from [https://github.com/Open-Cascade-SAS/OCCT Open Cascade's git repository] or by cloning someone else's fork, such as [https://gitlab.com/blobfish/occt the "blobfish" fork] maintained by FreeCAD forum member [https://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=208 tanderson69].

* Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set (or explicitly not set):
{| class="wikitable" style="text-align:left"
|-
! Variable name !! Description !! Default
|-
| 3RDPARTY_DIR|| The path to 3rdparty components. It is recommended to use the folder as input where your used LibPack is. Explicitly leave this field empty.
|| empty
|-
| 3RDPARTY_DOXYGEN_EXECUTABLE|| The path to the executable of the 3rdparty component [https://en.wikipedia.org/wiki/Doxygen Doxygen]. It is recommended to install Doxygen. CMake will then find it automatically.
|| empty
|-
| 3RDPARTY_FREETYPE_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/FreeType Freetype]. It is recommended to use the folder as input where your used LibPack is.
|| empty
|-
| 3RDPARTY_RAPIDJSON_DIR|| Only available if '''USE_RAPIDJSON''' is used. The path to the 3rdparty component [https://rapidjson.org/ RapidJSON]. It is recommended NOT to use an existing LibPack folder as input. You can use the RapidJSOn folder from a LibPack, but copy it to a new folder and use this new folder as input.
|| empty
|-
| 3RDPARTY_TCL_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Tcl TCL]. It is recommended NOT to use an existing LibPack folder as input. Take for example one of [https://github.com/teclab-at/tcltk/releases these releases], extract it and take this as input folder for CMake.
|| empty
|-
| 3RDPARTY_TK_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Tk_(software) TK]. It is recommended NOT to use an existing LibPack folder as input. Take for example one of [https://github.com/teclab-at/tcltk/releases these releases], extract it and take this as input folder for CMake.
|| empty
|-
| 3RDPARTY_VTK_DIR|| Only available if '''USE_VTK''' is used. The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/VTK VTK]. It is recommended to use the folder as input where your used LibPack is. If you use another folder please assure that you don't use VTK 9.x or newer.
|| empty
|-
| BUILD_RELEASE_DISABLE_EXCEPTIONS|| Disables exception handling for release builds. For FreeCAD you must set it to '''OFF'''.
|| ON
|-
| INSTALL_DIR|| The output folder when building the target ''INSTALL''. If the build was successful, take the files from this folder to update your LibPack.
|| Windows default program installation folder
|-
| INSTALL_DIR_BIN|| The output subfolder for the DLL when building the target ''INSTALL''. You must change it to '''bin'''
|| win64/vc14/bin
|-
| INSTALL_DIR_LIB|| The output subfolder for the .lib files when building the target ''INSTALL''. You must change it to '''lib'''
|| win64/vc14/lib
|-
| USE_RAPIDJSON|| To compile Open Cascade with support for RapidJSON. Enabling this is mandatory in order to get support for the file format [https://en.wikipedia.org/wiki/Gltf glTF].
|| OFF
|-
| USE_VTK|| To compile Open Cascade with support for VTK. Enabling this is optimal. You can use this to build Open Cascade's VTK bridge.
|| OFF
|}

* Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the '''Release''' mode.
* Repeat building the two targets in the '''Debug''' mode.

To build FreeCAD using the self-compiled Open Cascade, you must do the following:
* Copy all folders from the INSTALL_DIR to your LibPack folder (overwrite the existing files)
* Switch to the LibPack folder and go there to the subfolder ''cmake''
* Open there the file ''OpenCASCADEDrawTargets.cmake'' with a text editor
* Search there for absolute paths to your LibPack folder and remove them. So e.g. the absolute path</br>''D:/FreeCADLibs_12.5.4_x64_VC17/lib/freetype.lib''</br>becomes just </br>''freetype.lib''</br>
* Do the same for the file ''OpenCASCADEVisualizationTargets.cmake''

== Compiling Netgen==

The LibPack comes with a version of [https://ngsolve.org Netgen] that will was tested to be build with the Open Cascade version of the LibPack. The problem is that every new release of Netgen changes the API. Also every new release of Open Cascade does the same. Therefore one cannot just easily change the Netgen version.

However, you might build Netgen nevertheless. This is an easy task:

* First obtain the Netgen source code, either directly from [https://github.com/NGSolve/netgen Netgen 's git repository].
* Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set:
{| class="wikitable" style="text-align:left"
|-
! Variable name !! Description !! Default
|-
| CMAKE_INSTALL_PREFIX|| The output folder when building the target ''INSTALL''. If the build was successful, take the files from this folder to update your LibPack.
|| C:/netgen
|-
| OpenCasCade_DIR|| The path to the CMake files of Open Cascade. If you built Open Cascade as described in section [[#Compiling_Open_Cascade|Compiling Open Cascade]] you can use the subfolder ''cmake'' of there folder you used as INSTALL_DIR. If not, use the subfolder ''cmake'' of your LibPack. Note hereby that the LibPack must then already contain a proper Open Cascade build. Independent what folder you use, you must now also create there a subfolder ''lib'' and copy in the files ''freetype.lib'' and ''freetyped.lib'' from your LibPack.
|| empty
|-
| USE_GUI|| set it to '''OFF'''
|| ON
|-
| USE_NATIVE_ARCH|| set it to '''OFF'''; this is only necessary important to support older CPU that don't have the [https://en.wikipedia.org/wiki/Advanced_Vector_Extensions AVX2] instruction set
|| ON
|-
| USE_OCC|| set it to '''ON'''
|| OFF
|-
| USE_PYTHON|| set it to '''OFF'''
|| ON
|-
| USE_SUPERBUILD|| set it to '''OFF'''
|| ON
|-
| ZLIB_INCLUDE_DIR|| The path to the necessary 3rdparty component [https://en.wikipedia.org/wiki/Zlib zlib]. It is recommended to use the folder as input where your used LibPack is.
|| empty
|-
| ZLIB_LIBRARY_DEBUG|| The path to the ZLib file ''zlibd.lib''. It is located in the subfolder ''lib'' of your LibPack folder.
|| empty
|-
| ZLIB_LIBRARY_RELEASE|| The path to the ZLib file ''zlib.lib''. It is located in the subfolder ''lib'' of your LibPack folder.
|| empty
|}

* Additionally you need to add a new CMake entry:
name: ''CMAKE_DEBUG_POSTFIX'', type: ''string'', content: '''_d'''</br>
This assures that he file names of the debug libraries get another name than the release libraries and can later not be accidentally exchanged.

* Press the ''Configure'' button in CMake to generate the *.cmake files.
* Only necessary if older CPU should be supported that don't have the AVX2 instruction set:
** Search your Netgen build folder for the file ''netgen-targets.cmake'' and open it with a text editor. Remove the setting '';/arch:AVX2'' in the Option INTERFACE_COMPILE_OPTIONS.
** Press the ''Configure'' button in CMake again.
* Press the ''Generate'' button in CMake.
* Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the '''Release''' mode.
* Repeat building the two targets in the '''Debug''' mode.

To build FreeCAD using the self-compiled Netgen, you must do the following:
* Copy all folders from the CMAKE_INSTALL_PREFIX to your LibPack folder (overwrite the existing files)

== References ==


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
A se vedea și
{{docnav/ro|Tracker/ro|CompileOnUnix/ro}} [[Category:Developer Documentation/ro]]
* [[Compiling_(Speeding_up)|Compiling - Speeding up]]
</div>
</div>


{{Userdocnavi}}


{{Docnav/ro
[[Category:Developer Documentation]]
|[[Licence/ro|Licence]]
|[[Compile_on_Linux/ro|Compile on Linux]]
}}


{{Userdocnavi{{#translation:}}}}
{{clear}}
[[Category:Developer_Documentation{{#translation:}}]]
[[Category:Developer{{#translation:}}]]

Revision as of 07:59, 14 June 2022

Acest articol explică pas cu pas how to compile FreeCAD on Windows.

Premise

Compiling FreeCAD on Windows requires several tools and libraries.

Programe necesare

  • Git Aici sunt câteva dintre alternative ca GitCola, Tortoise Git, și altele.
  • CMake versiunea 2.x.x sau Cmake 3.x.x
  • Python >2.5 (Acest lucru este necesar numai dacă NU utilizați Libpack. Libpack este livrat încpând cu Python(2.7.x) potrivit pentru compilarea și rularea FreeCAD)
  • A compiler. FreeCAD is tested with Visual Studio (MSVC)—other compilers may work, but instructions for use are not included here. More details in #Compiler, below.
  • Git (There are also GUI frontends available for Git, see the next section.)
  • CMake version 3.11.x or newer.
    Hint: Choosing the option Add CMake to the system PATH for all users when installing CMake will make CMake accessible from the Windows command prompt, which can be useful.
  • The LibPack. This is a single package containing all of the libraries necessary to compile FreeCAD on Windows. Download the version of the LibPack that corresponds to the version of FreeCAD you want to compile. To compile FreeCAD 0.20 download the LibPack version 2.6, for FreeCAD 0.19 download the LibPack version 1.0. Extract the LibPack to a convenient location. (If your computer does not recognize the .7z extension, you must install the program 7-zip.)
    Note: It is highly recommended to compile FreeCAD with the compiler version the LibPack is designed for. For example, you might run into problems compiling FreeCAD 0.20 using MSVC 2017 because the LibPack is designed to be built with MSVC 2019 or newer.

Optional programs

  • A GUI frontend for Git. There are several frontends available, see this list. The main benefit of a frontend is that you don't have to learn the Git commands to get the source code of FreeCAD or to send patches to the GitHub repository of FreeCAD.

In the following we describe source code handling using the TortoiseGit frontend. This frontend integrates directly into Windows file explorer and has a large user community to get help in case you have problems.

  • NSIS is used to generate the FreeCAD Windows installer.

Codul sursă

Utilizați Git (de preferință)

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 will be downloaded.
  2. Right-click on this folder in the Windows file explorer and select Git Clone in the context menu.
  3. A dialog will appear. In it, enter the URL for the FreeCAD Git repository

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

and click OK.

The latest source code will be downloaded from the FreeCAD Git repository and the folder will be tracked by Git.

Using the command line

Pentru a crea o ramură de urmărire locală și pentru a descărca codul sursă, trebuie să deschideți un terminal (promp de comandă) și cd(change directory) în directorul pe care doriți să plasați codul sursă, apoi tastați:

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

Compilator

Sub Windows, compilatorul implicit este MS Visual Studio. CI utilizează versiunea din 2013.

The default (recommended) compiler is MS Visual Studio (MSVC). Though it may be possible to use other compilers, for example gcc via Cygwin or MinGW, it is not tested or covered here.

You can get a free version of MSVC (for individual usage) by downloading the Community edition of MS Visual Studio.

Pentru cei care doresc să evite instalarea imensului Visual Studio pentru simplul scop de a avea un compilator, vezi CompileOnWindows - Reducing Disk Footprint.

Note: Although the Community edition of MSVC is free, to use the IDE for more than a 30-day trial period you must create a Microsoft account. If you will only compile using the command line, you don't need the IDE and thus no Microsoft account.

As a 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.

Configurarea căii de sistem

În interiorul căii dvs. de sistem, asigurați-vă că setați căile corecte la următoarele programe:

  • git (not tortoiseGit, but git.exe) Acest lucru este necesar pentru ca Cmake să actualizeze în mod corespunzător informațiile despre versiunea "Despre FreeCAD".h fișierul care permite FreeCAD să raporteze versiunea corespunzătoare din About FreeCAD din meniul de ajutor.
  • În mod opțional, puteți include Libpack în calea dvs. de sistem. Acest lucru este util dacă intenționați să construiți mai multe configurații / versiuni ale FreeCAD, va trebui să copiați mai puține fișiere după cum este explicat mai târziu în procesul de rulare.

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.

Pentru a adăuga la cale asitemului dvs:

Configurare cu CMake

Once you have all of the necessary tools, libraries, and FreeCAD source code, you are ready to begin the configuration and compilation process. This process will proceed in five steps:

  1. Run CMake once to examine your system and begin the configuration progress (this will report that it failed).
  2. Adjust necessary CMake settings to set the locations of the LibPack and enable Qt5.
  3. Re-run CMake to finalize the configuration (this time it should succeed).
  4. Use CMake to generate the Visual Studio build system.
  5. Use Visual Studio to build FreeCAD.

CMake

First, configure the build environment using CMake:

  1. Open the CMake GUI
  2. Specify the source folder of FreeCAD.
  3. Specify a build folder (do not use the source folder -- CMake will create this folder if it does not exist).
  4. Click Configure.
  5. In the dialog that appears specify the generator you want to use: in most cases you will use the defaults in this dialog. For the standard MS Visual Studio use Visual Studio xx 2yyy where xx is the compiler version and 2yyy 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 64-bit variant of the LibPack you must also use the x64 compiler.

Aceasta va începe configurarea și ar trebui să eșueze deoarece locația FREECAD_LIBPACK_DIR is unset.

  • Expand the FREECAD category and set FREECAD_LIBPACK_DIR to the correct location
  • Check FREECAD_USE_EXTERNAL_PIVY
  • Optionally Check FREECAD_USE_FREETYPE this is required to use the Draft WB's Shape String functionality
  • Click Configure again
  • There should be no errors
  • Click Generate
  • Close CMake
  • Copy libpack\bin folder into the new build folder CMake created

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 it fails with a message about the wrong Python version or missing Python, then:

  1. Use the "Search:" box in CMake to search for the string "Python"
  2. If you see there a path like C:/Program Files/Python38/python.exe, CMake recognized the Python that is already installed on your PC, but that version is not compatible with the LibPack. Since the LibPack includes a compatible version of Python, modify the following Python settings in CMake to its paths (assuming the LibPack is in the folder D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17):

If there is no error about Visual Studio or Python, everything is fine, but CMake does not yet know all necessary settings. Therefore now:

  1. Search in CMake for the variable FREECAD_LIBPACK_DIR and specify the location of the LibPack folder you downloaded earlier.
  2. Only if building FreeCAD 0.19, search for the variable BUILD_QT5 and enable this option.
  3. Click Configure again.

There should now be no errors. If you continue to encounter errors that you cannot diagnose, visit the Install/Compile forum on the FreeCAD forum website. If CMake proceeded correctly, click on Generate. After this is done you can close CMake and start the compilation of FreeCAD using Visual Studio. However, for the first compilation keep it open in case you want or need to change some options for the build process.

Note: When compiling FreeCAD 0.19, the CMake variable BUILD_ENABLE_CXX_STD will be set to C++14 while for FreeCAD 0.20 it will be set to C++17. This is because FreeCAD 0.20 requires at least the C++ language standard version 17. So when you compiled the last time FreeCAD 0.19 it is necessary to re-run CMake for FreeCAD 0.20 to change the C++ language standard.

Opțiuni pentru compilarea Proceselor

Sistemul de compilare CMake ne oferă o mult mai mare flexibilitate în procesul de compilare. Asta înseamnă că putem porni și dezactiva câteva funcționalități sau module. Este într-un fel ca compilarea kernel-ului Linux. Aveți o mulțime de comutatoare pentru a determina procesul de compilare.

Iată descrierea unora dintre aceste switch-uri. Probabil că se vor schimba mult în viitor pentru că vrem să creștem flexibilitatea compilării mult mai mult.

Link table
Variable name Description Default
FREECAD_LIBPACK_USE Switch the usage of the FreeCAD LibPack on or off On Win32 on, otherwise 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

Compilarea FreeCAD

În funcție de configurația actuală, procesul de construire a FreeCAD va fi ușor diferit. Acest lucru se datorează diferențelor dintre versiunile de software disponibile pentru fiecare sistem de operare.

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), 16 (2019), and 17 (2022)

Release Build

  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.

Note: FreeCAD 0.20 requires at least the C++ language standard version 17 but the 3rd-party component flann from the LibPack is not yet ready for this. Therefore you will get compilation errors for the target ReverseEngineering. To fix this, right-click on this target in the MSVC solution explorer and select in the context menu the last entry Properties. In the appearing dialog change the C++ Language Standard to ISO C++14. Finally build the target ALL_BUILD again.

Debug Build

For a debug build it is necessary that the Python is used that is included in the LibPack. To assure this:

  1. Search in the CMake GUI for "Python"
  2. If you see there a path like C:/Program Files/Python38/python.exe, CMake recognized the Python that is installed on your PC and not the one of the LibPack. In this case adapt these different Python settings in CMake to this (assuming the LibPack is in the folder D:\FreeCAD-build\FreeCADLibs_12.5.2_x64_VC17):

Now

  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 Debug.
  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 in the context menu.

This will now take quite a long time. If there were no compilation errors, you can start the debug build:

  1. Right-click on the target FreeCADMain and then choose Set as Startup Project in the context menu.
  2. Finally click in the toolbar on the button with the green triangle named Local Windows Debugger.

This will start the debug build of FreeCAD and you can use the MSVC IDE to debug it.

Video Resource

An English language tutorial that begins with configuration in CMake Gui and continues to the `Build` command in Visual Studio 16 2019 is available unlisted on YouTube at Tutorial: Build FreeCAD from source on Windows 10.

Compilare cu Qt Creator

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

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

Here an example how to build FreeCAD from the Command line:

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 Visual Studio 2017 → Visual Studio Tools and choose Developer Command Prompt for VS 2017
  2. Change to your build folder.
  3. Execute the command
msbuild ALL_BUILD.vcxproj /p:Configuration=Release

or

msbuild INSTALL.vcxproj /p:Configuration=Release

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 Windows file explorer Shift+Right-click on your build folder and use from the context menu Command prompt here.
  4. Execute the command
compile-FC install

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. If there is no such option, the libraries were already copied, see the description of the options.
  3. Search there for the variable option FREECAD_COPY_LIBPACK_BIN_TO_BUILD and check it.
  4. Search there for the variable option FREECAD_COPY_PLUGINS_BIN_TO_BUILD and check it.
  5. Click on Configure. At the end of the configuration CMake will automatically copy the necessary libraries from the LibPack folder.

Troubleshooting

When running FreeCAD you may encounter missing DLLs when using certain workbenches or features of workbenches. The error message in FreeCAD's console will not tell you what DLL is missing. To find this out you must use an external tool:

import os
os.system(r"~\DependenciesGui.exe")

Note: Instead of the ~ you must specify the full path to the DependenciesGui.exe on your system.

  • Now drag in the *.pyd file of the workbench with which you get missing DLLs reported.

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

Updating the source code

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:

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

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.

Tools

In order to join the FreeCAD development you should compile and install the following tools:

Qt Designer plugin

FreeCAD uses Qt as toolkit for its user interface. All dialogs are setup in UI-files that can be edited using the program Qt Designer that is part of any Qt installation and also included in the LibPack. FreeCAD has its own set of Qt widgets to provide special features like adding a unit to input fields and to set preferences properties.

Compilation

The plugin cannot be loaded by the Qt Designer if it was compiled using another Qt version than the one your Qt Designer/Qt Creator is based on. Therefore the plugin must be compiled together with FreeCAD:

  • In the CMake options (see this section above) enable the option BUILD_DESIGNER_PLUGIN and reconfigure.
  • open MSVC and build the target FreeCAD_widgets

As result you will get the plugin file 'FreeCAD_widgets.dll in the folder
~\src\Tools\plugins\widget\Release

Installation

To install the plugin, copy it to either:

  • If you use the LibPack: to the folder
    ~\FreeCADLibs_12.5.4_x64_VC17\bin\designer
    Since there will only be a bin folder and you must first create the designer subfolder.
  • If you have a full Qt installation: you can choose between the folder
    C:\Qt\5.15.2\msvc2019_64\plugins\designer
    or
    C:\Qt\5.15.2\msvc2019_64\bin\designer (you must first create the designer subfolder.)
    (adapt the paths to your installation!).

Finally (re)start Qt Designer and check its menu Help → Plugins. If the plugin FreeCAD_widgets.dll is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must compile the DLL by yourself.

If you prefer using Qt Creator instead of Qt Designer, the plugin file must be placed in this folder:
C:\Qt\Qt5.15.2\Tools\QtCreator\bin\plugins\designer
Then (re)start Qt Creator, switch to the mode Design and then check the menu Tools → Form Editor → About Qt Designer Plugins. If the plugin FreeCAD_widgets.dll is listed as being loaded, you can now design and change FreeCAD's .ui files. If not, you must compile the DLL by yourself.

Thumbnail Provider

FreeCAD has the feature to provide preview thumbnails for *.FCStd files. That means that in the Windows file explorer *.FCStd files are shown with a screenshot of the model it contains. To provide this feature, FreeCAD needs to have the file FCStdThumbnail.dll installed to Windows.

Installation

The DLL is installed this way:

  1. Download this ZIP file and extract it.
  2. Open a Windows command prompt with administrator privileges (these privileges are a requirement).
  3. Change to the folder where the DLL is.
  4. Execute this command
    regsvr32 FCStdThumbnail.dll
    

So check if it works, assure that in FreeCAD the preferences option Save thumbnail into project file when saving document is enabled and save a model. Then view in Windows Explorer the folder of the saved model using a symbol view. You should now see a screenshot of the model in the folder view.

Compilation

To compile the FCStdThumbnail.dll

  1. Change to the FreeCAD source folder
    ~\src\Tools\thumbs\ThumbnailProvider
  2. Open the CMake GUI
  3. Specify there as source folder the one you are currently in.
  4. Use the same folder as build folder.
  5. Click Configure
  6. 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 and 2yyy 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.
  7. Click on Generate.
  8. You should now have the file ALL_BUILD.vcxproj in the folder ~\src\Tools\thumbs\ThumbnailProvider. Double-click on it and the MSVC IDE will open.
  9. In the toolbar of the MSVC IDE assure that you use the compilation target Release.
  10. There is a window called Solution Explorer. Right-click there on ALL_BUILD and then choose Build.
  11. As result you should now have a FCStdThumbnail.dll in the folder ~\src\Tools\thumbs\ThumbnailProvider\release that you can install as described above.

Compiling Open Cascade

The LibPack comes with a version of Open Cascade that is suitable for general use. However, under some circumstances you may wish to compile against an alternate version of Open Cascade, such as one of their official releases, or a patched fork.

When compiling Open Cascade for FreeCAD note that there is no guarantee that FreeCAD will work with all versions of Open Cascade. Note also that when you are using the Netgen library, you must use the a NetGen version that it approved to compile with the Open Cascade version you like to compile.

To compile:

  • Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set (or explicitly not set):
Variable name Description Default
3RDPARTY_DIR The path to 3rdparty components. It is recommended to use the folder as input where your used LibPack is. Explicitly leave this field empty. empty
3RDPARTY_DOXYGEN_EXECUTABLE The path to the executable of the 3rdparty component Doxygen. It is recommended to install Doxygen. CMake will then find it automatically. empty
3RDPARTY_FREETYPE_DIR The path to the necessary 3rdparty component Freetype. It is recommended to use the folder as input where your used LibPack is. empty
3RDPARTY_RAPIDJSON_DIR Only available if USE_RAPIDJSON is used. The path to the 3rdparty component RapidJSON. It is recommended NOT to use an existing LibPack folder as input. You can use the RapidJSOn folder from a LibPack, but copy it to a new folder and use this new folder as input. empty
3RDPARTY_TCL_DIR The path to the necessary 3rdparty component TCL. It is recommended NOT to use an existing LibPack folder as input. Take for example one of these releases, extract it and take this as input folder for CMake. empty
3RDPARTY_TK_DIR The path to the necessary 3rdparty component TK. It is recommended NOT to use an existing LibPack folder as input. Take for example one of these releases, extract it and take this as input folder for CMake. empty
3RDPARTY_VTK_DIR Only available if USE_VTK is used. The path to the necessary 3rdparty component VTK. It is recommended to use the folder as input where your used LibPack is. If you use another folder please assure that you don't use VTK 9.x or newer. empty
BUILD_RELEASE_DISABLE_EXCEPTIONS Disables exception handling for release builds. For FreeCAD you must set it to OFF. ON
INSTALL_DIR The output folder when building the target INSTALL. If the build was successful, take the files from this folder to update your LibPack. Windows default program installation folder
INSTALL_DIR_BIN The output subfolder for the DLL when building the target INSTALL. You must change it to bin win64/vc14/bin
INSTALL_DIR_LIB The output subfolder for the .lib files when building the target INSTALL. You must change it to lib win64/vc14/lib
USE_RAPIDJSON To compile Open Cascade with support for RapidJSON. Enabling this is mandatory in order to get support for the file format glTF. OFF
USE_VTK To compile Open Cascade with support for VTK. Enabling this is optimal. You can use this to build Open Cascade's VTK bridge. OFF
  • Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the Release mode.
  • Repeat building the two targets in the Debug mode.

To build FreeCAD using the self-compiled Open Cascade, you must do the following:

  • Copy all folders from the INSTALL_DIR to your LibPack folder (overwrite the existing files)
  • Switch to the LibPack folder and go there to the subfolder cmake
  • Open there the file OpenCASCADEDrawTargets.cmake with a text editor
  • Search there for absolute paths to your LibPack folder and remove them. So e.g. the absolute path
    D:/FreeCADLibs_12.5.4_x64_VC17/lib/freetype.lib
    becomes just
    freetype.lib
  • Do the same for the file OpenCASCADEVisualizationTargets.cmake

Compiling Netgen

The LibPack comes with a version of Netgen that will was tested to be build with the Open Cascade version of the LibPack. The problem is that every new release of Netgen changes the API. Also every new release of Open Cascade does the same. Therefore one cannot just easily change the Netgen version.

However, you might build Netgen nevertheless. This is an easy task:

  • First obtain the Netgen source code, either directly from Netgen 's git repository.
  • Then open the CMake GUI to configure the build system in a similar manner to building FreeCAD. These CMake options have to be set:
Variable name Description Default
CMAKE_INSTALL_PREFIX The output folder when building the target INSTALL. If the build was successful, take the files from this folder to update your LibPack. C:/netgen
OpenCasCade_DIR The path to the CMake files of Open Cascade. If you built Open Cascade as described in section Compiling Open Cascade you can use the subfolder cmake of there folder you used as INSTALL_DIR. If not, use the subfolder cmake of your LibPack. Note hereby that the LibPack must then already contain a proper Open Cascade build. Independent what folder you use, you must now also create there a subfolder lib and copy in the files freetype.lib and freetyped.lib from your LibPack. empty
USE_GUI set it to OFF ON
USE_NATIVE_ARCH set it to OFF; this is only necessary important to support older CPU that don't have the AVX2 instruction set ON
USE_OCC set it to ON OFF
USE_PYTHON set it to OFF ON
USE_SUPERBUILD set it to OFF ON
ZLIB_INCLUDE_DIR The path to the necessary 3rdparty component zlib. It is recommended to use the folder as input where your used LibPack is. empty
ZLIB_LIBRARY_DEBUG The path to the ZLib file zlibd.lib. It is located in the subfolder lib of your LibPack folder. empty
ZLIB_LIBRARY_RELEASE The path to the ZLib file zlib.lib. It is located in the subfolder lib of your LibPack folder. empty
  • Additionally you need to add a new CMake entry:

name: CMAKE_DEBUG_POSTFIX, type: string, content: _d
This assures that he file names of the debug libraries get another name than the release libraries and can later not be accidentally exchanged.

  • Press the Configure button in CMake to generate the *.cmake files.
  • Only necessary if older CPU should be supported that don't have the AVX2 instruction set:
    • Search your Netgen build folder for the file netgen-targets.cmake and open it with a text editor. Remove the setting ;/arch:AVX2 in the Option INTERFACE_COMPILE_OPTIONS.
    • Press the Configure button in CMake again.
  • Press the Generate button in CMake.
  • Open the project in Visual Studio and first build the ALL_BUILD and then INSTALL targets in the Release mode.
  • Repeat building the two targets in the Debug mode.

To build FreeCAD using the self-compiled Netgen, you must do the following:

  • Copy all folders from the CMAKE_INSTALL_PREFIX to your LibPack folder (overwrite the existing files)

References

A se vedea și