Building Spring on Windows: Difference between revisions
Auswaschbar (talk | contribs) No edit summary |
m updated mingwlibs link to v17 |
||
| Line 17: | Line 17: | ||
* binutils | * binutils | ||
* win32api | * win32api | ||
Use [http://jobjol.nl/ | Use [http://jobjol.nl/2036 v17 of the MinGW library package] if you have MinGW . | ||
====MinGW Setup==== | ====MinGW Setup==== | ||
Revision as of 16:33, 8 May 2009
Get the Source Code
Tarballs
(For playing online official games on lobby.springrts.com - the spring lobby server)
Using Git is the recommended way to get the sources of the engine.
In spite of, you can use the official tarballs to compile Spring without git.
Note: Do NOT use the zip-files from github, they are missing important data to compile Spring.
See Building spring for build instructions.
Git
Master repo URI:
git://github.com/spring/spring.git
Backup repo: git://git.code.sf.net/p/springrts/code
Branches of interest:
- master - latest stable, enforced for official games on lobby.springrts.com
- maintenance - fixes for the latest stable
- develop - major developments (most active, larger developments)
Assuming the GIT command line client is installed, you can clone (get locally) the repository with the commands below.
Latest Stable (master branch, useless for development purposes, lives as maintenance moving forward)
git clone --recursive git://github.com/spring/spring.git -b master
To later update it (get the changes other people did) with:
git pull --rebase
Maintenance (maintenance branch)
git clone --recursive git://github.com/spring/spring.git -b maintenance
Bleeding-edge (develop branch)
git clone --recursive git://github.com/spring/spring.git -b develop
Working with git
Please note that patches to the code must be done for either develop or maintenance. Such patches can be then sent to one of the developers with repository access. If you are new to git and github, you may want to have a look at this guide to get you started.
Note: you can switch branches this way:<syntaxhighlight lang="bash">
- (optional) backup your current code changes
git stash
- switch branch
git checkout $MY_OTHER_BRANCH
- sometimes needed
- note, it deletes all your unstashed changes and all non-pushed commits on the new branch,
- but it doesn't delete untracked files.
- git reset --hard
- update/sync with remote repo
git pull --rebase
- (optional) if you want to apply the code changes backed-up in the first step
- git stash pop # reapplies your changes and DELETES the backup
- or
- git stash apply --index 0 # reapplies your changes and keep the backup (see `git stash list`)
</syntaxhighlight>
Submodules
To obtain the submodules you should clone the repository with --recursive as mentioned above. If you haven't done this, you can execute the following code <syntaxhighlight lang="bash"> git submodule sync git submodule update --init
</syntaxhighlight>
To update the submodules, you have to execute the same commands again or pull normally.
Compiling on Windows
For other platforms see Building spring.
Install MinGW
Code::Blocks and Dev C++ use MinGW too, so if you are using one of these IDEs, you'll want to follow these instructions too.
Getting MinGW
Compiling in MinGW requires GCC 4.x which is only available in experimental builds. TDM's experimental MinGW
Get at least the following packages:
- mingw-runtime
- core
- c++
- binutils
- win32api
Use v17 of the MinGW library package if you have MinGW .
MinGW Setup
There are two ways to setup the MinGL libraries:
1. Make sure you install the package in the checkout directory, so the path is: /spring/mingwlibs. If done right, it will look like:
- /spring/
- /spring/installer
- /spring/rts
- /spring/... other dirs
- /spring/mingwlibs
2. Install the package somewhere else (preferably outside of the source tree), and pass its location with the MINGWDIR option to CMake in the configure step (see further down, in the quick instructions).
These programs are a must have if you want to compile Spring with MinGW, so install them now, if you don't have them already.
Compiling with cmake
Currently the CMake scripts are not capable of generating Visual Studio project files, so CMake can only be used for gcc compiling.
- run the cmake-gui and select a source and a build directory
- configure and follow the instructions, and adjust variables to your needs (defaults are OK)
- press generate
- open a console, cd into your build directory, run "make"
Compiling with scons
Install the following programs (you don'T need cmake in this case):
Quick instructions
- Grab and install the above programs.
- Make sure C:\Python25, C:\Python25\Scripts and C:\Dev-Cpp\bin are in your PATH environment variable. Set environment variables by: Start -> Settings -> Control Panel -> System -> Advanced -> Environment variables (for Windows XP).
- Make sure a MINGDIR environment variable with value C:\Dev-Cpp exists. (change paths where appropriate.)
- Checkout the Spring SVN repository, following the instructions above in obtaining source. (TODO:link)
- Open a console (Start -> Run -> cmd.exe -> Run), cd \where you checked it out in the previous step, if you checked it out on a different drive make sure to change drives with DriveLetter:<enter> first.
- Type scons configure<enter>. Refer to scons --help for options which can be passed to scons configure. Gotchas:
- If you get an error message starting with "EOFError: : env = Environment...", try deleting the file build/scons_signatures.dblite
- If you get an error message stating "ImportError: No module named win32file:", you have probably not installed the python-win32-extensions.
- If all proceeds as intended you will see a message similar to: "Everything seems OK. Run `scons' now to build."
- Type scons<enter> to start the compilation.
- If you have Delphi installed and get an error message that the commandline params "--no-print-directory" & "-C" aren't supported, then you should remove the Delphi dirs from your PATH variable, because scons tried to run the delphi's make.exe instead of using mingw32-make. (this will cause that streflop can't be build!)
- Wait for the compilation to finish, this may take a while.
- Copy datafiles and stuff from official Spring installation to the /spring/game directory (where spring.exe is located, after the compilation finished.)
- Copy missing DLLs from mingwlibs/dll.
- Start developing.
Visual Studio 8 (2005)
(possibly the free Express Edition)
- Install the vclibs library package. You need to install this in the /spring directory from the SVN checkout or the zipped source. If done right, it will look like:
- /spring/
- /spring/installer
- /spring/rts
- /spring/... other dirs
- /spring/vclibs
- Install the DirectX SDK
- Install the PlatformSDK. I got away with unchecking the parts of the PlatformSDK that were obviously not related (IIS, web stuff). Makes for a smaller download. Make sure the Platform SDK and DirectX SDK are in the VS search/include directories:
- After installing them, open Visual C++. Click Tools >> Options >> Projects and Solutions >> VC++ Directories. Add these entries to the corresponding sections (paths just a reference, yours may be different):
- Include files:
- $(ProgramFiles)\Microsoft DirectX SDK (August 2007)\Include
- $(ProgramFiles)\Microsoft Platform SDK\include
- Library files:
- $(ProgramFiles)\Microsoft DirectX SDK (August 2007)\Lib\x86 (Might need \x64 on a 64-bit platform, I don't know.)
- $(ProgramFiles)\Microsoft Platform SDK\lib
- Include files:
- Open the solution. /spring/rts/build/vstudio8/rts.sln
- Start building (usually you want to select the release/no debug build, debug is really too slow and is used only when you really know what you want to test)
- Select the working directory in the project properties, otherwise spring will not work correctly
Visual Studio 9 (2008)
(possibly the free Express Edition)
Not yet fully working as far as I know; you need at least this hotfix from Microsoft though:
http://support.microsoft.com/kb/946040
For the rest the Visual Studio 8 instructions should apply, mostly.