diff options
author | Christian Kandeler <christian.kandeler@digia.com> | 2014-05-09 17:17:42 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-05-13 10:40:53 +0200 |
commit | 6d5de545c4e67289f973cf6ba9bdbbaeb4eb4a99 (patch) | |
tree | 275df0914bd1e47fc0120ce5da9857c4cf690e84 /src/lib/corelib/language/builtindeclarations.cpp | |
parent | 33f0e83c0cd2c2f149f2b03ac7cb4ba9dd22fb1a (diff) |
Introduce sensible build directory values.
Currently, all products share the same build directory,
and rules are responsible for making their artifact file
paths unique, which is annoying for module authors and
introduces lots of code duplication.
Instead, make the product build directories unique and let
these directories be the base directory of relative artifact
file paths.
Also export the top-level build dir as project.buildDirectory
to the JavaScript side so rules can refer to that one if necessary.
Task-number: QBS-567
Change-Id: I257d37cad01ec6dece3e214799b917149677d80c
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/corelib/language/builtindeclarations.cpp')
-rw-r--r-- | src/lib/corelib/language/builtindeclarations.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/corelib/language/builtindeclarations.cpp b/src/lib/corelib/language/builtindeclarations.cpp index f3ec6ec2e..b8c056a3f 100644 --- a/src/lib/corelib/language/builtindeclarations.cpp +++ b/src/lib/corelib/language/builtindeclarations.cpp @@ -109,6 +109,11 @@ static PropertyDeclaration nameProperty() return PropertyDeclaration(QLatin1String("name"), PropertyDeclaration::String); } +static PropertyDeclaration buildDirProperty() +{ + return PropertyDeclaration(QLatin1String("buildDirectory"), PropertyDeclaration::Path); +} + static PropertyDeclaration prepareScriptProperty() { PropertyDeclaration decl(QLatin1String("prepare"), PropertyDeclaration::Verbatim); @@ -241,9 +246,9 @@ void BuiltinDeclarations::addProductItem() item << nameProperty(); decl = PropertyDeclaration(QLatin1String("targetName"), PropertyDeclaration::String); decl.setInitialValueSource(QLatin1String("name")); + item << buildDirProperty(); item << decl; decl = PropertyDeclaration(QLatin1String("destinationDirectory"), PropertyDeclaration::String); - decl.setInitialValueSource(QLatin1String("'.'")); item << decl; item << PropertyDeclaration(QLatin1String("consoleApplication"), PropertyDeclaration::Boolean); @@ -268,6 +273,7 @@ void BuiltinDeclarations::addProjectItem() << QLatin1String("Rule")); item << nameProperty(); item << conditionProperty(); + item << buildDirProperty(); item << PropertyDeclaration(QLatin1String("references"), PropertyDeclaration::Variant, PropertyDeclaration::PropertyNotAvailableInConfig); item << PropertyDeclaration(QLatin1String("qbsSearchPaths"), |