diff options
author | Denis Shienkov <denis.shienkov@gmail.com> | 2020-08-29 16:24:16 +0300 |
---|---|---|
committer | Denis Shienkov <denis.shienkov@gmail.com> | 2020-08-31 08:43:45 +0000 |
commit | 666ff77372ad1c7899bf6317e14bcd4caebdc957 (patch) | |
tree | 2329acd177ed5332faa3c213799dc2ab9c2f5114 /share | |
parent | 8ae09626519df5410e6c4964950bc848c7ff02b6 (diff) |
Extract compiler macros using common JS function
It makes sense to unify the compiler macros extraction using
a common JS function, instead of a JS code duplication.
Change-Id: I9eb9e8df012ca6bae3a38101906a4c70e2fc38c4
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
Diffstat (limited to 'share')
-rw-r--r-- | share/qbs/imports/qbs/ModUtils/utils.js | 11 | ||||
-rw-r--r-- | share/qbs/modules/cpp/gcc.js | 7 | ||||
-rw-r--r-- | share/qbs/modules/cpp/iar.js | 7 | ||||
-rw-r--r-- | share/qbs/modules/cpp/keil.js | 16 | ||||
-rw-r--r-- | share/qbs/modules/cpp/sdcc.js | 7 |
5 files changed, 16 insertions, 32 deletions
diff --git a/share/qbs/imports/qbs/ModUtils/utils.js b/share/qbs/imports/qbs/ModUtils/utils.js index 507e68088..5633b7d22 100644 --- a/share/qbs/imports/qbs/ModUtils/utils.js +++ b/share/qbs/imports/qbs/ModUtils/utils.js @@ -634,3 +634,14 @@ function toJSLiteral(v) { return "undefined"; return JSON.stringify(v); } + +function extractMacros(output) { + var m = {}; + output.trim().split(/\r?\n/g).map(function (line) { + if (!line.startsWith("#define")) + return; + var parts = line.split(" ", 3); + m[parts[1]] = parts[2]; + }); + return m; +} diff --git a/share/qbs/modules/cpp/gcc.js b/share/qbs/modules/cpp/gcc.js index 57666fe42..9b6a074d2 100644 --- a/share/qbs/modules/cpp/gcc.js +++ b/share/qbs/modules/cpp/gcc.js @@ -1462,12 +1462,7 @@ function dumpMacros(env, compilerFilePath, args, nullDevice, tag) { p.exec(compilerFilePath, (args || []).concat(["-Wp,-dM", "-E", "-x", languageName(tag || "c") , nullDevice]), true); - var map = {}; - p.readStdOut().trim().split(/\r?\n/g).map(function (line) { - var parts = line.split(" ", 3); - map[parts[1]] = parts[2]; - }); - return map; + return ModUtils.extractMacros(p.readStdOut()); } finally { p.close(); } diff --git a/share/qbs/modules/cpp/iar.js b/share/qbs/modules/cpp/iar.js index 0c912d0aa..bbb0faf3a 100644 --- a/share/qbs/modules/cpp/iar.js +++ b/share/qbs/modules/cpp/iar.js @@ -377,12 +377,7 @@ function dumpMacros(compilerFilePath, tag) { var p = new Process(); p.exec(compilerFilePath, args, true); var outFile = new TextFile(outFilePath, TextFile.ReadOnly); - var map = {}; - outFile.readAll().trim().split(/\r?\n/g).map(function (line) { - var parts = line.split(" ", 3); - map[parts[1]] = parts[2]; - }); - return map; + return ModUtils.extractMacros(outFile.readAll()); } function dumpDefaultPaths(compilerFilePath, tag) { diff --git a/share/qbs/modules/cpp/keil.js b/share/qbs/modules/cpp/keil.js index fcea3c4b3..a1e49dd6d 100644 --- a/share/qbs/modules/cpp/keil.js +++ b/share/qbs/modules/cpp/keil.js @@ -476,14 +476,7 @@ function dumpArmCCCompilerMacros(compilerFilePath, tag, nullDevice) { var p = new Process(); p.exec(compilerFilePath, args, false); - var map = {}; - p.readStdOut().trim().split(/\r?\n/g).map(function (line) { - if (!line.startsWith("#define")) - return; - var parts = line.split(" ", 3); - map[parts[1]] = parts[2]; - }); - return map; + return ModUtils.extractMacros(p.readStdOut()); } function dumpArmClangCompilerMacros(compilerFilePath, tag, nullDevice) { @@ -491,12 +484,7 @@ function dumpArmClangCompilerMacros(compilerFilePath, tag, nullDevice) { "-x", ((tag === "cpp") ? "c++" : "c"), nullDevice ]; var p = new Process(); p.exec(compilerFilePath, args, false); - var map = {}; - p.readStdOut().trim().split(/\r?\n/g).map(function (line) { - var parts = line.split(" ", 3); - map[parts[1]] = parts[2]; - }); - return map; + return ModUtils.extractMacros(p.readStdOut()); } function dumpMacros(compilerFilePath, tag, nullDevice) { diff --git a/share/qbs/modules/cpp/sdcc.js b/share/qbs/modules/cpp/sdcc.js index c34db1b22..456bf052d 100644 --- a/share/qbs/modules/cpp/sdcc.js +++ b/share/qbs/modules/cpp/sdcc.js @@ -121,12 +121,7 @@ function dumpMacros(compilerFilePath, architecture) { var p = new Process(); p.exec(compilerFilePath, args, true); - var map = {}; - p.readStdOut().trim().split(/\r?\n/g).map(function (line) { - var parts = line.split(" ", 3); - map[parts[1]] = parts[2]; - }); - return map; + return ModUtils.extractMacros(p.readStdOut()); } function dumpDefaultPaths(compilerFilePath, architecture) { |