Difference between revisions of "Developing Oolite"
(→On Linux) |
|||
Line 22: | Line 22: | ||
We now repatriate the code locally: we fetch it. | We now repatriate the code locally: we fetch it. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== On Linux === | === On Linux === | ||
Line 49: | Line 41: | ||
Installing Doxygen | Installing Doxygen | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== On Linux === | === On Linux === | ||
Line 66: | Line 50: | ||
The documentation is generated into a html sub-directory. | The documentation is generated into a html sub-directory. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== On Linux === | === On Linux === | ||
Line 80: | Line 56: | ||
= Setting up your development environment = | = Setting up your development environment = | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== On Linux == | == On Linux == | ||
Line 101: | Line 69: | ||
You can see the call hierarchy in the doxygen documentation. | You can see the call hierarchy in the doxygen documentation. | ||
+ | |||
+ | = Building = | ||
+ | == On Windows == | ||
+ | Let's hear the wise words of another_commander: | ||
+ | |||
+ | ''"Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk."'' | ||
+ | |||
+ | The download link to the Oolite Development Environment - Light Edition is this: | ||
+ | https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing | ||
+ | The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required. | ||
+ | |||
+ | Instructions on how to build an Oolite trunk executable from zero: | ||
+ | |||
+ | Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc. | ||
+ | |||
+ | Once unzipped, you must run the msys.bat file, found in <RootOfWhereTheEnvironmentWasInstalled>\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up. | ||
+ | |||
+ | Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this: | ||
+ | 1) Devlibs -> Devlibs64, | ||
+ | 2) Mingw -> Mingw64, | ||
+ | 3) Devlibs32 -> Devlibs | ||
+ | 4) Mingw32 -> Mingw | ||
+ | Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so. | ||
+ | |||
+ | The rest of the steps are: | ||
+ | |||
+ | 1. Create our working directory: | ||
+ | Code: | ||
+ | mkdir /d/myoolite | ||
+ | to create a folder called myoolite under D:\. This is where we will check out the code, but instead of D: any available drive letter can be used. We will refer to D: here for simplicity. | ||
+ | Code: | ||
+ | cd /d/myoolite | ||
+ | to enter our working directory. | ||
+ | |||
+ | 2. Check out the oolite code: | ||
+ | Code: | ||
+ | git clone https://github.com/OoliteProject/oolite.git | ||
+ | This will start copying the source code from the repository to your working dir. When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a | ||
+ | Code: | ||
+ | cd oolite | ||
+ | to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while): | ||
+ | Code: | ||
+ | git submodule update --init | ||
+ | |||
+ | |||
+ | 3. Build the source: | ||
+ | Code: | ||
+ | make debug=no | ||
+ | That's it! Sit back and relax while it builds. Once done, you will find two new folders under the oolite folder: obj.win.spk and oolite.app. obj.win.spk contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is. | ||
+ | |||
+ | 4. Profit: | ||
+ | Double click the oolite.exe file that resides in your D:\myoolite\oolite\oolite.app folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it. | ||
+ | |||
+ | If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then | ||
+ | Code: | ||
+ | cd /d/myoolite/oolite | ||
+ | git pull | ||
+ | git submodule update | ||
+ | make debug=no | ||
+ | |||
+ | |||
+ | ''"Good luck."'' |
Revision as of 15:27, 20 March 2015
Contents
Overview
This page intends to allow you to setup an environment to develop Oolite.
Versioning
When developing software, each little modification is tracked independently and assigned a version identifier. That's called versioning. To do this, we use the git software.
The Oolite code is hosted on a git-friendly repository: github.
Creating a GitHub account
Go to https://github.com/ and create an account.
Creating a branch on GitHub
Fork the oolite main branch.
Fetching your branch
We now repatriate the code locally: we fetch it.
On Linux
Installing git
We need git for this. Installing it depends on your distribution. For ubuntu:
sudo apt-get install git
Fetching
$git fetch --help
Documentation
The documentation is automatically generated from the source code. When generated, it's 700mb heavy !
Pre-requisites
Installing Doxygen
On Linux
It depends on your distribution. For Ubuntu:
sudo apt-get install doxygen
Generation
The documentation is generated into a html sub-directory.
On Linux
Go into your oolite directory and just do: $doxygen Doxyfile
Setting up your development environment
On Linux
Do as you wish :-)
I use vim + youcompleteme.
There's no IDE on linux managing objective-c (at least not Eclipse and Intellij). Auto-completion doesn't work in most of them because the xCode libraries aren't available (they're on OS X).
The only plugin for objective-c on eclipse is discontinued.
You can see the call hierarchy in the doxygen documentation.
Building
On Windows
Let's hear the wise words of another_commander:
"Seeing that, despite the quite comprehensive wiki instructions on how to make an Oolite executable, building from source on Windows is still a quite complicated matter, I have created a package that will hopefully simplify the process a lot and allow even the relatively inexperienced users to have a razor bleeding edge version of the game to play with and test. Please note that bleeding edge versions may cause spontaneous combustion of your computer, so you use them at own risk."
The download link to the Oolite Development Environment - Light Edition is this: https://drive.google.com/file/d/0BwG6R5Qjd1f2aWRxZDY5NkxlcG8/edit?usp=sharing The package contains the Objective-C compiler plus Posix environment (MinGW/MSYS), the Git package version 1.8.3 required for checking out and updating the source code and the required gnustep-base 1.20.1 files. No other downloads will be required.
Instructions on how to build an Oolite trunk executable from zero:
Download the environment and unzip it to a folder of your choice. IMPORTANT: The zip file you downloaded must be decompressed maintaining the folders' path structure, check your unzip program's documentation if you are not sure how to do this. Also note that in the unlikely case that your system is using drive letter O:, you will need to edit the files msys_x2/1.0/msys.bat and msys_x2/1.0/etc/fstab and change the references to o: to an unused drive letter. MORE IMPORTANT: Do not install this in a path containing spaces. We have had cases where the environment failed to work when installed in locations such as My Documents, Program Files etc.
Once unzipped, you must run the msys.bat file, found in <RootOfWhereTheEnvironmentWasInstalled>\msys_x2\1.0. You can create a shortcut to desktop for this file if you want. Once run, the environment will start up.
Important note: The latest development environment is by default configured for building the 64-bit version of the game, but it contains all files necessary for building the 32-bit flavor as well. To switch to the 32-bit version of the compiler, you need to navigate to the folder Msys_x2/1.0 and rename the following folders like this: 1) Devlibs -> Devlibs64, 2) Mingw -> Mingw64, 3) Devlibs32 -> Devlibs 4) Mingw32 -> Mingw Reverse-rename to return to the 64-bit configuration. Never, ever mix 32-bit Devlibs with 64-bit Mingw or vice-versa. Expect build failure if you do so.
The rest of the steps are:
1. Create our working directory: Code: mkdir /d/myoolite to create a folder called myoolite under D:\. This is where we will check out the code, but instead of D: any available drive letter can be used. We will refer to D: here for simplicity. Code: cd /d/myoolite to enter our working directory.
2. Check out the oolite code: Code: git clone https://github.com/OoliteProject/oolite.git This will start copying the source code from the repository to your working dir. When finished, there will be a folder named oolite under the folder you performed the checkout. Next do a Code: cd oolite to enter in the trunk folder, where the actual build will take place. Finally, execute this command to pull in all the binary dependencies needed for the full build (maybe you can take a coffee break here, this takes a while): Code: git submodule update --init
3. Build the source:
Code:
make debug=no
That's it! Sit back and relax while it builds. Once done, you will find two new folders under the oolite folder: obj.win.spk and oolite.app. obj.win.spk contains the object files produced by the compiler and you don't need to worry too much about it. And of course you all know what oolite.app is.
4. Profit: Double click the oolite.exe file that resides in your D:\myoolite\oolite\oolite.app folder. You should see the splash screen followed by the familiar rotating Cobra. Now you can go and improve your Elite rating and give us some feedback from your testing while you're at it.
If at any later time you would like to update to the code that will be current by then, all you need to do is start up MSYS, then Code: cd /d/myoolite/oolite git pull git submodule update make debug=no
"Good luck."