elementary-dev-community team mailing list archive
-
elementary-dev-community team
-
Mailing list archive
-
Message #02799
Re: Bake Build System
I know that Robert also has built bake with the intention of having it work from a GUI IDE as well as with the intention of having it integrate into launchpad. He has an excellent track record if that means anything :)
Best Regards,
Daniel Foré
elementaryos.org
On Sat, Sep 14, 2013 at 5:08 PM, Julien <spautz.julien@xxxxxxxxx> wrote:
> I haven't used waf yet, do you know of any good resources?
> From what I've seen after a quick web search it seems to be just as
> verbose as cmake or even make. The point of bake is that it is so
> stupidly simple to use, and also has special support for vala.
> It makes things like installing desktop files or gsettings schemas just
> a matter of assigning them to a variable, while it still has support
> for custom rules in the style of make, so you can also do more complex
> stuff.
> On Sun, Sep 15, 2013 at 1:50 AM, Daniele S. <oppifjellet@xxxxxxxxx>
> wrote:
>> There are a lot of build system out there. This one seems cool and
>> clean but it's probably too bleeding edge. I suggest you to take a
>> look at waf. Lots of project are switching to it.
>>
>> Daniele
>>
>> Il giorno 15/set/2013 01:08, "Julien" <spautz.julien@xxxxxxxxx> ha
>> scritto:
>>> 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
>>>
>>>
>>>
>>> --
>>> Mailing list: https://launchpad.net/~elementary-dev-community
>>> Post to : elementary-dev-community@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~elementary-dev-community
>>> More help : https://help.launchpad.net/ListHelp
>>>
>>>
References