← Back to team overview

elementary-dev-community team mailing list archive

Re: Bake Build System

 

Hi,

Julian suggested a new template without using the word 'template', so here
it is. Now it uses "HelloWorld" as a project name and it can be easily
changed using the script 'set_project_name.sh'.

For example, to create a new application named 'sky':

- Decompress the template
- mv helloworld sky
- cd sky
- set_project_name Sky
- sudo bake install
- sky

I also modified other minor things such as enclosing the application into
its own namespace.

Albert



On Mon, Sep 16, 2013 at 10:14 PM, Julian Unrrein <junrrein@xxxxxxxxx> wrote:

> I've taken a look at Bake, and I'm liking it so far!
>
> As soon as optional dependencies support is added (
> https://bugs.launchpad.net/bake/+bug/1105831), I will try to get Files
> built with it.
>
>
> 2013/9/14 Julien <spautz.julien@xxxxxxxxx>
>
>> 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
>>
>>
>
> --
> 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
>
>

Attachment: helloworld-template.tar.gz
Description: GNU Zip compressed data


Follow ups

References