← Back to team overview

elementary-dev-community team mailing list archive

Re: Go-like build tools for Vala


Firstly, I consider conditional compilation to be a fringe case; an
exception to the rule, not the rule itself. Accordingly, CMake/autotools
should only be used when necessary, IMO. And even then, conditional
compilation *can* be achieved in a variety of ways without needing to
resort to CMake (gcc macros, off the top of my head--certainly no uglier
than CMake) and there are even simpler/better solutions if you can isolate
your conditional compilation needs to a few broad use cases (for instance,
go has CC for multi-platform support via naming your files _linux.go or
some such--perhaps not the most sustainable solution, but still far better
than CMake and the like). And if those solutions are inadequate for a given
use case, then and only then would I consider something like CMake.

Let me back up on the `go install` issue--I don't think it's intended as a
user-level installation mechanism, but rather a fast way to enable
developers to test their code. `go install` builds the app and installs it
to $GOBIN (and it's standard practice for developers to add $GOBIN to their
$PATH). It doesn't supplant normal packaging procedures, it just gives
developers a quick test platform. For example, I have the following


I apologize for the misunderstanding.

Furthermore, as Go tools are not analogous to WAF in any meaningful way,
I'm not proposing WAF. I'm proposing the likes of Go tools for Vala. If
Bake is any good, I support it; however, I haven't had the time to check
out the documentation. Since it's language independent, I'm guessing it's
probably not going to be the ideal tool for the job simply because (as I
understand it) the official language of elementary is Vala and a language
agnostic tool will probably come bundled with a lot of complexity.

I think the best thing would be something with a simple `elem build
[package name]` or `elem install [package name]`.

A Go environment takes about ~10 minutes to set up and it's syntax is dead
simple, so you could probably get a good feel for it in an hour or two if
you'd like to better understand my proposal. http://golang.org/doc/
http://golang.org/doc/install Also, the golang.org website has some pretty
great documentation.