diff options
| author | Jake Petroules <jake.petroules@petroules.com> | 2015-07-21 02:04:07 -0700 |
|---|---|---|
| committer | Jake Petroules <jake.petroules@petroules.com> | 2015-07-24 08:34:47 +0000 |
| commit | 4f99573b245a1ee8904384f41ec1f5aa4124f26d (patch) | |
| tree | f7e55828cd5dc942cd129d9a81ea9efbad4973d3 | |
| parent | e892568b556ed5587bf4820163c44cb56880c0e4 (diff) | |
| download | qbs-4f99573b245a1ee8904384f41ec1f5aa4124f26d.tar.gz | |
Add a node.js probe and use it in the modules.
Change-Id: Ie47951e621702d387ca6274cd74e6c5858f49d16
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
| -rw-r--r-- | share/qbs/imports/qbs/Probes/NodeJsProbe.qbs | 35 | ||||
| -rw-r--r-- | share/qbs/modules/nodejs/NodeJS.qbs | 25 |
2 files changed, 60 insertions, 0 deletions
diff --git a/share/qbs/imports/qbs/Probes/NodeJsProbe.qbs b/share/qbs/imports/qbs/Probes/NodeJsProbe.qbs new file mode 100644 index 000000000..db648fab4 --- /dev/null +++ b/share/qbs/imports/qbs/Probes/NodeJsProbe.qbs @@ -0,0 +1,35 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Jake Petroules. +** Contact: http://www.qt.io/licensing +** +** This file is part of the Qt Build Suite. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms and +** conditions see http://www.qt.io/terms-conditions. For further information +** use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +import qbs + +BinaryProbe { + names: ["nodejs", "node"] +} diff --git a/share/qbs/modules/nodejs/NodeJS.qbs b/share/qbs/modules/nodejs/NodeJS.qbs index b36c8422e..fec968350 100644 --- a/share/qbs/modules/nodejs/NodeJS.qbs +++ b/share/qbs/modules/nodejs/NodeJS.qbs @@ -32,22 +32,39 @@ import qbs import qbs.File import qbs.FileInfo import qbs.ModUtils +import qbs.Probes Module { // JavaScript files which have been "processed" - currently this simply means "copied to output // directory" but might later include minification and obfuscation processing additionalProductTypes: ["nodejs_processed_js"].concat(applicationFile ? ["application"] : []) + Probes.NodeJsProbe { + id: nodejs + pathPrefixes: [toolchainInstallPath] + } + property path applicationFile PropertyOptions { name: "applicationFile" description: "file whose corresponding output will be executed when running the Node.js app" } + property path toolchainInstallPath: nodejs.path + + property path interpreterFileName: nodejs.fileName + property path interpreterFilePath: nodejs.filePath + // private properties readonly property path compiledIntermediateDir: FileInfo.joinPaths(product.buildDirectory, "tmp", "nodejs.intermediate") + setupBuildEnvironment: { + var v = new ModUtils.EnvironmentVariable("PATH", qbs.pathListSeparator, qbs.hostOS.contains("windows")); + v.prepend(toolchainInstallPath); + v.set(); + } + setupRunEnvironment: { var v = new ModUtils.EnvironmentVariable("NODE_PATH", qbs.pathListSeparator, qbs.hostOS.contains("windows")); v.prepend(FileInfo.path(getEnv("QBS_RUN_FILE_PATH"))); @@ -59,6 +76,14 @@ Module { fileTags: ["js"] } + validate: { + var validator = new ModUtils.PropertyValidator("nodejs"); + validator.setRequiredProperty("toolchainInstallPath", toolchainInstallPath); + validator.setRequiredProperty("interpreterFileName", interpreterFileName); + validator.setRequiredProperty("interpreterFilePath", interpreterFilePath); + validator.validate(); + } + Rule { inputs: ["js"] |
