diff options
author | Christian Kandeler <christian.kandeler@digia.com> | 2014-01-21 10:40:48 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-01-21 15:45:06 +0100 |
commit | c76ded1b7908c0a06531702a44bda74692479afd (patch) | |
tree | 09c8d64ec577d3162cb1dec7accab46fa50ce8e2 /share/qbs/modules | |
parent | dd6048b28f3e016b25a3b7e7124ed9ec07b50043 (diff) |
Make ModUtils a proper import.
So we don't have to duplicate the file for the qtprofilesetup library.
We still consider it internal, though.
Change-Id: Iea92b141830bc7af821b13c0270372b784f1feb7
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'share/qbs/modules')
-rw-r--r-- | share/qbs/modules/cpp/DarwinGCC.qbs | 2 | ||||
-rw-r--r-- | share/qbs/modules/cpp/GenericGCC.qbs | 2 | ||||
-rw-r--r-- | share/qbs/modules/cpp/darwin-tools.js | 1 | ||||
-rw-r--r-- | share/qbs/modules/cpp/ios-gcc.qbs | 2 | ||||
-rw-r--r-- | share/qbs/modules/cpp/osx-gcc.qbs | 2 | ||||
-rw-r--r-- | share/qbs/modules/cpp/windows-mingw.qbs | 2 | ||||
-rw-r--r-- | share/qbs/modules/cpp/windows-msvc.qbs | 2 | ||||
-rw-r--r-- | share/qbs/modules/ib/IBModule.qbs | 2 | ||||
-rwxr-xr-x | share/qbs/modules/nsis/NSISModule.qbs | 2 | ||||
-rw-r--r-- | share/qbs/modules/utils.js | 186 | ||||
-rw-r--r-- | share/qbs/modules/wix/WiXModule.qbs | 2 |
11 files changed, 10 insertions, 195 deletions
diff --git a/share/qbs/modules/cpp/DarwinGCC.qbs b/share/qbs/modules/cpp/DarwinGCC.qbs index a6b8d2dd5..7804f521a 100644 --- a/share/qbs/modules/cpp/DarwinGCC.qbs +++ b/share/qbs/modules/cpp/DarwinGCC.qbs @@ -3,7 +3,7 @@ import qbs.File import qbs.Process import qbs.TextFile import qbs.FileInfo -import '../utils.js' as ModUtils +import qbs.ModUtils import "bundle-tools.js" as BundleTools import "darwin-tools.js" as DarwinTools diff --git a/share/qbs/modules/cpp/GenericGCC.qbs b/share/qbs/modules/cpp/GenericGCC.qbs index 1547d6a43..0bb26b072 100644 --- a/share/qbs/modules/cpp/GenericGCC.qbs +++ b/share/qbs/modules/cpp/GenericGCC.qbs @@ -1,10 +1,10 @@ import qbs 1.0 import qbs.File import qbs.FileInfo +import qbs.ModUtils import qbs.Process import 'windows.js' as Windows import 'gcc.js' as Gcc -import '../utils.js' as ModUtils import 'bundle-tools.js' as BundleTools import 'path-tools.js' as PathTools diff --git a/share/qbs/modules/cpp/darwin-tools.js b/share/qbs/modules/cpp/darwin-tools.js index fe49351fc..86c99ff9c 100644 --- a/share/qbs/modules/cpp/darwin-tools.js +++ b/share/qbs/modules/cpp/darwin-tools.js @@ -1,3 +1,4 @@ + // replace chars non safe for a domain name (rfc1034) with a "-" function rfc1034(inStr) { diff --git a/share/qbs/modules/cpp/ios-gcc.qbs b/share/qbs/modules/cpp/ios-gcc.qbs index 122e3063c..02af5b6d9 100644 --- a/share/qbs/modules/cpp/ios-gcc.qbs +++ b/share/qbs/modules/cpp/ios-gcc.qbs @@ -1,7 +1,7 @@ import qbs 1.0 import qbs.File import qbs.FileInfo -import '../utils.js' as ModUtils +import qbs.ModUtils import 'darwin-tools.js' as DarwinTools import 'bundle-tools.js' as BundleTools diff --git a/share/qbs/modules/cpp/osx-gcc.qbs b/share/qbs/modules/cpp/osx-gcc.qbs index eb6fefc50..32af2b300 100644 --- a/share/qbs/modules/cpp/osx-gcc.qbs +++ b/share/qbs/modules/cpp/osx-gcc.qbs @@ -1,5 +1,5 @@ import qbs 1.0 -import '../utils.js' as ModUtils +import qbs.ModUtils DarwinGCC { condition: qbs.hostOS.contains('osx') && qbs.targetOS.contains('osx') && qbs.toolchain.contains('gcc') diff --git a/share/qbs/modules/cpp/windows-mingw.qbs b/share/qbs/modules/cpp/windows-mingw.qbs index c46a7432c..72172328e 100644 --- a/share/qbs/modules/cpp/windows-mingw.qbs +++ b/share/qbs/modules/cpp/windows-mingw.qbs @@ -1,6 +1,6 @@ import qbs 1.0 import qbs.FileInfo -import '../utils.js' as ModUtils +import qbs.ModUtils import "windows.js" as Windows GenericGCC { diff --git a/share/qbs/modules/cpp/windows-msvc.qbs b/share/qbs/modules/cpp/windows-msvc.qbs index 0c121c820..c112625bd 100644 --- a/share/qbs/modules/cpp/windows-msvc.qbs +++ b/share/qbs/modules/cpp/windows-msvc.qbs @@ -1,7 +1,7 @@ import qbs 1.0 import qbs.File import qbs.FileInfo -import '../utils.js' as ModUtils +import qbs.ModUtils import 'windows.js' as Windows import 'msvc.js' as MSVC import "bundle-tools.js" as BundleTools // needed for path-tools.js diff --git a/share/qbs/modules/ib/IBModule.qbs b/share/qbs/modules/ib/IBModule.qbs index cd45cfa2b..8bec1f5a0 100644 --- a/share/qbs/modules/ib/IBModule.qbs +++ b/share/qbs/modules/ib/IBModule.qbs @@ -1,7 +1,7 @@ import qbs 1.0 import qbs.FileInfo +import qbs.ModUtils import qbs.PropertyList -import '../utils.js' as ModUtils import "../cpp/bundle-tools.js" as BundleTools import "../cpp/darwin-tools.js" as DarwinTools diff --git a/share/qbs/modules/nsis/NSISModule.qbs b/share/qbs/modules/nsis/NSISModule.qbs index a07f9f46d..77a72436b 100755 --- a/share/qbs/modules/nsis/NSISModule.qbs +++ b/share/qbs/modules/nsis/NSISModule.qbs @@ -1,7 +1,7 @@ import qbs 1.0 import qbs.File import qbs.FileInfo -import "../utils.js" as ModUtils +import qbs.ModUtils Module { condition: qbs.targetOS.contains("windows") diff --git a/share/qbs/modules/utils.js b/share/qbs/modules/utils.js deleted file mode 100644 index 9ec02d8db..000000000 --- a/share/qbs/modules/utils.js +++ /dev/null @@ -1,186 +0,0 @@ -// -// utility functions for modules -// - -/*! - * Given a list of file tags, returns the file tag (one of [c, cpp, objc, objcpp]) - * corresponding to the C-family language the file should be compiled as. - * - * If no such tag is found, undefined is returned. If more than one match is - * found, an exception is thrown. - */ -function fileTagForTargetLanguage(fileTags) -{ - var srcTags = ["c", "cpp", "objc", "objcpp", "asm", "asm_cpp"]; - var pchTags = ["c_pch", "cpp_pch", "objc_pch", "objcpp_pch"]; - - var canonicalTag = undefined; - var foundTagCount = 0; - for (var i = 0; i < fileTags.length; ++i) { - var idx = srcTags.indexOf(fileTags[i]); - if (idx === -1) - idx = pchTags.indexOf(fileTags[i]); - - if (idx !== -1) { - canonicalTag = srcTags[idx]; - if (++foundTagCount > 1) - break; - } - } - - if (foundTagCount > 1) - throw ("source files cannot be identified as more than one language"); - - return foundTagCount == 1 ? canonicalTag : undefined; -} - -/* - * Returns the name of a language-specific property given the file tag - * for that property, and the base property name. - * - * If \a fileTag is undefined, the language-agnostic property name is returned. - * - * \param propertyName flags, platformFlags, precompiledHeader - * \param fileTag c, cpp, objc, objcpp - */ -function languagePropertyName(propertyName, fileTag) -{ - if (!fileTag) - fileTag = 'common'; - - var map = { - 'c': { - 'flags': 'cFlags', - 'platformFlags': 'platformCFlags', - 'precompiledHeader': 'cPrecompiledHeader' - }, - 'cpp': { - 'flags': 'cxxFlags', - 'platformFlags': 'platformCxxFlags', - 'precompiledHeader': 'cxxPrecompiledHeader' - }, - 'objc': { - 'flags': 'objcFlags', - 'platformFlags': 'platformObjcFlags', - 'precompiledHeader': 'objcPrecompiledHeader' - }, - 'objcpp': { - 'flags': 'objcxxFlags', - 'platformFlags': 'platformObjcxxFlags', - 'precompiledHeader': 'objcxxPrecompiledHeader' - }, - 'common': { - 'flags': 'commonCompilerFlags', - 'platformFlags': 'platformCommonCompilerFlags', - 'precompiledHeader': 'precompiledHeader' - } - }; - - var lang = map[fileTag]; - if (!lang) - return propertyName; - - return lang[propertyName] || propertyName; -} - -function moduleProperties(config, key, langFilter) -{ - return config.moduleProperties(config.moduleName, languagePropertyName(key, langFilter)) -} - -function modulePropertiesFromArtifacts(product, artifacts, moduleName, propertyName, langFilter) -{ - var result = product.moduleProperties(moduleName, languagePropertyName(propertyName, langFilter)) - for (var i in artifacts) - result = result.concat(artifacts[i].moduleProperties(moduleName, languagePropertyName(propertyName, langFilter))) - return result -} - -function moduleProperty(product, propertyName, langFilter) -{ - return product.moduleProperty(product.moduleName, languagePropertyName(propertyName, langFilter)) -} - -function dumpProperty(key, value, level) -{ - var indent = '' - for (var k=0; k < level; ++k) - indent += ' ' - print(indent + key + ': ' + value) -} - -function traverseObject(obj, func, level) -{ - if (!level) - level = 0 - var i, children = {} - for (i in obj) { - if (typeof(obj[i]) === "object" && !(obj[i] instanceof Array)) - children[i] = obj[i] - else - func.apply(this, [i, obj[i], level]) - } - level++ - for (i in children) { - func.apply(this, [i, children[i], level - 1]) - traverseObject(children[i], func, level) - } - level-- -} - -function dumpObject(obj, description) -{ - if (!description) - description = 'object dump' - print('+++++++++ ' + description + ' +++++++++') - traverseObject(obj, dumpProperty) -} - -function uniqueConcat(array1, array2) -{ - var result = array1; - for (i in array2) { - var elem = array2[i]; - if (result.indexOf(elem) === -1) - result.push(elem); - } - return result; -} - - -////////////////////////////////////////////////////////// -// The EnvironmentVariable class -// -function EnvironmentVariable(name, separator, convertPathSeparators) -{ - if (!name) - throw "EnvironmentVariable c'tor needs a name as first argument." - this.name = name - this.value = getEnv(name).toString() - this.separator = separator || '' - this.convertPathSeparators = convertPathSeparators || false -} - -EnvironmentVariable.prototype.prepend = function(v) -{ - if (this.value.length > 0 && this.value.charAt(0) !== this.separator) - this.value = this.separator + this.value - if (this.convertPathSeparators) - v = FileInfo.toWindowsSeparators(v) - this.value = v + this.value -} - -EnvironmentVariable.prototype.append = function(v) -{ - if (this.value.length > 0) - this.value += this.separator - if (this.convertPathSeparators) - v = FileInfo.toWindowsSeparators(v) - this.value += v -} - -EnvironmentVariable.prototype.set = function() -{ - putEnv(this.name, this.value) -} - diff --git a/share/qbs/modules/wix/WiXModule.qbs b/share/qbs/modules/wix/WiXModule.qbs index c9d67fcf3..c5c405578 100644 --- a/share/qbs/modules/wix/WiXModule.qbs +++ b/share/qbs/modules/wix/WiXModule.qbs @@ -1,7 +1,7 @@ import qbs 1.0 import qbs.File import qbs.FileInfo -import "../utils.js" as ModUtils +import qbs.ModUtils Module { condition: qbs.hostOS.contains("windows") && qbs.targetOS.contains("windows") |