← Back to team overview

elementary-dev-community team mailing list archive

Re: Go-like build tools for Vala

 

I wrote a script which I think does about what the go build tools would do.
http://pastebin.com/hr8TfdPu
To see what exactly it should be able to do, check line 30 following :)
If you want to use it, it'd be best to copy it to /usr/bin, so you can just
run 'ebuild' whenever you want to rebuild something.
Some small things like internationalization and installing are still
missing, but those are quite easy to add, in case there's interest.


On Wed, Feb 6, 2013 at 9:35 PM, Donnie McNeal <donnie.mcneal@xxxxxxxxx>wrote:

> Loo Loo
> On Feb 5, 2013 1:16 PM, "David Gomes" <david@xxxxxxxxxxxxxxxx> wrote:
>
>> If by "Elementary", you mean elementary OS, I'd like to say that I've
>> been doing desktop development there for almost a year now and only rarely
>> did I have to use CMake to its full extent. All I have to do is fetch a
>> project, "mkdir build; cd build; cmake ..;make;", and after I've fetched a
>> project, I really only have to write some code "cd build;make;". I really
>> hope CMake isn't the reason you aren't helping us, because right now we
>> could really use some help!
>>
>> However, I did learn how to write CMakeLists.txt files on side projects,
>> which came in handy later on for elementary OS development, but to help us,
>> there's no need to struggle with CMak. If you need to write anything, I
>> encourage you to learn because it's really easy -
>> https://github.com/davidgomes/2dplatformer/blob/master/CMakeLists.txt,
>> that is the CMakeLists.txt I had to write for a side project, and it was
>> quite simple (also, I do realize it's pretty badly-written, from what I've
>> been told on #cmake).
>>
>> Those Go build tools you're talking about look cool and easy to use, but
>> they are go-only. I think you should learn CMake or Autotools because you
>> can use them with every language/library/framework that needs building
>> (even Go!). Anyways, "go build" is probably not too hard to write for Vala
>> projects that don't use any external libraries.
>>
>> Oh, and I just remembered, autotools, CMake and the likes help you A LOT
>> with packaging your applications. They handle lots of stuff that would be a
>> PITA to do yourself.
>>
>> David "Munchor" Gomes
>>
>>
>> On Tue, Feb 5, 2013 at 9:05 PM, Craig <weberc2@xxxxxxxxx> wrote:
>>
>>> Firstly, let me just say that CMake and Make are a pain to learn. I'm a
>>> professional software developer and I still can't figure them out. In my
>>> job, we use tools that automate the nightmare that is project management
>>> (usually IDEs) and it's usually still unpleasant. The tedium of these
>>> "tools" is the one thing keeping me from using Vala as a primary
>>> programming language and otherwise contributing to Elementary.
>>>
>>> That said, lately I've been getting into Go (golang), and I'm finding it
>>> to be an AMAZING language; however, it's only 3 years old, thus it doesn't
>>> have an extensive collection of libraries. The only prominent GTK library
>>> is very immature and (I believe) it only supports some features from
>>> GTK+2.0 (none from 3.0). Among the more amazing features of Go are its
>>> build environment tools.
>>>
>>> `go build [app-name]` is all that is needed to build an entire
>>> application--no messing with CMakeLists or makefiles (no project metadata
>>> of any kind, in fact). Furthermore, `go install [app-name]` will build and
>>> install the application to a location in your PATH, making it instantly
>>> executable. Go also comes with an awesome test suite out of the box, and
>>> `go get [http://path.to.online/repository]`<http://path.to.online/repository%5D>will automatically fetch a package from a public code repository (it works
>>> with git and several other repo types) and store the files alongside your
>>> own source code.
>>>
>>> I think it would be a huge help to elementary developers if we at least
>>> created a Vala version of (at least) the `go build` tools to facilitate
>>> project management. This would dramatically lower the entry barrier to
>>> Elementary development, and it would encourage an organized structure for
>>> application source code across applications.
>>>
>>> At this point, I'm not proposing spending time and resources working on
>>> this, but I'd like to get some discussion going about the merits of this
>>> idea, particularly from people with Go and Vala experience.
>>>
>>> Sound off!
>>>
>>> -Craig Weber
>>>
>>>
>>> --
>>> 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
>>
>>
> --
> 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
>
>

Follow ups

References