[Vala] A brand new build system



Hello Vala guys!

I would to thank you for this amazing language. I knew it yesterday, and
love it yet!

But, I noticed that have a lot of things to do, to turn it a great tool.

For example, a *new simplified build system*. Not that I don't like
Autotools and Make, but the language itself simplifies the C programming,
so, why use a jurasic and complicated (for newbies) build system?

I'm thinking how to solve this problem, and would like to share with you
some ideas.

We could make the dependency management and build with only one simple
file: The Valafile. I made a draft of it:

# The knew dependencies
pkg "gio"
pkg "gee", version: "0.8"

# Some nice git depencies
git "antono/valum" # default point to github.com
git "lorem/ipsum", origin: "gitorius.org"

# Some C dependencies
include "foo/include/"
lib "libwhatever.so"

# Build profiles
build "src/main" # Or
build "src/main", bin: "my_program" # output build/my_program
# Other build types
build "src/lib", lib: "my_lib" # outputs build/libmy_lib.so
build "src/web", web: "my_web_api", deploy: "destiny"

# Sample Apache deploy
deploy "destiny", remote: "127.0.0.1", kind: "mod_fcgi", root:
"/wwwroot/my_web_api"

publish "geovanisouza92/sample" # In some online package manager like
RubyGems.org


To handle this file, I think that we can make a new command-line tool, to
execute like:

# Create a new project with structure:
# project_name
#     build/ # Can be ignored and deleted anytime
#     libs/
#     src/
#         main/
#     test/
#         main/
#     vapi/
vala new <project name>

# Install dependencies and download libs from Valafile
vala install

# Execute compiling and linking for each build target
vala build

# Build a single build target
vala build my_program

# Generate docs
vala docs

# Generate .vapi files
vala vapi

# Pack and publish the project in "vala.org" package manager
# Maybe sign with GPG?
vala bundle
vala publish

# Deploy all targets
vala deploy

# Deploy a single target
vala deploy my_web_api


As you can see, I think that a "recommended project structure" can be
interesting, as well a coding-standard.

We can have a "vala.org" (or other site) to host libraries and docs, to
help comunity to grow up.

As can you imagine, I'm very excited with Vala, and can sound like a
Ruby-comunity-boy. In fact, I am. But, Vala demonstrate a powerful way to
program C friendly, and I think that I can help too.

Thank you for reading.

-- 
@geovanisouza92 - Geovani de Souza


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]