aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/modules/nsis
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@petroules.com>2013-10-31 17:33:55 -0400
committerJoerg Bornemann <joerg.bornemann@digia.com>2014-04-24 14:56:52 +0200
commit16a7a5c531dcee4fdebe004dd3442122a1b0ade5 (patch)
tree7ad440349d5f5b665660549e2d72b55092a3a533 /share/qbs/modules/nsis
parent0877ac713c7ec1502137541d52602f3c692f8238 (diff)
Add a PropertyValidator class to centralize Module.validate operations.
Utilize the new class where warranted. This provides consistent error messages for users and makes module validation significantly simpler for developers. Change-Id: I3233392a80882ba08cc073ec613534b929abb1e9 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'share/qbs/modules/nsis')
-rwxr-xr-xshare/qbs/modules/nsis/NSISModule.qbs17
1 files changed, 15 insertions, 2 deletions
diff --git a/share/qbs/modules/nsis/NSISModule.qbs b/share/qbs/modules/nsis/NSISModule.qbs
index f0756178e..7c9f2adbe 100755
--- a/share/qbs/modules/nsis/NSISModule.qbs
+++ b/share/qbs/modules/nsis/NSISModule.qbs
@@ -70,10 +70,23 @@ Module {
}
validate: {
+ var validator = new ModUtils.PropertyValidator("nsis");
+
// Only *require* the toolchain install path on Windows
// On other (Unix-like) operating systems it'll probably be in the PATH
- if (qbs.hostOS.contains("windows") && !toolchainInstallPath)
- throw "nsis.toolchainInstallPath is not defined. Set nsis.toolchainInstallPath in your profile.";
+ if (qbs.targetOS.contains("windows"))
+ validator.setRequiredProperty("toolchainInstallPath", toolchainInstallPath);
+
+ validator.setRequiredProperty("versionMajor", versionMajor);
+ validator.setRequiredProperty("versionMinor", versionMinor);
+ validator.setRequiredProperty("versionPatch", versionPatch);
+ validator.setRequiredProperty("versionBuild", versionBuild);
+ validator.addVersionValidator("version", version, 2, 4);
+ validator.addRangeValidator("versionMajor", versionMajor, 1);
+ validator.addRangeValidator("versionMinor", versionMinor, 0);
+ validator.addRangeValidator("versionPatch", versionPatch, 0);
+ validator.addRangeValidator("versionBuild", versionBuild, 0);
+ validator.validate();
}
setupBuildEnvironment: {