← Back to team overview

elementary-dev-community team mailing list archive

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