Hey Guys, While I don't have vast technical knowledge around build systems, I did talk to Robert Ancell a while back and he shared with me that he was working on a new modern build system called "bake". If someone wants to examine bake, try it out in a project, and then share with the list it's pros and cons that would be awesome!
you can get bake from here: https://launchpad.net/bake On Tue, Feb 5, 2013 at 2:24 PM, Craig <[email protected]> wrote: > Thanks David, > > I agree, compiling an existing CMake project is fairly straight forward; > however, adding files or starting a project from scratch has been an > exercise in frustration. Moreover, while I would love to have the time to > learn CMake, I really shouldn't have to as it provides no benefit (as far > as I can tell) compared against the "go build" solution. > > Generally speaking, the modern development environment is sufficiently > complex between IDEs, version control systems, online code hosting, bug > management, distribution systems, test servers, build servers, etc., > (that's not to mention the complexities of the actual problems for which a > developer is trying to write solutions)--it just seems like the unnecessary > complexities of metadata-based build systems aren't worth learning when > automatic systems should (and often do) exist. Personally, I can't spare > the time to learn another tool that will be obsolete soon. > > And while CMake and the like _are_ broadly applicable, most languages have > IDEs capable of managing the complexities internally (Vala is the only > language that's required me to learn CMake or Autotools). Of all the Vala > IDEs I've found that claim to be able to support CMake or Autotools, none > are able to handle more than a small fraction of the conceivable project > structures (if memory serves, Anjuta couldn't even handle most Elementary > projects). > > Finally, rest assured, I haven't been actively working on Elementary for > lack of time; however, when I had the time to contribute, the project > management (or lackthereof) was a huge buzzkill. > > Thanks for your response, > > Craig :) > > > On Tue, Feb 5, 2013 at 3:16 PM, David Gomes <[email protected]>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 <[email protected]> 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 : [email protected] >>> Unsubscribe : https://launchpad.net/~elementary-dev-community >>> More help : https://help.launchpad.net/ListHelp >>> >>> >> > > -- > Mailing list: https://launchpad.net/~elementary-dev-community > Post to : [email protected] > Unsubscribe : https://launchpad.net/~elementary-dev-community > More help : https://help.launchpad.net/ListHelp > > -- Best Regards, Daniel Foré elementaryos.org
-- Mailing list: https://launchpad.net/~elementary-dev-community Post to : [email protected] Unsubscribe : https://launchpad.net/~elementary-dev-community More help : https://help.launchpad.net/ListHelp

