Hey guys,
I've lately been toying with a relatively recent build system called
bake. It was created and is maintained by Robert Ancell and you can
find the source code here: https://launchpad.net/bake.
There isn't much documentation out there, but the manual will teach
you most important
things: https://answers.launchpad.net/bake/+faq/2172
$ bzr branch lp:bake
$ cd bake
$ yelp help
So if you're like me and have no idea about cmake, bake might be the
perfect alternative. It is very simple and requires practically no
boiler code (unlike cmake). It would also be easier for new
developers to set up their own projects.
I'm pretty sure you want to see some actual implementation, so here
it is:
https://code.launchpad.net/~julien-spautz/cable/bake
If you look at the diffs
(http://bazaar.launchpad.net/~julien-spautz/cable/bake/revision/137) you'll
see that I added a few Recipe files, containing all the information
bake needs, and at the same time got rid of all that cmake ugliness.
Since Cable uses the same cmake template as the official elementary
apps, this should work just as well with any other elementary app.
If you want to try it yourself, here are some instructions:
First install bake:
$ sudo add-apt-repository ppa:bake-team/releases
$ sudo apt-get update
$ sudo apt-get install bake
Now get my branch:
$ bzr branch lp:~julien-spautz/cable/bake
$ cd bake
So far so good. Now let's build (make sure you have all the deps,
you'll find them in /src/Recipe):
$ bake
There should now be an executable in src/ and one in tests/.
How about cleaning up again?
$ bake clean
Installing?
$ sudo bake install
Running unit tests? (I know you all enjoy those TDD threads)
$ bake test
Creating a .deb package?
$ bake release-deb (might take a while)
If you're not in love yet I really don't know...
I'll try to convert some other elementary apps to bake in the future,
but I don't think it'll be very difficult. The biggest downside of
bake is of course that it is still relatively new and therefore lacks
complete documentation and tutorials and probably still has some
important bugs. Otherwise I see no reason not to switch at some point
in the future, be it for Isis, or Isis + 1 (but not later, srsly).
What are your opinions? Has anyone else had any experience with it?
--
Julien Spautz