Compile on Windows: Difference between revisions

From FreeCAD Documentation
(<translate>)
(Marked this version for translation)
Line 1: Line 1:
<translate>
<translate>
<!--T:1-->
This article explains step by step '''how to compile FreeCAD on Windows'''.
This article explains step by step '''how to compile FreeCAD on Windows'''.


=== Prerequisites ===
=== Prerequisites === <!--T:2-->
What you need is mainly the compiler. On Windows we use the M$
What you need is mainly the compiler. On Windows we use the M$
Visual Studio 9 Compiler 2008 (or VC++ Express 2008) with the highest service pack. Although it's
Visual Studio 9 Compiler 2008 (or VC++ Express 2008) with the highest service pack. Although it's
Line 8: Line 9:
far. You need to download the Windows Platform SDK to get e.g. the Windows.h, although this should not be needed with M$ compilers (either full or express).
far. You need to download the Windows Platform SDK to get e.g. the Windows.h, although this should not be needed with M$ compilers (either full or express).


<!--T:3-->
Also you need all the [[Third Party Libraries]] to successfully compile FreeCAD.
Also you need all the [[Third Party Libraries]] to successfully compile FreeCAD.
If you use the M$ compilers you want most likely to download the FreeCAD LibPack
If you use the M$ compilers you want most likely to download the FreeCAD LibPack
which provides you with all needed libs to build FreeCAD on Windows.
which provides you with all needed libs to build FreeCAD on Windows.


<!--T:4-->
Other prerequisites (and helpful programs) are:
Other prerequisites (and helpful programs) are:
* cMake
* cMake
Line 18: Line 21:
* [http://sourceforge.net/projects/nsis/ NSIS] Windows installer (note: formerly, [http://wixtoolset.org/ WiX] installer was used - now under transition to NSIS) - if you want to make msi installer
* [http://sourceforge.net/projects/nsis/ NSIS] Windows installer (note: formerly, [http://wixtoolset.org/ WiX] installer was used - now under transition to NSIS) - if you want to make msi installer


<!--T:5-->
It is also necessary to have, in your system path, paths to:
It is also necessary to have, in your system path, paths to:
* Libpack
* Libpack
Line 23: Line 27:
* python
* python


=== Building with cMake ===
=== Building with cMake === <!--T:6-->
First of all, you have to [http://www.cmake.org/cmake/resources/software.html download cMake]
First of all, you have to [http://www.cmake.org/cmake/resources/software.html download cMake]
and install it on your build machine.
and install it on your build machine.


==== The switch to cMake ====
==== The switch to cMake ==== <!--T:7-->
Since version 0.9 we use the cMake build system to generate the build/make files
Since version 0.9 we use the cMake build system to generate the build/make files
for various compilers. We do not longer deliver .vcproj files.
for various compilers. We do not longer deliver .vcproj files.
Line 33: Line 37:
later in this article.
later in this article.


<!--T:8-->
We switched because it became more and more painful to maintain project files for 30+
We switched because it became more and more painful to maintain project files for 30+
build targets and x compilers. cMake gives us the posibility to support alternative
build targets and x compilers. cMake gives us the posibility to support alternative
Line 39: Line 44:
Windows without proprietary compiler software.
Windows without proprietary compiler software.


==== Configure the build process ====
==== Configure the build process ==== <!--T:9-->
The first step to build FreeCAD with cMake is to configure the environment. There
The first step to build FreeCAD with cMake is to configure the environment. There
are basically two ways to go:
are basically two ways to go:
Line 45: Line 50:
* Installing all needed libs and let cMake find them
* Installing all needed libs and let cMake find them


<!--T:10-->
In the first case you only need to give cMake the path to the LibPack
In the first case you only need to give cMake the path to the LibPack
and all the rest should be done automatically and you see such a screen:
and all the rest should be done automatically and you see such a screen:
[[File:CMake_Screen.png]]
[[File:CMake_Screen.png]]


<!--T:11-->
You see the LibPack path inserted into the '''FREECAD_LIBPACK_DIR''' variable. Starting
You see the LibPack path inserted into the '''FREECAD_LIBPACK_DIR''' variable. Starting
from that all includes and paths are set. You just need to press the '''Generate''' button
from that all includes and paths are set. You just need to press the '''Generate''' button
and the project files get generated.
and the project files get generated.


<!--T:12-->
If you switch the '''FREECAD_LIBPACK_USE''' options off, the configuration tries to find
If you switch the '''FREECAD_LIBPACK_USE''' options off, the configuration tries to find
each and every library needed on your system. Depending on the libs that works well more or
each and every library needed on your system. Depending on the libs that works well more or
Line 58: Line 66:
not found and need to be specified.
not found and need to be specified.


==== Options for the Build Process ====
==== Options for the Build Process ==== <!--T:13-->
The cMake build system gives us a lot more flexibility over the build process. That means
The cMake build system gives us a lot more flexibility over the build process. That means
we can switch on and off some features or modules. It's in a way like the Linux kernel build.
we can switch on and off some features or modules. It's in a way like the Linux kernel build.
You have a lot switches to determine the build process.
You have a lot switches to determine the build process.


<!--T:14-->
Here is the description of these switches. They will most likely change a lot in the future
Here is the description of these switches. They will most likely change a lot in the future
because we want to increase the build flexibility a lot more.
because we want to increase the build flexibility a lot more.


<!--T:15-->
{| class="wikitable" style="text-align:left"
{| class="wikitable" style="text-align:left"
|+ Link table
|+ Link table
Line 88: Line 98:




==== Procedure with cMake and Visual Studio 9 2008 ====
==== Procedure with cMake and Visual Studio 9 2008 ==== <!--T:16-->
Once you start cMake GUI, select source folder, add destination folder and click on "Configure". cMake will ask you to select a generator - recommended for FreeCAD is "Visual Studio 9 2008".
Once you start cMake GUI, select source folder, add destination folder and click on "Configure". cMake will ask you to select a generator - recommended for FreeCAD is "Visual Studio 9 2008".


<!--T:17-->
After you click "Next", cMake will throw error since it can not find LibPack. You will need to manually select folder where Libpack is in "FREECAD_LIBPACK_DIR" variable. After that you need to click on "Configure" once more.
After you click "Next", cMake will throw error since it can not find LibPack. You will need to manually select folder where Libpack is in "FREECAD_LIBPACK_DIR" variable. After that you need to click on "Configure" once more.
After configure is done, click on "Generate". Now you are done with cMake, and you can close it.
After configure is done, click on "Generate". Now you are done with cMake, and you can close it.


<!--T:18-->
Before using Visual Studio, we need to add libpack to system path (you need to do this only once, when building first time). You need to go to "Control Panel >> System >> Advanced System Settings". In the "System properties" dialog, under "Advanced" tab there is button "Environment Variables". Click on it.
Before using Visual Studio, we need to add libpack to system path (you need to do this only once, when building first time). You need to go to "Control Panel >> System >> Advanced System Settings". In the "System properties" dialog, under "Advanced" tab there is button "Environment Variables". Click on it.
After you click on it, add libpack to the Path. Separate it from other path variables with ";".
After you click on it, add libpack to the Path. Separate it from other path variables with ";".


<!--T:19-->
Now you need to start Visual Studio 9 2008. Visual C++ Express 2008 will also work. Before building, it is good procedure to copy bin folder from libpack\bin folder to bin folder of the build files (generated with cMake).
Now you need to start Visual Studio 9 2008. Visual C++ Express 2008 will also work. Before building, it is good procedure to copy bin folder from libpack\bin folder to bin folder of the build files (generated with cMake).


<!--T:20-->
After this go to "File >> Open >> Project/Solution". You need to open FreeCAD_Trunk.sln, from the build files generated with cMake.
After this go to "File >> Open >> Project/Solution". You need to open FreeCAD_Trunk.sln, from the build files generated with cMake.
Once it is opened, there will be three popup menus in the toolbar. One of them says "Debug" - Switch it to "Release".
Once it is opened, there will be three popup menus in the toolbar. One of them says "Debug" - Switch it to "Release".
Then execute "Build >> Build Solution" (or just press F7) - this process will last long time.
Then execute "Build >> Build Solution" (or just press F7) - this process will last long time.


<!--T:21-->
Once it is done, choose "Debug >> Start without Debugging". Popup window will ask you to select exe file. Click on a popup menu under "Executable File Name" and choose "Browse". You need to go to \bin folder where source files are, and select "FreeCAD.exe"
Once it is done, choose "Debug >> Start without Debugging". Popup window will ask you to select exe file. Click on a popup menu under "Executable File Name" and choose "Browse". You need to go to \bin folder where source files are, and select "FreeCAD.exe"


<!--T:22-->
and you are done!
and you are done!


==== command line build ====
==== command line build ==== <!--T:23-->
Here an example how to build FreeCAD from the Command line:
Here an example how to build FreeCAD from the Command line:
</translate>
</translate>
Line 140: Line 156:
</syntaxhighlight>
</syntaxhighlight>
<translate>
<translate>
=== Building older versions ===
=== Building older versions === <!--T:24-->


==== Using LibPack ====
==== Using LibPack ==== <!--T:25-->
To make it easier to get [[FreeCAD]] compiled, we provide a collection of all
To make it easier to get [[FreeCAD]] compiled, we provide a collection of all
needed libraries. It's called the [[LibPack]]. You can find it on the [http://sourceforge.net/project/showfiles.php?group_id=49159 download page] on
needed libraries. It's called the [[LibPack]]. You can find it on the [http://sourceforge.net/project/showfiles.php?group_id=49159 download page] on
sourceforge.
sourceforge.


<!--T:26-->
You need to set the following environment variables:
You need to set the following environment variables:


<!--T:27-->
:'''FREECADLIB''' = "D:\Wherever\LIBPACK"
:'''FREECADLIB''' = "D:\Wherever\LIBPACK"


<!--T:28-->
:'''QTDIR''' = "%FREECADLIB%"
:'''QTDIR''' = "%FREECADLIB%"


<!--T:29-->
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.
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.


===== Directory setup in Visual Studio =====
===== Directory setup in Visual Studio ===== <!--T:30-->
Some search path of Visual Studio need to be set.
Some search path of Visual Studio need to be set.
To change them, use the menu ''Tools→Options→Directory
To change them, use the menu ''Tools→Options→Directory


====== Includes ======
====== Includes ====== <!--T:31-->
Add the following search path to the include path search list:
Add the following search path to the include path search list:
* %FREECADLIB%\include
* %FREECADLIB%\include
Line 181: Line 201:
* %FREECADLIB%\include\zlib
* %FREECADLIB%\include\zlib


====== Libs ======
====== Libs ====== <!--T:32-->
Add the following search path to the lib path search list:
Add the following search path to the lib path search list:
* %FREECADLIB%\lib
* %FREECADLIB%\lib


====== Executables ======
====== Executables ====== <!--T:33-->
Add the following search path to the executable path search list:
Add the following search path to the executable path search list:
* %FREECADLIB%\bin
* %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.
* 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.


===== Python needed =====
===== Python needed ===== <!--T:34-->
During the compilation some Python scripts get executed. So the Python
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
interpreter has to function on the OS. Use a command box to check it. If
Line 197: Line 217:
python.exe in the bin directory.
python.exe in the bin directory.


===== Special for VC8 =====
===== Special for VC8 ===== <!--T:35-->
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.
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.


==== Compile ====
==== Compile ==== <!--T:36-->


<!--T:37-->
After you conform to all prerequisites the compilation is - hopefully - only a mouse click in VC ;-)
After you conform to all prerequisites the compilation is - hopefully - only a mouse click in VC ;-)


==== After Compiling ====
==== After Compiling ==== <!--T:38-->
To get FreeCAD up and running from the compiler environment you need to copy a few files from the [[LibPack]] to the ''bin'' folder where FreeCAD.exe is installed after a successful build:
To get FreeCAD up and running from the compiler environment you need to copy a few files from the [[LibPack]] to the ''bin'' folder where FreeCAD.exe is installed after a successful build:


<!--T:39-->
* ''python.exe'' and ''python_d.exe'' from ''LIBPACK/bin''
* ''python.exe'' and ''python_d.exe'' from ''LIBPACK/bin''
* ''python25.dll'' and ''python25_d.dll'' from ''LIBPACK/bin''
* ''python25.dll'' and ''python25_d.dll'' from ''LIBPACK/bin''
Line 224: Line 246:
* ''QtXml4.dll'' from ''LIBPACK/bin''
* ''QtXml4.dll'' from ''LIBPACK/bin''


<!--T:40-->
When using a [[LibPack]] with a Python version older than 2.5 you have to copy two further files:
When using a [[LibPack]] with a Python version older than 2.5 you have to copy two further files:
* ''zlib.pyd'' and ''zlib_d.pyd'' from ''LIBPACK/bin/lib''. This is needed by python to open the zipped python library.
* ''zlib.pyd'' and ''zlib_d.pyd'' from ''LIBPACK/bin/lib''. This is needed by python to open the zipped python library.
* ''_sre.pyd'' and ''_sre_d.pyd'' from ''LIBPACK/bin/lib''. This is needed by python for the built in help system.
* ''_sre.pyd'' and ''_sre_d.pyd'' from ''LIBPACK/bin/lib''. This is needed by python for the built in help system.


<!--T:41-->
If you don't get it running due to a Python error it is very likely that one of the ''zlib*.pyd'' files is missing.
If you don't get it running due to a Python error it is very likely that one of the ''zlib*.pyd'' files is missing.


==== Additional stuff ====
==== Additional stuff ==== <!--T:42-->


<!--T:43-->
If you whant to build the source code documentation you need [http://www.stack.nl/~dimitri/doxygen/ DoxyGen].
If you whant to build the source code documentation you need [http://www.stack.nl/~dimitri/doxygen/ DoxyGen].


<!--T:44-->
To create an intstaller package you need [http://wix.sourceforge.net/ WIX].
To create an intstaller package you need [http://wix.sourceforge.net/ WIX].




<!--T:45-->
During the compilation some Python scripts get executed. So the Python interpreter has to work properly.
During the compilation some Python scripts get executed. So the Python interpreter has to work properly.


<!--T:46-->
For more details have also a look to ''README.Linux'' in your sources.
For more details have also a look to ''README.Linux'' in your sources.


<!--T:47-->
First of all you should build the Qt plugin that provides all custom widgets of FreeCAD we need for the Qt Designer. The sources are located under
First of all you should build the Qt plugin that provides all custom widgets of FreeCAD we need for the Qt Designer. The sources are located under
</translate>
</translate>
Line 247: Line 276:
</syntaxhighlight>
</syntaxhighlight>
<translate>
<translate>
<!--T:48-->
So far we don't provide a makefile -- but calling
So far we don't provide a makefile -- but calling
</translate>
</translate>
Line 253: Line 283:
</syntaxhighlight>
</syntaxhighlight>
<translate>
<translate>
<!--T:49-->
creates it. Once that's done, calling ''make'' will create the library
creates it. Once that's done, calling ''make'' will create the library
</translate>
</translate>
Line 259: Line 290:
</syntaxhighlight>
</syntaxhighlight>
<translate>
<translate>
<!--T:50-->
To make this library known to your ''Qt Designer'' you have to copy the file to
To make this library known to your ''Qt Designer'' you have to copy the file to
</translate>
</translate>
Line 266: Line 298:
<translate>
<translate>


<!--T:51-->
{{docnav|Tracker|CompileOnUnix}}
{{docnav|Tracker|CompileOnUnix}}
[[Category:Developer Documentation]]
[[Category:Developer Documentation]]

Revision as of 21:08, 29 April 2014

This article explains step by step how to compile FreeCAD on Windows.

Prerequisites

What you need is mainly the compiler. On Windows we use the M$ Visual Studio 9 Compiler 2008 (or VC++ Express 2008) with the highest service pack. Although it's probably possible to use Cygwin or MingW gcc it's not tested or ported so far. You need to download the Windows Platform SDK to get e.g. the Windows.h, although this should not be needed with M$ compilers (either full or express).

Also you need all the Third Party Libraries to successfully compile FreeCAD. If you use the M$ compilers you want most likely to download the FreeCAD LibPack which provides you with all needed libs to build FreeCAD on Windows.

Other prerequisites (and helpful programs) are:

  • cMake
  • TortoiseGit
  • Python 2.6
  • NSIS Windows installer (note: formerly, WiX installer was used - now under transition to NSIS) - if you want to make msi installer

It is also necessary to have, in your system path, paths to:

  • Libpack
  • git (not tortoiseGit, but git.exe)
  • python

Building with cMake

First of all, you have to download cMake and install it on your build machine.

The switch to cMake

Since version 0.9 we use the cMake build system to generate the build/make files for various compilers. We do not longer deliver .vcproj files. If you want build former versions of FreeCAD (0.8 and older) see "Building older versions" later in this article.

We switched because it became more and more painful to maintain project files for 30+ build targets and x compilers. cMake gives us the posibility to support alternative IDEs, like Code::Blocks, Qt Creator and Eclipse CDT. The main compiler we use is still M$ VC9 Express, though. But we plan for the future a build process on Windows without proprietary compiler software.

Configure the build process

The first step to build FreeCAD with cMake is to configure the environment. There are basically two ways to go:

  • Using the LibPack
  • Installing all needed libs and let cMake find them

In the first case you only need to give cMake the path to the LibPack and all the rest should be done automatically and you see such a screen:

You see the LibPack path inserted into the FREECAD_LIBPACK_DIR variable. Starting from that all includes and paths are set. You just need to press the Generate button and the project files get generated.

If you switch the FREECAD_LIBPACK_USE options off, the configuration tries to find each and every library needed on your system. Depending on the libs that works well more or less. So you have to do often define some paths by hand. cMake will show you what is not found and need to be specified.

Options for the Build Process

The cMake build system gives us a lot more flexibility over the build process. That means we can switch on and off some features or modules. It's in a way like the Linux kernel build. You have a lot switches to determine the build process.

Here is the description of these switches. They will most likely change a lot in the future because we want to increase the build flexibility a lot more.

Link table
Variable name Description Default
FREECAD_LIBPACK_USE Switch the usage of the FreeCAD LibPack on or off On Win32 on, otherwishe off
FREECAD_LIBPACK_DIR Directory where the LibPack is FreeCAD SOURCE dir
FREECAD_BUILD_GUI Build FreeCAD with all Gui related modules ON
FREECAD_BUILD_CAM Build the CAM module, experimental! OFF
FREECAD_BUILD_INSTALLER Create the project files for the Windows installer. OFF
FREECAD_BUILD_DOXYGEN_DOCU Create the project files for source code documentation. OFF
FREECAD_MAINTAINERS_BUILD Switch on stuff needed only when you do a Release build. OFF


Procedure with cMake and Visual Studio 9 2008

Once you start cMake GUI, select source folder, add destination folder and click on "Configure". cMake will ask you to select a generator - recommended for FreeCAD is "Visual Studio 9 2008".

After you click "Next", cMake will throw error since it can not find LibPack. You will need to manually select folder where Libpack is in "FREECAD_LIBPACK_DIR" variable. After that you need to click on "Configure" once more. After configure is done, click on "Generate". Now you are done with cMake, and you can close it.

Before using Visual Studio, we need to add libpack to system path (you need to do this only once, when building first time). You need to go to "Control Panel >> System >> Advanced System Settings". In the "System properties" dialog, under "Advanced" tab there is button "Environment Variables". Click on it. After you click on it, add libpack to the Path. Separate it from other path variables with ";".

Now you need to start Visual Studio 9 2008. Visual C++ Express 2008 will also work. Before building, it is good procedure to copy bin folder from libpack\bin folder to bin folder of the build files (generated with cMake).

After this go to "File >> Open >> Project/Solution". You need to open FreeCAD_Trunk.sln, from the build files generated with cMake. Once it is opened, there will be three popup menus in the toolbar. One of them says "Debug" - Switch it to "Release". Then execute "Build >> Build Solution" (or just press F7) - this process will last long time.

Once it is done, choose "Debug >> Start without Debugging". Popup window will ask you to select exe file. Click on a popup menu under "Executable File Name" and choose "Browse". You need to go to \bin folder where source files are, and select "FreeCAD.exe"

and you are done!

command line build

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

 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

Building older versions

Using LibPack

To make it easier to get FreeCAD compiled, we provide a collection of all needed libraries. It's called the LibPack. You can find it on the download page on sourceforge.

You need to set the following environment variables:

FREECADLIB = "D:\Wherever\LIBPACK"
QTDIR = "%FREECADLIB%"

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.

Directory setup in Visual Studio

Some search path of Visual Studio need to be set. To change them, use the menu Tools→Options→Directory

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
Libs

Add the following search path to the lib path search list:

  • %FREECADLIB%\lib
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.
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.

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.

Compile

After you conform to all prerequisites the compilation is - hopefully - only a mouse click in VC ;-)

After Compiling

To get FreeCAD up and running from the compiler environment you need to copy a few files from the LibPack to the bin folder where FreeCAD.exe is installed after a successful build:

  • 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 using a LibPack with a Python version older than 2.5 you have to copy two further files:

  • zlib.pyd and zlib_d.pyd from LIBPACK/bin/lib. This is needed by python to open the zipped python library.
  • _sre.pyd and _sre_d.pyd from LIBPACK/bin/lib. This is needed by python for the built in help system.

If you don't get it running due to a Python error it is very likely that one of the zlib*.pyd files is missing.

Additional stuff

If you whant to build the source code documentation you need DoxyGen.

To create an intstaller package you need WIX.


During the compilation some Python scripts get executed. So the Python interpreter has to work properly.

For more details have also a look to README.Linux in your sources.

First of all you should build the Qt plugin that provides all custom widgets of FreeCAD we need for the Qt Designer. The sources are located under

 //src/Tools/plugins/widget//.

So far we don't provide a makefile -- but calling

 qmake plugin.pro

creates it. Once that's done, calling make will create the library

 //libFreeCAD_widgets.so//.

To make this library known to your Qt Designer you have to copy the file to

 //$QTDIR/plugin/designer//.
Tracker
CompileOnUnix