If that works then, yes of course. But until then we have CMake and all the libraries you need to get.
CMake also includes CPack. I suppose that might be of larger assistance.
Make orxonox distributable
Moderator: PPS-Leaders
Re: Make orxonox distributable
http://www.xkcd.com/
A webcomic of romance, sarcasm, math, and language.
A webcomic of romance, sarcasm, math, and language.
Re: Make orxonox distributable
Making the code distributable implies the presence of a packet of some Linux distribution (rpm, deb etc.), at least for me it does.
For Windows it's enough to offer a download of the fully compiled binary with all the libs in a zip. Of course we can also offer an installer.
When talking about distributing Orxonox I always mean for the end user, the gamer and not for the developer. For the end user there have to be a minimum of steps to make the game playable.
Preferably:
Does anybody of you guys know how to create a package of some sort? For Debian/Ubuntu for instance, it's of course cool if Orxonox also is added into the menu so the player can find Orxonox at "Applications->Games->Orxonox" and stuff like this. I guess there are guides out there which explain this. If we could prepare the trunk so the server can easily create all sorts of packages for all sorts of OS and distributions it would be really great.
For Windows it's enough to offer a download of the fully compiled binary with all the libs in a zip. Of course we can also offer an installer.
When talking about distributing Orxonox I always mean for the end user, the gamer and not for the developer. For the end user there have to be a minimum of steps to make the game playable.
Preferably:
Code: Select all
$ sudo aptitude install orxonox
...
$ orxonox
"I'm Commander Shepard and this is my favorite forum on the internet."
- Nowic
- Thanathon, God of the lower Planes
- Posts: 186
- Joined: Tue Oct 03, 2006 7:53 pm
- Location: Zürich
- Contact:
Re: Make orxonox distributable
Official Debian (and Ubuntu) packaging documentation:
http://www.debian.org/doc/devel-manuals#maint-guide
I created several Debian/Ubuntu packages. It's an easy task, if your build system (and code) allows the following:
It has to be possible to set a custom install prefix. Something like:
./configure --prefix=/usr/local
Working:
make
make install
make clean
make dist (very useful, creates a tar.gz ready for release)
make distclean (optional, if the package is not part of the official debian archive)
And it should obey the unix file system hierarchy when installing. (
http://wiki.debian.org/FilesystemHierarchyStandard )
PREFIX/bin for the executable
PREFIX/share/orxonox for your architecture-independent data.
PREFIX/share/applications for your orxonox.desktop (menu) file ( http://standards.freedesktop.org/menu-spec/latest/ )
CMake should be able to support all these features (e.g. KDE can do it).
http://www.debian.org/doc/devel-manuals#maint-guide
I created several Debian/Ubuntu packages. It's an easy task, if your build system (and code) allows the following:
It has to be possible to set a custom install prefix. Something like:
./configure --prefix=/usr/local
Working:
make
make install
make clean
make dist (very useful, creates a tar.gz ready for release)
make distclean (optional, if the package is not part of the official debian archive)
And it should obey the unix file system hierarchy when installing. (
http://wiki.debian.org/FilesystemHierarchyStandard )
PREFIX/bin for the executable
PREFIX/share/orxonox for your architecture-independent data.
PREFIX/share/applications for your orxonox.desktop (menu) file ( http://standards.freedesktop.org/menu-spec/latest/ )
CMake should be able to support all these features (e.g. KDE can do it).
"I've always lived cheaply. I live like a student, basically. And I like that because it means that money is not telling me what to do. I can do what I think is important for me to do. It freed me to do what seemed worth doing." -- Richard Stallman
Re: Make orxonox distributable
Thx now for summing up the tasks. Here comes a status update:
As far as I can see I have implemented most of it up until make dist. Just the paths are probably not correct. Since I don't exactly know to much about Linux, I simply asked those guys![Wink ;)](./images/smilies/icon_e_wink.gif)
Our build system supports copyable installations, which means everything gets into one folder with different subfolders (bin, lib, lib/static, data, config, log, lib/modules). This is very useful for "installing" on systems where you don't have the rights to install as usual. And it is extremely useful for Windows since you can simply move things around without worrying.
But the default installation for Linux is of course with hard coded paths. Here are the currently used paths (extract from InstallConfig.cmake from the resource2 branch):
${CMAKE_INSTALL_PREFIX} is a CMake Cache variable so you can easily configure it. The default points to "/usr/local".
Is that remotely correct? The config and log folders go to ~/.orxonox, but at runtime.
And orxonox still runs smoothly if you use the executable from any other directory (as long as the binary path is in the PATH variable). It was quite a pain, but I found code for all three platforms to perform this.
make, make install and make clean should work properly.
However I haven't yet had a look at CPack to generate the packages. It seems to offer quite a lot, but with sparse documentation.
If I can find the time I shall have a look at it.
As far as I can see I have implemented most of it up until make dist. Just the paths are probably not correct. Since I don't exactly know to much about Linux, I simply asked those guys
![Wink ;)](./images/smilies/icon_e_wink.gif)
Our build system supports copyable installations, which means everything gets into one folder with different subfolders (bin, lib, lib/static, data, config, log, lib/modules). This is very useful for "installing" on systems where you don't have the rights to install as usual. And it is extremely useful for Windows since you can simply move things around without worrying.
But the default installation for Linux is of course with hard coded paths. Here are the currently used paths (extract from InstallConfig.cmake from the resource2 branch):
Code: Select all
SET(RUNTIME_INSTALL_DIRECTORY ${CMAKE_INSTALL_PREFIX}/bin)
SET(LIBRARY_INSTALL_DIRECTORY ${CMAKE_INSTALL_PREFIX}/lib/orxonox)
SET(ARCHIVE_INSTALL_DIRECTORY ${CMAKE_INSTALL_PREFIX}/lib/orxonox/static)
SET(DOC_INSTALL_DIRECTORY ${CMAKE_INSTALL_PREFIX}/share/doc/orxonox)
SET(DATA_INSTALL_DIRECTORY ${CMAKE_INSTALL_PREFIX}/share/orxonox)
Is that remotely correct? The config and log folders go to ~/.orxonox, but at runtime.
And orxonox still runs smoothly if you use the executable from any other directory (as long as the binary path is in the PATH variable). It was quite a pain, but I found code for all three platforms to perform this.
make, make install and make clean should work properly.
However I haven't yet had a look at CPack to generate the packages. It seems to offer quite a lot, but with sparse documentation.
If I can find the time I shall have a look at it.
http://www.xkcd.com/
A webcomic of romance, sarcasm, math, and language.
A webcomic of romance, sarcasm, math, and language.
Re: Make orxonox distributable
Having installed many things on Ubuntu "/usr/local" is only the path to go when I do "sudo make install" having downloaded the source of a library or application.1337 wrote:Is that remotely correct?
Usually when I install a deb-package the path used is "/usr". Maybe this counts only for official packages, but that's not something that I have observed so far.
"I'm Commander Shepard and this is my favorite forum on the internet."
Who is online
Users browsing this forum: No registered users and 59 guests