Friday, August 6, 2010

Meique released

By a release I mean, I tagged the git repository with some version number (0.8), so you still need to download the sources from git if you want to test it. I wont spend my free time to create a website nor distro packages very soon, because I think that for while is better to spend my time coding than creating cosmetic things for a tool not production ready yet.

Ah, I almost forgot to say, meique is a pet project of mine, result of my will to have a more than reasonable building tool for C and C++, a really good one. I'm doing it on my free time and hope to finish it some day, hehe.

Ok, back to the main subject, it's not production ready... by production ready I mean, if you want to use meique in a near future the best thing to do is to try to port your project to meique and report any bugs and wishes, so bugs can be fixed and wishes turned into reality.

So, what meique can do until now?

  • Out of source builds.
  • Find installed packages using pkg-config as backend.
  • Support projects with multiple source directories.
  • Decide if a file need to be recompiled by their contents, not by their timestamp.
  • Multiple jobs at once.
  • Detect the file dependencies and also use this information the decide if a file needs to be recompiled.
  • Automatic creation of the following targets: all and clean (install and uninstall not done yet).
  • Scopes for OS, compiler and build types, like the ones used in qmake.

What it can't do yet?

  • Probably there are some (maybe many?) bugs, because I did only few tests and I'm still to lazy to convert my manual tests into automatic tests.
  • There's no equivalent helper function to cmake configure_file function.
  • There's no windows port yet, to create it is a matter of create an os_windows.cpp which implements the OS interface, i.e. few
  • functions inside a namespace (rm, mkdir, cd, pwd, etc).
  • There's no install function yet, I need to think a good API for it to support Mac OSX frameworks, simple UNIX installs and the mess found in Windows systems, so I wont implement anything until I have a clear and simple API for it in my mind.
  • Support for tests, something like the add_test function of cmake.
  • Documentation! Currently the only documentation is the source code itself, mainly meiquescript.cpp and the meique.lua files used to compile meique itself.

How to get it and report bugs/wishes?

You can get the sources on gitorious ( Compilation can be done using cmake or meique itself.

To report bugs and wishes write to at

Thursday, April 22, 2010

Status report on "Save the universe" task

I'm talking about my pet project called meique, yes, this is yet another build tool.

The project is going a "bit" slow, I can summarize this situation in numbers, the project had 15 commits so far, 4 in 08/2009, 4 in 12/2009 and 7 in 04/2010. In other words, 4 commits, 4 months doing nothing, 4 commits, 4 months doing nothing, 7 commits, ...

As you can see there is a pattern in meique development, every commit represents 1 month doing nothing! But this isn't my fault, ok.. is my fault, anyway I want to break this pattern, no... no... I'm going to break this pattern!! at least I hope so.

Besides all development slow down I achieved some goals with those 15 commits:

  • The basic architecture to provide the basic functionality is done, or almost done :-).
  • Meique can now compile basic hello worlds \o/.

So what's missing and what's next?

Missing? A lot of things. My current implementation plan is:

  • Implement the source directory structure replication, used to the separated build dir compilation feature.
  • Create a very basic preprocessor, just to identify the dependencies of a C++ file on each run.
  • Use md5 or a faster hash algorithm to identify when a file needs to be recompiled.
  • Support multiple jobs, -jN option.
  • Redo this list with four more items.

For anyone interested on meique, take a look at gitrotious project page.