As i wrote on the mailinglist, i have a more or less functional cmake build system (currently not working on windows). The extension cpack is able to generate installers for windows, deb and rpm packages from the install routines and some additional settings.
awesome!!!I posted to the mailing list, so I hope somebody replies to let me know it went through. If not, I need to hassle with it more until I figure out how to get the *$)#@(* mailing list to accept my emails.
Actually, userdir will be very important, as I'm darn sure not going to sudo to root and write mods into the /usr directory.
It's not uncommon on *nix for userdir=~/.glestae and configdir=~/.glestae/config or some such. For *nix systems (which includes Mac now) , I would certainly prefer there to be only one directory for this. The same can probably hold true for windows, although windows pukes (in various ways) on directories and files that start with a dot. Surprising? Accident? Unlikely. So for Windows, the "%USERDIR%/Application Data/GlestAE/" directory could probably be used (where %USERDIR% should translate into something like "C:\Documents And Settings\your_user_name"). We don't currently support searching in multiple directories for things, but this is something I've been discussing on & off (possibly via physfs or maybe some SDL_ filesystem library?).
Add-onsSo this is a bit of a tangent, sorry. Basically, I want to have the concept of add-ons that will have their directory. So if I install both a "Jack" and a "Jill" add-on, the directories might look something like this:
~/.glestae/addons/Jack
~/.glestae/addons/Jack/maps
~/.glestae/addons/Jack/tilesets
~/.glestae/addons/Jack/tilesets/hilltop
~/.glestae/addons/Jack/tilesets/hilltop/models
~/.glestae/addons/Jack/tilesets/hilltop/sounds
~/.glestae/addons/Jack/tilesets/hilltop/textures
~/.glestae/addons/Jill
~/.glestae/addons/Jill/scenarios
~/.glestae/addons/Jill/scenarios/buckets_and_pregnancy
I want some type of standard file that must be in the root directory of each add-on for GAE to even install it. This file should specify version & dependencies (of other add-ons). Each dependency entry should specify an add-on name and a version mask. Example, the file ~/.glestae/addons/Jill/info may contain something like:
<addon name="Jill" description="Jill's XXX Adventure" version="0.3a">
<dependencies>
<dependency name="Jack" min-version="0.2"/>
</dependencies>
</addon>
Ideally, however, it should accept version ranges with exclusions for known bad versions, etc. But initially, we can skip the version specification (for add-on dependencies) entirely.
Each add-on can optionally have any of the directories maps, tilesets, scenarios, lang, techtree and core (and any other add-on-able objects we come up with later). The "core" directory will only be used if GAE is started with an option that tells it to use an alternate set of core data -- this will eventually facilitate the "entire game modification" we've been talking about, where the 3d background, screens, music, GUI screens, look & feel, etc. can be altered so that you don't even have to know that it's running on the GAE engine. I would like for GAE to eventually be able to "become" a different game just by installing an add-on and specifying to use its core data instead of the default "Glest" game.