diff options
Diffstat (limited to 'share/qbs/imports/qbs/Probes/IarProbe.qbs')
-rw-r--r-- | share/qbs/imports/qbs/Probes/IarProbe.qbs | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/share/qbs/imports/qbs/Probes/IarProbe.qbs b/share/qbs/imports/qbs/Probes/IarProbe.qbs index 12b3c46eb..04d338268 100644 --- a/share/qbs/imports/qbs/Probes/IarProbe.qbs +++ b/share/qbs/imports/qbs/Probes/IarProbe.qbs @@ -34,6 +34,7 @@ import "../../../modules/cpp/iar.js" as IAR PathProbe { // Inputs property string compilerFilePath; + property stringList enableDefinesByLanguage; property string _nullDevice: qbs.nullDevice @@ -43,14 +44,28 @@ PathProbe { property int versionMajor; property int versionMinor; property int versionPatch; + property var compilerDefinesByLanguage; configure: { + compilerDefinesByLanguage = {}; + if (!File.exists(compilerFilePath)) { found = false; return; } - var macros = IAR.dumpMacros(compilerFilePath, qbs, _nullDevice); + var languages = enableDefinesByLanguage; + if (!languages || languages.length === 0) + languages = ["c"]; + + for (var i = 0; i < languages.length; ++i) { + var tag = languages[i]; + compilerDefinesByLanguage[tag] = IAR.dumpMacros( + compilerFilePath, tag); + } + + var macros = compilerDefinesByLanguage["c"] + || compilerDefinesByLanguage["cpp"]; architecture = IAR.guessArchitecture(macros); endianness = IAR.guessEndianness(macros); |