Downloading and Compiling under Windows: Difference between revisions

From Arx Libertatis Wiki
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 1: Line 1:
Here's a quick guide describing how to compile and debug Arx Fatalis under Windows using Visual Studio 2010.  It should also work using Visual Studio 2008, given that you generate the right projects using CMake. Paths used here are only to give as an example...
== Applications ==
== Applications ==
* Visual C++ 2010 Express Edition: http://www.microsoft.com/express/Downloads/
* Visual C++ 2010 Express Edition: http://www.microsoft.com/express/Downloads/
Line 12: Line 14:
=== ZLib - http://www.zlib.net ===
=== ZLib - http://www.zlib.net ===
* Download the latest version of the "zlib compiled DLL": http://zlib.net/zlib125-dll.zip
* Download the latest version of the "zlib compiled DLL": http://zlib.net/zlib125-dll.zip
** Extract in C:\Seb\Code\Libs\zlib
** Extract in C:\Code\Libs\zlib
* Download the latest version of the "zlib source code": http://zlib.net/zlib125.zip
* Download the latest version of the "zlib source code": http://zlib.net/zlib125.zip
** Extract in C:\Seb\Code\Libs\zlib-src
** Extract in C:\Code\Libs\zlib-src
* Open this VC10 solution: C:\Seb\Code\Libs\zlib-src\contrib\vstudio\vc10\zlibvc.sln
* Open this VC10 solution: C:\Code\Libs\zlib-src\contrib\vstudio\vc10\zlibvc.sln
** Build the ReleaseWithoutAsm target
** Build the ReleaseWithoutAsm target
* Copy the generated library
* Copy the generated library
** C:\Seb\Code\Libs\zlib-src\contrib\vstudio\vc10\x86\ZlibDllReleaseWithoutAsm\zlibwapi.lib
** C:\Code\Libs\zlib-src\contrib\vstudio\vc10\x86\ZlibDllReleaseWithoutAsm\zlibwapi.lib
** To the following location (replace the existing file): C:\Seb\Code\Libs\zlib\lib\zdll.lib
** To the following location (replace the existing file): C:\Code\Libs\zlib\lib\zdll.lib
* Copy the generated dll
* Copy the generated dll
** C:\Seb\Code\Libs\zlib-src\contrib\vstudio\vc10\x86\ZlibDllReleaseWithoutAsm\zlibwapi.dll
** C:\Code\Libs\zlib-src\contrib\vstudio\vc10\x86\ZlibDllReleaseWithoutAsm\zlibwapi.dll
** To the arx bin folder: E:\git\ArxFatalis\bin\zlibwapi.dll
** To the arx bin folder: C:\Code\git\ArxFatalis\bin\zlibwapi.dll


=== Freetype - http://freetype.sourceforge.net ===
=== Freetype - http://freetype.sourceforge.net ===
* Download freetype2: http://freetype.sourceforge.net/download.html
* Download freetype2: http://freetype.sourceforge.net/download.html
* Extract in C:\Seb\Code\Libs\freetype
* Extract in C:\Code\Libs\freetype
* Open VC2008 solution: C:\Seb\Code\Libs\freetype\builds\win32\vc2008\freetype.sln", VC2010 should convert it without any problem.
* Open VC2008 solution: C:\Code\Libs\freetype\builds\win32\vc2008\freetype.sln"
** VC2010 should convert it without any problem.
** Select the "LIB Release Multithreaded" target
** Select the "LIB Release Multithreaded" target
** Build, should give you a lot of warnings but succeed anyway
** Build, should give you a lot of warnings but succeed anyway
* Copy the generated library  
* Copy the generated library  
** C:\Seb\Code\Libs\freetype\objs\win32\vc2008\freetype244MT.lib
** C:\Code\Libs\freetype\objs\win32\vc2008\freetype244MT.lib
** To the following location: C:\Seb\Code\Libs\freetype\lib\freetype.lib
** To the following location: C:\Code\Libs\freetype\lib\freetype.lib


=== DevIL - http://openil.sourceforge.net ===
=== DevIL - http://openil.sourceforge.net ===
* Download "DevIL 1.x.y SDK for 32-bit Windows": http://openil.sourceforge.net/download.php
* Download "DevIL 1.x.y SDK for 32-bit Windows": http://openil.sourceforge.net/download.php
* Extract in "C:\Seb\Code\Libs\devil"
* Extract in "C:\Code\Libs\devil"
* Copy the following DLL
* Copy the following DLL
** C:\Seb\Code\Libs\devil\lib\DevIL.dll
** C:\Code\Libs\devil\lib\DevIL.dll
** To the arx bin folder: E:\git\ArxFatalis\bin\DevIL.dll
** To the arx bin folder: C:\Code\git\ArxFatalis\bin\DevIL.dll


=== DirectX 7 SDK ===
=== DirectX 7 SDK ===
Line 46: Line 49:
* Run the setup  
* Run the setup  
** C:\dx7asdk\DXF\setup.exe
** C:\dx7asdk\DXF\setup.exe
** Install to C:\Seb\Code\Libs\directx7
** Install to C:\Code\Libs\directx7
* Add DX7SDK_PATH to your environment variable:
* Add DX7SDK_PATH to your environment variable:
** DX7SDK_PATH=C:\Seb\Code\Libs\directx7
** DX7SDK_PATH=C:\Code\Libs\directx7


=== CMake ===
=== CMake ===
We need to tell cmake where to search for our libs
We need to tell cmake where to search for our libs
* Add CMAKE_PREFIX_PATH to your environment variable:
* Add CMAKE_PREFIX_PATH to your environment variable:
** CMAKE_PREFIX_PATH=C:\Seb\Code\Libs\zlib;C:\Seb\Code\Libs\freetype;C:\Seb\Code\Libs\DevIL
** CMAKE_PREFIX_PATH=C:\Code\Libs\zlib;C:\Code\Libs\freetype;C:\Code\Libs\DevIL


== Get the code ==
== Get the code ==
Line 67: Line 70:


== Building ArxFatalis ==
== Building ArxFatalis ==
* Open the solution in Visual Studio: E:\git\ArxFatalis\build_vc10\ArxFatalis.sln
* Open the solution in Visual Studio: C:\Code\git\ArxFatalis\build_vc10\ArxFatalis.sln
** If you use Visual C++ 2010, there's a bug causing all cpp files to be place in the root of the project... it is annoying but has no effect on the build itself. See http://public.kitware.com/Bug/view.php?id=11925. VC++ 2008 is fine.
** If you use Visual C++ 2010, there's a bug causing all cpp files to be place in the root of the project... it is annoying but has no effect on the build itself. See http://public.kitware.com/Bug/view.php?id=11925. VC++ 2008 is fine.
* You can build the debug target (has debug symbols & can be debugged) or the release target (faster, but currently without debug information)
* You can build the debug target (has debug symbols & can be debugged) or the release target (faster, but currently without debug information)

Revision as of 02:22, 5 May 2011

Here's a quick guide describing how to compile and debug Arx Fatalis under Windows using Visual Studio 2010. It should also work using Visual Studio 2008, given that you generate the right projects using CMake. Paths used here are only to give as an example...

Applications

Libraries

ZLib - http://www.zlib.net

  • Download the latest version of the "zlib compiled DLL": http://zlib.net/zlib125-dll.zip
    • Extract in C:\Code\Libs\zlib
  • Download the latest version of the "zlib source code": http://zlib.net/zlib125.zip
    • Extract in C:\Code\Libs\zlib-src
  • Open this VC10 solution: C:\Code\Libs\zlib-src\contrib\vstudio\vc10\zlibvc.sln
    • Build the ReleaseWithoutAsm target
  • Copy the generated library
    • C:\Code\Libs\zlib-src\contrib\vstudio\vc10\x86\ZlibDllReleaseWithoutAsm\zlibwapi.lib
    • To the following location (replace the existing file): C:\Code\Libs\zlib\lib\zdll.lib
  • Copy the generated dll
    • C:\Code\Libs\zlib-src\contrib\vstudio\vc10\x86\ZlibDllReleaseWithoutAsm\zlibwapi.dll
    • To the arx bin folder: C:\Code\git\ArxFatalis\bin\zlibwapi.dll

Freetype - http://freetype.sourceforge.net

  • Download freetype2: http://freetype.sourceforge.net/download.html
  • Extract in C:\Code\Libs\freetype
  • Open VC2008 solution: C:\Code\Libs\freetype\builds\win32\vc2008\freetype.sln"
    • VC2010 should convert it without any problem.
    • Select the "LIB Release Multithreaded" target
    • Build, should give you a lot of warnings but succeed anyway
  • Copy the generated library
    • C:\Code\Libs\freetype\objs\win32\vc2008\freetype244MT.lib
    • To the following location: C:\Code\Libs\freetype\lib\freetype.lib

DevIL - http://openil.sourceforge.net

  • Download "DevIL 1.x.y SDK for 32-bit Windows": http://openil.sourceforge.net/download.php
  • Extract in "C:\Code\Libs\devil"
  • Copy the following DLL
    • C:\Code\Libs\devil\lib\DevIL.dll
    • To the arx bin folder: C:\Code\git\ArxFatalis\bin\DevIL.dll

DirectX 7 SDK

  • Not available anymore from Microsoft... so download it here: http://bcb-tools.com/Downloads/Microsoft/dx7adxf.exe
  • Run it, its a setup in a self extracting exe (extracted to C:\dx7asdk\ by default)
  • Run the setup
    • C:\dx7asdk\DXF\setup.exe
    • Install to C:\Code\Libs\directx7
  • Add DX7SDK_PATH to your environment variable:
    • DX7SDK_PATH=C:\Code\Libs\directx7

CMake

We need to tell cmake where to search for our libs

  • Add CMAKE_PREFIX_PATH to your environment variable:
    • CMAKE_PREFIX_PATH=C:\Code\Libs\zlib;C:\Code\Libs\freetype;C:\Code\Libs\DevIL

Get the code

Run GitBash - msysgit should have installed a shortcut for it on your desktop

git clone git@github.com:lubosz/ArxFatalis.git
cd ArxFatalis

Generating VC++ projects

We'll use CMake for that

mkdir build_vc10
cd build_vc10
cmake .. -G "Visual Studio 10" -DARX_USE_UNITYBUILD=1

Building ArxFatalis

  • Open the solution in Visual Studio: C:\Code\git\ArxFatalis\build_vc10\ArxFatalis.sln
  • You can build the debug target (has debug symbols & can be debugged) or the release target (faster, but currently without debug information)

Debugging ArxFatalis

  • Right click on the arx project and select "Properties..."
  • Go to "Configuration Properties->Debugging"
  • Change the "Working Directoy" property to "..\bin"
    • Note that this needs to be done for each target you wish to build/debug
  • Change full_screen to 0 in bin\cfg_default.ini, as debugging with a fullscreen dx windows is a pain
  • Click the "debug" button (F5) and enjoy :D