Version 22 (modified by landauf, 8 years ago) (diff) |
---|
Windows with Visual Studio
Platforms
Preparations
You need to get either Visual Studio 2005, 2008 or 2010 with the latest service pack (SP1 in all cases).
Express Editions: There should be no problem compiling Orxonox with an Express Edition of Visual C++.
Getting everything set and done
- Check out the SVN trunk or of any branch you want. Do the same with the data repository but make sure that both checkouts are on the same folder level with the data folder named data_extern. More information can be found in the download section.
- The next thing is getting the external dependencies. We supply these as precompiled archives (see at the bottom) with the lib, dll and include files. Once you got the archive, put it in the directory of your source checkout folder and extract it right there (not in a new folder). This will create a folder named "dependencies" that includes everything necessary.
You should now have a directory structure like this:
data_external //(repository checkout) ... trunk //(repository checkout, you choose the name..) bin ... dependencies bin include lib src
- We use CMake to have better cross platform support. Get the latest (at least v2.8.3) binaries at cmake.org and extract/install them.
- Run the CMake GUI and select your source checkout folder ('trunk' in the example above). The binary folder below can be anywhere except the source folder itself. We suggest trunk/build.
- Hit configure
- If you need additional configuration options, have a look a the General Build Options Page.
- Hit "configure" again (or as long as "generate" is unavailable) and then "generate". You will be prompted to select a generator. Choose the Visual Studio version you have (64 bit is not yet supported!).
- Go to your freshly created binary folder, open Orxonox.sln and hit F7. That will build Orxonox which will take few minutes depending on how fast your CPU is.
- On the left you see all targets, make sure that 'orxonox-main' is bold by right clicking on it and selecting "Set as StartUp Project".
- F5 will start the game.
Using dependencies for multiple compilers together
If you feel like using multiple compilers (VS8/VS9/VS10/MinGW), you have to change your directory structure of the dependencies a little. An example should clear the details:
trunk bin ... dependencies msvc8 dependencies bin include lib mingw ... src
Note that in this case automatic dependency finding only works if you name your folders exactly like this! Otherwise you can specify the folder yourself in the CMake window.
Using the same dependencies for multiple checkouts
While working on a branch you might still want to have the trunk checked out at the same time. But having the dependencies twice seems very redundant and unnecessary. You can avoid it like this:
branch ... dependencies bin include lib trunk ...
Using multiple checkouts with multiple compilers
Of course you can also combine the last two subsections. When looking for the dependencies, CMake looks for the direct dependencies subfolder first.
Debugging
In case you need to profile Orxonox or debug dependencies (e.g. OGRE), we also provide debug symbols and sources. The archives can be found in the same section as the precompiled dependencies.
When debugging into such a file, VS will ask you to specify its location. For that you will have to search for the file in the src folder of your dependencies. After that, VS should not ask anymore for a location.
Note: Currently the sources are only available for Visual Studio 2010.
Deployment (VS 2010 only)
When installing Orxonox with the CMake variable INSTALL_COPYABLE=ON (the default), then the INSTALL project in your Visual Studio solution will create a distributable file tree. The log and configuration files will then be written into that folder when starting the game. That means the user will need write access to that location.
By arching everything except for the log and config folders, you can create a binary archive the same way we do it.
If you have any trouble, feel free to contact (Reto '1337' Grieder).