Remove some java-oriented stuff from ApiExtractor inherited from QtJambi generator.

Reviewer: Lauro Moura <lauro.neto@openbossa.org>
Reviewer: Bruno Araújo <bruno.araujo@openbossa.org>
Meta type minimal signature should place reference symbol after pointer symbols.

The minimalSignature method was placing '&' before '*'. For example,
the signature "foo(Bar*&)" was becoming "foo(Bar&*)".

An unit test was added to verify AbstractMetaType::minimalSignature().

Reviewed by Hugo Parente <hugo.lima@openbossa.org>
Reviewed by Anderson Lizardo <anderson.lizardo@openbossa.org>
Bump version to 0.4.0
Bump version to 0.4.1
Changed routine to build source packages.

Our changelog is just the output of git log, so it's added only on source packages
and don't need to stay in the git repository.

Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
Reviewer: Anderson Lizardo <anderson.lizardo@openbossa.org>
An inner class should not be polymorphic just because his enclosing class is.

This commit adds a test for that situation.
Fixes attributes for default constructors and class' "isPolymorphic" flag.

When a class has no constructor explicitly declared a default is
provided by API Extractor, but it should be marked as "Final".

The setting of the "isPolymorphic" flag done in the
AbstractMetaClass::addFunction method must take into account if
the class has a virtual destructor, as it is done in the
AbstractMetaClass::setFunctions method.

The already existing tests cover the cases affected by the changes.
Tests if added constructor with custom type creates an implicit converter.
Adds convenience methods regarding copy constructors to AbstractMetaClass.
Marks user added constructors with one argument of a custom type as explicit.

This prevents the generation of undesired implicit conversions.
Value type classes now have implicit copy constructors added when needed.
Adds many tests regarding default copy constructors.

Also updated other tests dealing with constructor counting.

Reviewed by Hugo Parente <hugo.lima@openbossa.org>
Reviewed by Lauro Moura <lauro.neto@openbossa.org>
Do not add an operator function to a class from a referred type system.

API Extractor does not add operator functions from the module being
processed for generation to a class belonging to a referred module,
that should not be generated.
Do not build tests if explicitly wanted to. Default is to build.

The majority of users don't need tests built. This will reduce build time
significantly, and packagers will be thanked for it. To not build tests append
-DBUILD_TESTS=False to cmake parameters.

Reviewer: Anderson Lizardo <anderson.lizardo@openbossa.org>
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Added qHash, operator<<(QTextStream,Include) and operator== to class Include.
Fixed constness of Include::isValid.

P.S.: This is a ABI change.
Set the include file for enums.
Removed methods includeFile and setIncludeFile from AbstractMetaAttribute.
These methods were moved to AbstractMetaFunction, because they are created
to store the include file of global enums and functions, but for enums, we
store the include file in TypeEntry, as functions doesn't have TypeEntries,
only global functions need this.

Also the new version of includeFile returns a instance of Include class
instead of a QString.
Include class moved to its own .h/.cpp file.
Added the "function" tag to ApiExtractor.

This change the behaviour of ApiExtractor regarding to global functions.
All global function you want to be exported to python *need* to be especified
in the type system with the function tag, otherwise they wont be exported at all.

The syntax for this new tag is:

<function signature="..." />

This is just the initial work for this tag, it is missign support for:

- Function modifications.
- Add a function overload with add-function tag.