aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
Diffstat (limited to 'share')
-rw-r--r--share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/BinaryProbe.qbs2
-rw-r--r--share/qbs/imports/qbs/Probes/FrameworkProbe.qbs2
-rw-r--r--share/qbs/imports/qbs/Probes/GccBinaryProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/GccProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/GccVersionProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/IcoUtilsVersionProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/IncludeProbe.qbs2
-rw-r--r--share/qbs/imports/qbs/Probes/InnoSetupProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/JdkProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/JdkVersionProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/MsvcProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/NodeJsProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/NpmProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/PathProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/PkgConfigProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/TypeScriptProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/WiXProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/Probes/XcodeProbe.qbs1
-rw-r--r--share/qbs/imports/qbs/base/AndroidApk.qbs1
-rw-r--r--share/qbs/imports/qbs/base/AppleApplicationDiskImage.qbs1
-rw-r--r--share/qbs/imports/qbs/base/Application.qbs12
-rw-r--r--share/qbs/imports/qbs/base/ApplicationExtension.qbs2
-rw-r--r--share/qbs/imports/qbs/base/AutotestRunner.qbs29
-rw-r--r--share/qbs/imports/qbs/base/CppApplication.qbs2
-rw-r--r--share/qbs/imports/qbs/base/DynamicLibrary.qbs22
-rw-r--r--share/qbs/imports/qbs/base/InnoSetup.qbs2
-rw-r--r--share/qbs/imports/qbs/base/InstallPackage.qbs1
-rw-r--r--share/qbs/imports/qbs/base/Library.qbs2
-rw-r--r--share/qbs/imports/qbs/base/LoadableModule.qbs2
-rw-r--r--share/qbs/imports/qbs/base/NSISSetup.qbs2
-rw-r--r--share/qbs/imports/qbs/base/NativeBinary.qbs8
-rw-r--r--share/qbs/imports/qbs/base/QtApplication.qbs2
-rw-r--r--share/qbs/imports/qbs/base/QtGuiApplication.qbs2
-rw-r--r--share/qbs/imports/qbs/base/StaticLibrary.qbs11
-rw-r--r--share/qbs/imports/qbs/base/WindowsInstallerPackage.qbs2
-rw-r--r--share/qbs/imports/qbs/base/XPCService.qbs2
-rw-r--r--share/qbs/modules/Android/ndk/ndk.qbs1
-rw-r--r--share/qbs/modules/Android/sdk/sdk.qbs1
-rw-r--r--share/qbs/modules/Exporter/pkgconfig/pkgconfig.qbs1
-rw-r--r--share/qbs/modules/Exporter/qbs/qbsexporter.qbs1
-rw-r--r--share/qbs/modules/archiver/archiver.qbs1
-rw-r--r--share/qbs/modules/autotest/autotest.qbs5
-rw-r--r--share/qbs/modules/bundle/BundleModule.qbs4
-rw-r--r--share/qbs/modules/cli/CLIModule.qbs1
-rw-r--r--share/qbs/modules/cli/mono.qbs1
-rw-r--r--share/qbs/modules/cli/windows-dotnet.qbs1
-rw-r--r--share/qbs/modules/cpp/DarwinGCC.qbs1
-rw-r--r--share/qbs/modules/cpp/GenericGCC.qbs13
-rw-r--r--share/qbs/modules/cpp/LinuxGCC.qbs1
-rw-r--r--share/qbs/modules/cpp/UnixGCC.qbs1
-rw-r--r--share/qbs/modules/cpp/android-gcc.qbs1
-rw-r--r--share/qbs/modules/cpp/freebsd-gcc.qbs1
-rw-r--r--share/qbs/modules/cpp/ios-gcc.qbs1
-rw-r--r--share/qbs/modules/cpp/macos-gcc.qbs1
-rw-r--r--share/qbs/modules/cpp/qnx-qcc.qbs1
-rw-r--r--share/qbs/modules/cpp/tvos-gcc.qbs2
-rw-r--r--share/qbs/modules/cpp/watchos-gcc.qbs2
-rw-r--r--share/qbs/modules/cpp/windows-mingw.qbs1
-rw-r--r--share/qbs/modules/cpp/windows-msvc.qbs9
-rw-r--r--share/qbs/modules/cpufeatures/cpufeatures.qbs2
-rw-r--r--share/qbs/modules/dmg/DMGModule.qbs3
-rw-r--r--share/qbs/modules/ib/IBModule.qbs1
-rw-r--r--share/qbs/modules/ico/IcoModule.qbs1
-rw-r--r--share/qbs/modules/innosetup/InnoSetupModule.qbs1
-rw-r--r--share/qbs/modules/java/JavaModule.qbs1
-rw-r--r--share/qbs/modules/lex_yacc/lexyacc.qbs1
-rw-r--r--share/qbs/modules/nodejs/NodeJS.qbs1
-rw-r--r--share/qbs/modules/nsis/NSISModule.qbs1
-rw-r--r--share/qbs/modules/qbs/common.qbs3
-rw-r--r--share/qbs/modules/qnx/qnx.qbs1
-rw-r--r--share/qbs/modules/texttemplate/texttemplate.qbs64
-rw-r--r--share/qbs/modules/typescript/TypeScriptModule.qbs1
-rw-r--r--share/qbs/modules/vcs/vcs-module.qbs1
-rw-r--r--share/qbs/modules/wix/WiXModule.qbs1
-rw-r--r--share/qbs/modules/xcode/xcode.qbs1
77 files changed, 146 insertions, 118 deletions
diff --git a/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs b/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs
index 1aac95fba..c73a7f2d3 100644
--- a/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/AndroidNdkProbe.qbs
@@ -29,7 +29,6 @@
**
****************************************************************************/
-import qbs
import qbs.Environment
import qbs.File
import qbs.FileInfo
diff --git a/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs b/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs
index 1dc2a4919..076b36d72 100644
--- a/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/AndroidSdkProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.Environment
import qbs.File
import qbs.FileInfo
diff --git a/share/qbs/imports/qbs/Probes/BinaryProbe.qbs b/share/qbs/imports/qbs/Probes/BinaryProbe.qbs
index 7dec8757c..16fde72cb 100644
--- a/share/qbs/imports/qbs/Probes/BinaryProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/BinaryProbe.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
-
PathProbe {
nameSuffixes: qbs.hostOS.contains("windows") ? [".com", ".exe", ".bat", ".cmd"] : undefined
platformPaths: hostOS.contains("unix") ? ["/usr/bin", "/usr/local/bin"] : []
diff --git a/share/qbs/imports/qbs/Probes/FrameworkProbe.qbs b/share/qbs/imports/qbs/Probes/FrameworkProbe.qbs
index 196e776fc..544759150 100644
--- a/share/qbs/imports/qbs/Probes/FrameworkProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/FrameworkProbe.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
-
PathProbe {
platformPaths: [
"~/Library/Frameworks",
diff --git a/share/qbs/imports/qbs/Probes/GccBinaryProbe.qbs b/share/qbs/imports/qbs/Probes/GccBinaryProbe.qbs
index 9908d8239..1db1291cc 100644
--- a/share/qbs/imports/qbs/Probes/GccBinaryProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/GccBinaryProbe.qbs
@@ -1,4 +1,3 @@
-import qbs
import qbs.Environment
import qbs.FileInfo
import "path-probe.js" as PathProbeConfigure
diff --git a/share/qbs/imports/qbs/Probes/GccProbe.qbs b/share/qbs/imports/qbs/Probes/GccProbe.qbs
index 8dceb531a..4e1aecbed 100644
--- a/share/qbs/imports/qbs/Probes/GccProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/GccProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.File
import qbs.ModUtils
import "../../../modules/cpp/gcc.js" as Gcc
diff --git a/share/qbs/imports/qbs/Probes/GccVersionProbe.qbs b/share/qbs/imports/qbs/Probes/GccVersionProbe.qbs
index c0044f307..f45c0a8e8 100644
--- a/share/qbs/imports/qbs/Probes/GccVersionProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/GccVersionProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.File
import "../../../modules/cpp/gcc.js" as Gcc
diff --git a/share/qbs/imports/qbs/Probes/IcoUtilsVersionProbe.qbs b/share/qbs/imports/qbs/Probes/IcoUtilsVersionProbe.qbs
index d6f3a0587..90c3a06b1 100644
--- a/share/qbs/imports/qbs/Probes/IcoUtilsVersionProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/IcoUtilsVersionProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import "../../../modules/ico/ico.js" as IcoUtils
Probe {
diff --git a/share/qbs/imports/qbs/Probes/IncludeProbe.qbs b/share/qbs/imports/qbs/Probes/IncludeProbe.qbs
index 5b90671e9..fa2e44dd4 100644
--- a/share/qbs/imports/qbs/Probes/IncludeProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/IncludeProbe.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
-
PathProbe {
pathSuffixes: [ "include" ]
platformEnvironmentPaths: {
diff --git a/share/qbs/imports/qbs/Probes/InnoSetupProbe.qbs b/share/qbs/imports/qbs/Probes/InnoSetupProbe.qbs
index d0e756d19..2c06a6a0b 100644
--- a/share/qbs/imports/qbs/Probes/InnoSetupProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/InnoSetupProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.Utilities
PathProbe {
diff --git a/share/qbs/imports/qbs/Probes/JdkProbe.qbs b/share/qbs/imports/qbs/Probes/JdkProbe.qbs
index 9eaa3c36c..2f72f552b 100644
--- a/share/qbs/imports/qbs/Probes/JdkProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/JdkProbe.qbs
@@ -29,7 +29,6 @@
**
****************************************************************************/
-import qbs
import qbs.Environment
import "../../../modules/java/utils.js" as JavaUtils
diff --git a/share/qbs/imports/qbs/Probes/JdkVersionProbe.qbs b/share/qbs/imports/qbs/Probes/JdkVersionProbe.qbs
index 299ebbb01..786d62f75 100644
--- a/share/qbs/imports/qbs/Probes/JdkVersionProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/JdkVersionProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import "../../../modules/java/utils.js" as JavaUtils
Probe {
diff --git a/share/qbs/imports/qbs/Probes/MsvcProbe.qbs b/share/qbs/imports/qbs/Probes/MsvcProbe.qbs
index 700c579f5..d7e26b8e1 100644
--- a/share/qbs/imports/qbs/Probes/MsvcProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/MsvcProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.File
import qbs.FileInfo
import qbs.ModUtils
diff --git a/share/qbs/imports/qbs/Probes/NodeJsProbe.qbs b/share/qbs/imports/qbs/Probes/NodeJsProbe.qbs
index 64ab32019..45623553b 100644
--- a/share/qbs/imports/qbs/Probes/NodeJsProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/NodeJsProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.Environment
import qbs.FileInfo
diff --git a/share/qbs/imports/qbs/Probes/NpmProbe.qbs b/share/qbs/imports/qbs/Probes/NpmProbe.qbs
index a13fd3615..55f848965 100644
--- a/share/qbs/imports/qbs/Probes/NpmProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/NpmProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.ModUtils
import "path-probe.js" as PathProbeConfigure
import "../../../modules/nodejs/nodejs.js" as NodeJs
diff --git a/share/qbs/imports/qbs/Probes/PathProbe.qbs b/share/qbs/imports/qbs/Probes/PathProbe.qbs
index 73ce2e049..1f6ff33ea 100644
--- a/share/qbs/imports/qbs/Probes/PathProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/PathProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
import "path-probe.js" as PathProbeConfigure
Probe {
diff --git a/share/qbs/imports/qbs/Probes/PkgConfigProbe.qbs b/share/qbs/imports/qbs/Probes/PkgConfigProbe.qbs
index 5f60c17a2..fe665b227 100644
--- a/share/qbs/imports/qbs/Probes/PkgConfigProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/PkgConfigProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
import qbs.Process
import qbs.FileInfo
diff --git a/share/qbs/imports/qbs/Probes/TypeScriptProbe.qbs b/share/qbs/imports/qbs/Probes/TypeScriptProbe.qbs
index da2116660..3eeb95342 100644
--- a/share/qbs/imports/qbs/Probes/TypeScriptProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/TypeScriptProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.File
import qbs.FileInfo
import qbs.ModUtils
diff --git a/share/qbs/imports/qbs/Probes/WiXProbe.qbs b/share/qbs/imports/qbs/Probes/WiXProbe.qbs
index c754162b7..561b275cf 100644
--- a/share/qbs/imports/qbs/Probes/WiXProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/WiXProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.Utilities
PathProbe {
diff --git a/share/qbs/imports/qbs/Probes/XcodeProbe.qbs b/share/qbs/imports/qbs/Probes/XcodeProbe.qbs
index ed3e1a1ea..e0ed99346 100644
--- a/share/qbs/imports/qbs/Probes/XcodeProbe.qbs
+++ b/share/qbs/imports/qbs/Probes/XcodeProbe.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.File
import qbs.FileInfo
import qbs.Process
diff --git a/share/qbs/imports/qbs/base/AndroidApk.qbs b/share/qbs/imports/qbs/base/AndroidApk.qbs
index d881b791f..1f123827d 100644
--- a/share/qbs/imports/qbs/base/AndroidApk.qbs
+++ b/share/qbs/imports/qbs/base/AndroidApk.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.File
import qbs.FileInfo
diff --git a/share/qbs/imports/qbs/base/AppleApplicationDiskImage.qbs b/share/qbs/imports/qbs/base/AppleApplicationDiskImage.qbs
index d1d4988c6..134f4dee0 100644
--- a/share/qbs/imports/qbs/base/AppleApplicationDiskImage.qbs
+++ b/share/qbs/imports/qbs/base/AppleApplicationDiskImage.qbs
@@ -41,7 +41,6 @@ AppleDiskImage {
Rule {
multiplex: true
- inputs: ["qbs"]
outputFileTags: ["dmg.input", "dmg.input.symlink"]
outputArtifacts: Array.prototype.map.call(product.symlinks, function (symlink) {
var symlinkTarget = symlink.split(':')[0];
diff --git a/share/qbs/imports/qbs/base/Application.qbs b/share/qbs/imports/qbs/base/Application.qbs
index e16a93761..ddc824756 100644
--- a/share/qbs/imports/qbs/base/Application.qbs
+++ b/share/qbs/imports/qbs/base/Application.qbs
@@ -28,12 +28,20 @@
**
****************************************************************************/
-import qbs
-
NativeBinary {
type: {
if (isForAndroid && !consoleApplication)
return ["dynamiclibrary", "android.nativelibrary"];
return ["application"];
}
+
+ installDir: isBundle ? "Applications" : "bin"
+
+ Group {
+ condition: install
+ fileTagsFilter: isBundle ? "bundle.content" : "application";
+ qbs.install: true
+ qbs.installDir: installDir
+ qbs.installSourceBase: isBundle ? destinationDirectory : outer
+ }
}
diff --git a/share/qbs/imports/qbs/base/ApplicationExtension.qbs b/share/qbs/imports/qbs/base/ApplicationExtension.qbs
index e02c7c7e5..140475909 100644
--- a/share/qbs/imports/qbs/base/ApplicationExtension.qbs
+++ b/share/qbs/imports/qbs/base/ApplicationExtension.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs
-
XPCService {
Depends { name: "xcode" }
diff --git a/share/qbs/imports/qbs/base/AutotestRunner.qbs b/share/qbs/imports/qbs/base/AutotestRunner.qbs
index 4f175d662..ab9ba15f7 100644
--- a/share/qbs/imports/qbs/base/AutotestRunner.qbs
+++ b/share/qbs/imports/qbs/base/AutotestRunner.qbs
@@ -28,11 +28,9 @@
**
****************************************************************************/
-import qbs
import qbs.File
import qbs.FileInfo
import qbs.ModUtils
-import qbs.Utilities
Product {
name: "autotest-runner"
@@ -57,11 +55,7 @@ Product {
Rule {
inputsFromDependencies: "application"
auxiliaryInputs: product.auxiliaryInputs
- Artifact {
- filePath: Utilities.getHash(input.filePath) + ".result.dummy" // Will never exist.
- fileTags: "autotest-result"
- alwaysUpdated: false
- }
+ outputFileTags: "autotest-result"
prepare: {
// TODO: This is hacky. Possible solution: Add autotest tag to application
// in autotest module and have that as inputsFromDependencies instead of application.
@@ -76,14 +70,29 @@ Product {
commandFilePath = ModUtils.artifactInstalledFilePath(input);
if (!commandFilePath || !File.exists(commandFilePath))
commandFilePath = input.filePath;
+ var workingDir = product.workingDir ? product.workingDir
+ : FileInfo.path(commandFilePath);
+ var arguments = product.arguments;
+ var allowFailure = false;
+ if (input.autotest) {
+ // FIXME: We'd like to let the user override with an empty list, but
+ // qbscore turns undefined lists into empty ones at the moment.
+ if (input.autotest.arguments && input.autotest.arguments.length > 0)
+ arguments = input.autotest.arguments;
+
+ if (input.autotest.workingDir)
+ workingDir = input.autotest.workingDir;
+ allowFailure = input.autotest.allowFailure;
+ }
var fullCommandLine = product.wrapper
.concat([commandFilePath])
- .concat(product.arguments);
+ .concat(arguments);
var cmd = new Command(fullCommandLine[0], fullCommandLine.slice(1));
cmd.description = "Running test " + input.fileName;
cmd.environment = product.environment;
- cmd.workingDirectory = product.workingDir ? product.workingDir
- : FileInfo.path(commandFilePath);
+ cmd.workingDirectory = workingDir;
+ if (allowFailure)
+ cmd.maxExitCode = 32767;
return cmd;
}
}
diff --git a/share/qbs/imports/qbs/base/CppApplication.qbs b/share/qbs/imports/qbs/base/CppApplication.qbs
index 9b7de2bf8..bc7ba50e6 100644
--- a/share/qbs/imports/qbs/base/CppApplication.qbs
+++ b/share/qbs/imports/qbs/base/CppApplication.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
-
Application {
Depends { name: "cpp" }
}
diff --git a/share/qbs/imports/qbs/base/DynamicLibrary.qbs b/share/qbs/imports/qbs/base/DynamicLibrary.qbs
index 32d8fec41..267519a42 100644
--- a/share/qbs/imports/qbs/base/DynamicLibrary.qbs
+++ b/share/qbs/imports/qbs/base/DynamicLibrary.qbs
@@ -28,8 +28,26 @@
**
****************************************************************************/
-import qbs
-
Library {
type: ["dynamiclibrary"].concat(isForAndroid ? ["android.nativelibrary"] : [])
+
+ installDir: isBundle ? "Library/Frameworks" : qbs.targetOS.contains("windows")
+ ? "bin" : "lib"
+ property bool installImportLib: false
+ property string importLibInstallDir: "lib"
+
+ Group {
+ condition: install
+ fileTagsFilter: isBundle ? "bundle.content" : ["dynamiclibrary", "dynamiclibrary_symlink"]
+ qbs.install: true
+ qbs.installDir: installDir
+ qbs.installSourceBase: isBundle ? destinationDirectory : outer
+ }
+
+ Group {
+ condition: installImportLib
+ fileTagsFilter: "dynamiclibrary_import"
+ qbs.install: true
+ qbs.installDir: importLibInstallDir
+ }
}
diff --git a/share/qbs/imports/qbs/base/InnoSetup.qbs b/share/qbs/imports/qbs/base/InnoSetup.qbs
index c4873412a..5ea076eb3 100644
--- a/share/qbs/imports/qbs/base/InnoSetup.qbs
+++ b/share/qbs/imports/qbs/base/InnoSetup.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs
-
Product {
Depends { name: "innosetup"; condition: qbs.targetOS.contains("windows") }
type: ["innosetup.exe"]
diff --git a/share/qbs/imports/qbs/base/InstallPackage.qbs b/share/qbs/imports/qbs/base/InstallPackage.qbs
index 9e621aed0..e85fe3821 100644
--- a/share/qbs/imports/qbs/base/InstallPackage.qbs
+++ b/share/qbs/imports/qbs/base/InstallPackage.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.FileInfo
import qbs.ModUtils
import qbs.TextFile
diff --git a/share/qbs/imports/qbs/base/Library.qbs b/share/qbs/imports/qbs/base/Library.qbs
index 4f0b45789..615c2319f 100644
--- a/share/qbs/imports/qbs/base/Library.qbs
+++ b/share/qbs/imports/qbs/base/Library.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs
-
NativeBinary {
type: {
if (qbs.targetOS.contains("ios") && parseInt(cpp.minimumIosVersion, 10) < 8)
diff --git a/share/qbs/imports/qbs/base/LoadableModule.qbs b/share/qbs/imports/qbs/base/LoadableModule.qbs
index 607a7d8d2..34579e4de 100644
--- a/share/qbs/imports/qbs/base/LoadableModule.qbs
+++ b/share/qbs/imports/qbs/base/LoadableModule.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs
-
DynamicLibrary {
type: isForDarwin ? ["loadablemodule"] : base
}
diff --git a/share/qbs/imports/qbs/base/NSISSetup.qbs b/share/qbs/imports/qbs/base/NSISSetup.qbs
index 6401a17c4..1362f2713 100644
--- a/share/qbs/imports/qbs/base/NSISSetup.qbs
+++ b/share/qbs/imports/qbs/base/NSISSetup.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs
-
Product {
Depends { name: "nsis"; condition: qbs.targetOS.contains("windows") }
type: ["nsissetup"]
diff --git a/share/qbs/imports/qbs/base/NativeBinary.qbs b/share/qbs/imports/qbs/base/NativeBinary.qbs
index 0a772b60c..3597f348f 100644
--- a/share/qbs/imports/qbs/base/NativeBinary.qbs
+++ b/share/qbs/imports/qbs/base/NativeBinary.qbs
@@ -28,13 +28,15 @@
**
****************************************************************************/
-import qbs
-
Product {
property bool isForAndroid: qbs.targetOS.contains("android")
property bool isForDarwin: qbs.targetOS.contains("darwin")
+ property bool isBundle: isForDarwin && bundle.isBundle
+
+ property bool install: false
+ property string installDir
- Depends { name: "bundle" }
+ Depends { name: "bundle"; condition: isForDarwin }
aggregate: {
if (!isForDarwin)
diff --git a/share/qbs/imports/qbs/base/QtApplication.qbs b/share/qbs/imports/qbs/base/QtApplication.qbs
index b9e8f2603..32800d294 100644
--- a/share/qbs/imports/qbs/base/QtApplication.qbs
+++ b/share/qbs/imports/qbs/base/QtApplication.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs
-
CppApplication {
Depends { name: "Qt.core" }
}
diff --git a/share/qbs/imports/qbs/base/QtGuiApplication.qbs b/share/qbs/imports/qbs/base/QtGuiApplication.qbs
index 1d92142fa..ead671efb 100644
--- a/share/qbs/imports/qbs/base/QtGuiApplication.qbs
+++ b/share/qbs/imports/qbs/base/QtGuiApplication.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs
-
CppApplication {
Depends { name: "Qt.gui" }
Depends {
diff --git a/share/qbs/imports/qbs/base/StaticLibrary.qbs b/share/qbs/imports/qbs/base/StaticLibrary.qbs
index 1609bdcea..4eea3c991 100644
--- a/share/qbs/imports/qbs/base/StaticLibrary.qbs
+++ b/share/qbs/imports/qbs/base/StaticLibrary.qbs
@@ -28,8 +28,15 @@
**
****************************************************************************/
-import qbs
-
Library {
type: ["staticlibrary"]
+
+ installDir: isBundle ? "Library/Frameworks" : "lib"
+ Group {
+ condition: install
+ fileTagsFilter: isBundle ? "bundle.content" : "staticlibrary";
+ qbs.install: true
+ qbs.installDir: installDir
+ qbs.installSourceBase: isBundle ? destinationDirectory : outer
+ }
}
diff --git a/share/qbs/imports/qbs/base/WindowsInstallerPackage.qbs b/share/qbs/imports/qbs/base/WindowsInstallerPackage.qbs
index d624be864..791fc9473 100644
--- a/share/qbs/imports/qbs/base/WindowsInstallerPackage.qbs
+++ b/share/qbs/imports/qbs/base/WindowsInstallerPackage.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs
-
Product {
Depends { name: "wix"; condition: qbs.targetOS.contains("windows") }
type: ["msi"]
diff --git a/share/qbs/imports/qbs/base/XPCService.qbs b/share/qbs/imports/qbs/base/XPCService.qbs
index 0e8e1eb7c..16c25900c 100644
--- a/share/qbs/imports/qbs/base/XPCService.qbs
+++ b/share/qbs/imports/qbs/base/XPCService.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs
-
Application {
type: base.concat(["xpcservice"])
diff --git a/share/qbs/modules/Android/ndk/ndk.qbs b/share/qbs/modules/Android/ndk/ndk.qbs
index 226423d61..5d4322731 100644
--- a/share/qbs/modules/Android/ndk/ndk.qbs
+++ b/share/qbs/modules/Android/ndk/ndk.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.File
import qbs.FileInfo
import qbs.ModUtils
diff --git a/share/qbs/modules/Android/sdk/sdk.qbs b/share/qbs/modules/Android/sdk/sdk.qbs
index 84cee56e9..d12da0768 100644
--- a/share/qbs/modules/Android/sdk/sdk.qbs
+++ b/share/qbs/modules/Android/sdk/sdk.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.Environment
import qbs.File
import qbs.FileInfo
diff --git a/share/qbs/modules/Exporter/pkgconfig/pkgconfig.qbs b/share/qbs/modules/Exporter/pkgconfig/pkgconfig.qbs
index aecad6126..8cc55f885 100644
--- a/share/qbs/modules/Exporter/pkgconfig/pkgconfig.qbs
+++ b/share/qbs/modules/Exporter/pkgconfig/pkgconfig.qbs
@@ -1,4 +1,3 @@
-import qbs
import qbs.FileInfo
import qbs.TextFile
diff --git a/share/qbs/modules/Exporter/qbs/qbsexporter.qbs b/share/qbs/modules/Exporter/qbs/qbsexporter.qbs
index 351edfefe..861483ef0 100644
--- a/share/qbs/modules/Exporter/qbs/qbsexporter.qbs
+++ b/share/qbs/modules/Exporter/qbs/qbsexporter.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.FileInfo
import qbs.TextFile
diff --git a/share/qbs/modules/archiver/archiver.qbs b/share/qbs/modules/archiver/archiver.qbs
index c70b57bf4..2b2515084 100644
--- a/share/qbs/modules/archiver/archiver.qbs
+++ b/share/qbs/modules/archiver/archiver.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.Environment
import qbs.File
import qbs.FileInfo
diff --git a/share/qbs/modules/autotest/autotest.qbs b/share/qbs/modules/autotest/autotest.qbs
new file mode 100644
index 000000000..ba280169e
--- /dev/null
+++ b/share/qbs/modules/autotest/autotest.qbs
@@ -0,0 +1,5 @@
+Module {
+ property stringList arguments
+ property bool allowFailure: false
+ property string workingDir
+}
diff --git a/share/qbs/modules/bundle/BundleModule.qbs b/share/qbs/modules/bundle/BundleModule.qbs
index 7752ee65e..85a1a7388 100644
--- a/share/qbs/modules/bundle/BundleModule.qbs
+++ b/share/qbs/modules/bundle/BundleModule.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.BundleTools
import qbs.DarwinTools
import qbs.Environment
@@ -264,7 +263,8 @@ Module {
Rule {
condition: qbs.targetOS.contains("darwin")
multiplex: true
- inputs: ["qbs", "infoplist", "partial_infoplist"]
+ requiresInputs: false // TODO: The resources property should probably be a tag instead.
+ inputs: ["infoplist", "partial_infoplist"]
outputFileTags: ["bundle.input", "aggregate_infoplist"]
outputArtifacts: {
diff --git a/share/qbs/modules/cli/CLIModule.qbs b/share/qbs/modules/cli/CLIModule.qbs
index 866580029..d0ca120ef 100644
--- a/share/qbs/modules/cli/CLIModule.qbs
+++ b/share/qbs/modules/cli/CLIModule.qbs
@@ -1,5 +1,4 @@
// base for Common Language Infrastructure modules
-import qbs
import qbs.FileInfo
import qbs.ModUtils
import "cli.js" as CLI
diff --git a/share/qbs/modules/cli/mono.qbs b/share/qbs/modules/cli/mono.qbs
index c679c4bf0..30e8c4726 100644
--- a/share/qbs/modules/cli/mono.qbs
+++ b/share/qbs/modules/cli/mono.qbs
@@ -1,4 +1,3 @@
-import qbs
import qbs.File
import qbs.Probes
diff --git a/share/qbs/modules/cli/windows-dotnet.qbs b/share/qbs/modules/cli/windows-dotnet.qbs
index b1b29d7a9..6fde50b85 100644
--- a/share/qbs/modules/cli/windows-dotnet.qbs
+++ b/share/qbs/modules/cli/windows-dotnet.qbs
@@ -1,4 +1,3 @@
-import qbs
import qbs.Utilities
CLIModule {
diff --git a/share/qbs/modules/cpp/DarwinGCC.qbs b/share/qbs/modules/cpp/DarwinGCC.qbs
index 16176b4eb..690f69219 100644
--- a/share/qbs/modules/cpp/DarwinGCC.qbs
+++ b/share/qbs/modules/cpp/DarwinGCC.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.DarwinTools
import qbs.File
import qbs.FileInfo
diff --git a/share/qbs/modules/cpp/GenericGCC.qbs b/share/qbs/modules/cpp/GenericGCC.qbs
index 792e8ef4c..61cbe6ca6 100644
--- a/share/qbs/modules/cpp/GenericGCC.qbs
+++ b/share/qbs/modules/cpp/GenericGCC.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
import qbs.File
import qbs.FileInfo
import qbs.ModUtils
@@ -390,7 +389,7 @@ CppModule {
|| product.multiplexConfigurationId
Rule {
- id: dynamicLibraryLinker
+ name: "dynamicLibraryLinker"
condition: product.cpp.shouldLink
multiplex: true
inputs: {
@@ -452,7 +451,7 @@ CppModule {
}
Rule {
- id: staticLibraryLinker
+ name: "staticLibraryLinker"
condition: product.cpp.shouldLink
multiplex: true
inputs: ["obj", "linkerscript"]
@@ -494,7 +493,7 @@ CppModule {
}
Rule {
- id: loadableModuleLinker
+ name: "loadableModuleLinker"
condition: product.cpp.shouldLink
multiplex: true
inputs: {
@@ -531,7 +530,7 @@ CppModule {
}
Rule {
- id: applicationLinker
+ name: "applicationLinker"
condition: product.cpp.shouldLink
multiplex: true
inputs: {
@@ -567,7 +566,7 @@ CppModule {
}
Rule {
- id: compiler
+ name: "compiler"
inputs: ["cpp", "c", "objcpp", "objc", "asm_cpp"]
auxiliaryInputs: ["hpp"]
explicitlyDependsOn: ["c_pch", "cpp_pch", "objc_pch", "objcpp_pch"]
@@ -592,7 +591,7 @@ CppModule {
}
Rule {
- id: assembler
+ name: "assembler"
inputs: ["asm"]
Artifact {
diff --git a/share/qbs/modules/cpp/LinuxGCC.qbs b/share/qbs/modules/cpp/LinuxGCC.qbs
index 371e519dc..e93a5d7e7 100644
--- a/share/qbs/modules/cpp/LinuxGCC.qbs
+++ b/share/qbs/modules/cpp/LinuxGCC.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
import qbs.Process
UnixGCC {
diff --git a/share/qbs/modules/cpp/UnixGCC.qbs b/share/qbs/modules/cpp/UnixGCC.qbs
index ec26cffb6..e5b99cd98 100644
--- a/share/qbs/modules/cpp/UnixGCC.qbs
+++ b/share/qbs/modules/cpp/UnixGCC.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
import qbs.File
GenericGCC {
diff --git a/share/qbs/modules/cpp/android-gcc.qbs b/share/qbs/modules/cpp/android-gcc.qbs
index 057e77476..c546488d6 100644
--- a/share/qbs/modules/cpp/android-gcc.qbs
+++ b/share/qbs/modules/cpp/android-gcc.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.File
import qbs.FileInfo
import qbs.ModUtils
diff --git a/share/qbs/modules/cpp/freebsd-gcc.qbs b/share/qbs/modules/cpp/freebsd-gcc.qbs
index 724f242ff..b5a4b89f3 100644
--- a/share/qbs/modules/cpp/freebsd-gcc.qbs
+++ b/share/qbs/modules/cpp/freebsd-gcc.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import "freebsd.js" as FreeBSD
UnixGCC {
diff --git a/share/qbs/modules/cpp/ios-gcc.qbs b/share/qbs/modules/cpp/ios-gcc.qbs
index 408bc3aec..735766650 100644
--- a/share/qbs/modules/cpp/ios-gcc.qbs
+++ b/share/qbs/modules/cpp/ios-gcc.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
import qbs.DarwinTools
import qbs.File
import qbs.FileInfo
diff --git a/share/qbs/modules/cpp/macos-gcc.qbs b/share/qbs/modules/cpp/macos-gcc.qbs
index e2c930c80..612b46ae8 100644
--- a/share/qbs/modules/cpp/macos-gcc.qbs
+++ b/share/qbs/modules/cpp/macos-gcc.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
import qbs.ModUtils
import qbs.Utilities
diff --git a/share/qbs/modules/cpp/qnx-qcc.qbs b/share/qbs/modules/cpp/qnx-qcc.qbs
index 28c9ce266..a39a6a998 100644
--- a/share/qbs/modules/cpp/qnx-qcc.qbs
+++ b/share/qbs/modules/cpp/qnx-qcc.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.FileInfo
UnixGCC {
diff --git a/share/qbs/modules/cpp/tvos-gcc.qbs b/share/qbs/modules/cpp/tvos-gcc.qbs
index ae4dd5c5b..19bc9b787 100644
--- a/share/qbs/modules/cpp/tvos-gcc.qbs
+++ b/share/qbs/modules/cpp/tvos-gcc.qbs
@@ -28,8 +28,6 @@
**
****************************************************************************/
-import qbs
-
DarwinGCC {
priority: 1
condition: qbs.targetOS.contains('tvos') &&
diff --git a/share/qbs/modules/cpp/watchos-gcc.qbs b/share/qbs/modules/cpp/watchos-gcc.qbs
index c8bd0a55d..46e4bf874 100644
--- a/share/qbs/modules/cpp/watchos-gcc.qbs
+++ b/share/qbs/modules/cpp/watchos-gcc.qbs
@@ -29,8 +29,6 @@
**
****************************************************************************/
-import qbs
-
DarwinGCC {
priority: 1
condition: qbs.targetOS.contains('watchos') &&
diff --git a/share/qbs/modules/cpp/windows-mingw.qbs b/share/qbs/modules/cpp/windows-mingw.qbs
index 3e3ba409d..27382742f 100644
--- a/share/qbs/modules/cpp/windows-mingw.qbs
+++ b/share/qbs/modules/cpp/windows-mingw.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
import qbs.ModUtils
import qbs.TextFile
import qbs.Utilities
diff --git a/share/qbs/modules/cpp/windows-msvc.qbs b/share/qbs/modules/cpp/windows-msvc.qbs
index 3164e08b5..bf0b6af7a 100644
--- a/share/qbs/modules/cpp/windows-msvc.qbs
+++ b/share/qbs/modules/cpp/windows-msvc.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
import qbs.File
import qbs.FileInfo
import qbs.ModUtils
@@ -170,7 +169,7 @@ CppModule {
}
Rule {
- id: compiler
+ name: "compiler"
inputs: ["cpp", "c"]
auxiliaryInputs: ["hpp"]
explicitlyDependsOn: ["c_pch", "cpp_pch"]
@@ -191,7 +190,7 @@ CppModule {
}
Rule {
- id: applicationLinker
+ name: "applicationLinker"
multiplex: true
inputs: ['obj', 'native.pe.manifest']
inputsFromDependencies: ['staticlibrary', 'dynamiclibrary_import', "debuginfo_app"]
@@ -221,7 +220,7 @@ CppModule {
}
Rule {
- id: dynamicLibraryLinker
+ name: "dynamicLibraryLinker"
multiplex: true
inputs: ['obj', 'native.pe.manifest']
inputsFromDependencies: ['staticlibrary', 'dynamiclibrary_import', "debuginfo_dll"]
@@ -256,7 +255,7 @@ CppModule {
}
Rule {
- id: libtool
+ name: "libtool"
multiplex: true
inputs: ["obj"]
inputsFromDependencies: ["staticlibrary", "dynamiclibrary_import"]
diff --git a/share/qbs/modules/cpufeatures/cpufeatures.qbs b/share/qbs/modules/cpufeatures/cpufeatures.qbs
index a7ef95193..17e6b851e 100644
--- a/share/qbs/modules/cpufeatures/cpufeatures.qbs
+++ b/share/qbs/modules/cpufeatures/cpufeatures.qbs
@@ -1,5 +1,3 @@
-import qbs
-
Module {
property bool arm_neon
property bool arm_vfpv4
diff --git a/share/qbs/modules/dmg/DMGModule.qbs b/share/qbs/modules/dmg/DMGModule.qbs
index 09e31f696..c5d097a0b 100644
--- a/share/qbs/modules/dmg/DMGModule.qbs
+++ b/share/qbs/modules/dmg/DMGModule.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.DarwinTools
import qbs.File
import qbs.FileInfo
@@ -140,7 +139,7 @@ Module {
Rule {
multiplex: true
- inputs: ["qbs", "dmg.input", "dmg.license", "icns", "tiff"]
+ inputs: ["dmg.input", "dmg.license", "icns", "tiff"]
Artifact {
fileTags: ["dmg.dmg"]
diff --git a/share/qbs/modules/ib/IBModule.qbs b/share/qbs/modules/ib/IBModule.qbs
index 66d76aede..1324108e9 100644
--- a/share/qbs/modules/ib/IBModule.qbs
+++ b/share/qbs/modules/ib/IBModule.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.BundleTools
import qbs.DarwinTools
import qbs.File
diff --git a/share/qbs/modules/ico/IcoModule.qbs b/share/qbs/modules/ico/IcoModule.qbs
index 444fcd597..7157aab09 100644
--- a/share/qbs/modules/ico/IcoModule.qbs
+++ b/share/qbs/modules/ico/IcoModule.qbs
@@ -1,4 +1,3 @@
-import qbs
import qbs.File
import qbs.FileInfo
import qbs.ModUtils
diff --git a/share/qbs/modules/innosetup/InnoSetupModule.qbs b/share/qbs/modules/innosetup/InnoSetupModule.qbs
index bc5b74460..1caf39dc8 100644
--- a/share/qbs/modules/innosetup/InnoSetupModule.qbs
+++ b/share/qbs/modules/innosetup/InnoSetupModule.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.FileInfo
import qbs.ModUtils
import qbs.Probes
diff --git a/share/qbs/modules/java/JavaModule.qbs b/share/qbs/modules/java/JavaModule.qbs
index 928684a4f..1eba96d37 100644
--- a/share/qbs/modules/java/JavaModule.qbs
+++ b/share/qbs/modules/java/JavaModule.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.FileInfo
import qbs.ModUtils
import qbs.Probes
diff --git a/share/qbs/modules/lex_yacc/lexyacc.qbs b/share/qbs/modules/lex_yacc/lexyacc.qbs
index 20982f7aa..48af1d793 100644
--- a/share/qbs/modules/lex_yacc/lexyacc.qbs
+++ b/share/qbs/modules/lex_yacc/lexyacc.qbs
@@ -1,4 +1,3 @@
-import qbs
import "lexyacc.js" as HelperFunctions
Module {
diff --git a/share/qbs/modules/nodejs/NodeJS.qbs b/share/qbs/modules/nodejs/NodeJS.qbs
index b40ea2d9e..484496685 100644
--- a/share/qbs/modules/nodejs/NodeJS.qbs
+++ b/share/qbs/modules/nodejs/NodeJS.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.Environment
import qbs.File
import qbs.FileInfo
diff --git a/share/qbs/modules/nsis/NSISModule.qbs b/share/qbs/modules/nsis/NSISModule.qbs
index ef1d5b0e1..e426aee56 100644
--- a/share/qbs/modules/nsis/NSISModule.qbs
+++ b/share/qbs/modules/nsis/NSISModule.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
import qbs.File
import qbs.FileInfo
import qbs.ModUtils
diff --git a/share/qbs/modules/qbs/common.qbs b/share/qbs/modules/qbs/common.qbs
index 86ce27c59..f53a30e60 100644
--- a/share/qbs/modules/qbs/common.qbs
+++ b/share/qbs/modules/qbs/common.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs 1.0
import qbs.Environment
import qbs.FileInfo
import qbs.ModUtils
@@ -102,7 +101,7 @@ Module {
property path installSourceBase
property string installRoot: project.buildDirectory + "/install-root"
property string installDir
- property string installPrefix: ""
+ property string installPrefix: qbs.targetOS.contains("unix") ? "/usr/local" : ""
property path sysroot
PropertyOptions {
diff --git a/share/qbs/modules/qnx/qnx.qbs b/share/qbs/modules/qnx/qnx.qbs
index 49ebc36b6..87b54eca0 100644
--- a/share/qbs/modules/qnx/qnx.qbs
+++ b/share/qbs/modules/qnx/qnx.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.Environment
import qbs.File
import qbs.FileInfo
diff --git a/share/qbs/modules/texttemplate/texttemplate.qbs b/share/qbs/modules/texttemplate/texttemplate.qbs
new file mode 100644
index 000000000..c72929660
--- /dev/null
+++ b/share/qbs/modules/texttemplate/texttemplate.qbs
@@ -0,0 +1,64 @@
+import qbs.TextFile
+
+Module {
+ property var dict: ({})
+ property string outputTag: "text"
+ property string outputFileName
+ FileTagger {
+ patterns: ["*.in"]
+ fileTags: ["texttemplate.input"]
+ }
+ Rule {
+ inputs: ["texttemplate.input"]
+ outputFileTags: [product.texttemplate.outputTag]
+ outputArtifacts: [
+ {
+ fileTags: [product.texttemplate.outputTag],
+ filePath: input.texttemplate.outputFileName || input.completeBaseName
+ }
+ ]
+ prepare: {
+ var cmd = new JavaScriptCommand();
+ cmd.silent = true;
+ cmd.sourceCode = function() {
+ try {
+ var src = new TextFile(input.filePath, TextFile.ReadOnly);
+ var dst = new TextFile(output.filePath, TextFile.WriteOnly);
+ var rex = /\${(\$|\w+)}/g;
+ var match;
+ while (!src.atEof()) {
+ rex.lastIndex = 0;
+ var line = src.readLine();
+ var matches = [];
+ while (match = rex.exec(line))
+ matches.push(match);
+ for (var i = matches.length; --i >= 0;) {
+ match = matches[i];
+ var replacement;
+ if (match[1] === "$") {
+ replacement = "$";
+ } else {
+ replacement = input.texttemplate.dict[match[1]];
+ if (typeof replacement === "undefined") {
+ throw new Error("Placeholder '" + match[1]
+ + "' is not defined in textemplate.dict for '"
+ + input.fileName + "'.");
+ }
+ }
+ line = line.substr(0, match.index)
+ + replacement
+ + line.substr(match.index + match[0].length);
+ }
+ dst.writeLine(line);
+ }
+ } finally {
+ if (src)
+ src.close();
+ if (dst)
+ dst.close();
+ }
+ };
+ return [cmd];
+ }
+ }
+}
diff --git a/share/qbs/modules/typescript/TypeScriptModule.qbs b/share/qbs/modules/typescript/TypeScriptModule.qbs
index 7cbd02265..d8e61b17f 100644
--- a/share/qbs/modules/typescript/TypeScriptModule.qbs
+++ b/share/qbs/modules/typescript/TypeScriptModule.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.File
import qbs.FileInfo
import qbs.ModUtils
diff --git a/share/qbs/modules/vcs/vcs-module.qbs b/share/qbs/modules/vcs/vcs-module.qbs
index ee7a34582..f3a47d2a6 100644
--- a/share/qbs/modules/vcs/vcs-module.qbs
+++ b/share/qbs/modules/vcs/vcs-module.qbs
@@ -1,4 +1,3 @@
-import qbs
import qbs.File
import qbs.FileInfo
import qbs.Process
diff --git a/share/qbs/modules/wix/WiXModule.qbs b/share/qbs/modules/wix/WiXModule.qbs
index 3159822de..ad8586da1 100644
--- a/share/qbs/modules/wix/WiXModule.qbs
+++ b/share/qbs/modules/wix/WiXModule.qbs
@@ -28,7 +28,6 @@
**
****************************************************************************/
-import qbs
import qbs.File
import qbs.FileInfo
import qbs.ModUtils
diff --git a/share/qbs/modules/xcode/xcode.qbs b/share/qbs/modules/xcode/xcode.qbs
index 0df7f5204..922580505 100644
--- a/share/qbs/modules/xcode/xcode.qbs
+++ b/share/qbs/modules/xcode/xcode.qbs
@@ -1,4 +1,3 @@
-import qbs
import qbs.BundleTools
import qbs.Environment
import qbs.File