aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-01-19 11:42:55 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2021-01-20 17:36:16 +0100
commit35954c4b7465281524c6dbe38bd67fc3564c0f54 (patch)
tree38af49c35bede9c2a02eaceba260830822ea715c /sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp
parent9d0595f5d5eb7a566bee3f1bd9df41371929dce4 (diff)
shiboken6: Enable setting clang options
Add command line options --clang-option, --clang-options to be able to pass options. Allow for a complete replacement of the built-in compiler support options by specifying '-' as the first option. Task-number: PYSIDE-1477 Change-Id: Ibcb107e5d0c4dedb56ab07e83af4203f0f682850 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp')
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp b/sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp
index 48c4f498b..8cf35641b 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp
+++ b/sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp
@@ -229,6 +229,7 @@ static QByteArray msgCreateTranslationUnit(const QByteArrayList &clangArgs, unsi
static CXTranslationUnit createTranslationUnit(CXIndex index,
const QByteArrayList &args,
+ bool addCompilerSupportArguments,
unsigned flags = 0)
{
// courtesy qdoc
@@ -245,7 +246,12 @@ static CXTranslationUnit createTranslationUnit(CXIndex index,
"-Wno-constant-logical-operand"
};
- const QByteArrayList clangArgs = emulatedCompilerOptions() + defaultArgs + args;
+ QByteArrayList clangArgs;
+ if (addCompilerSupportArguments) {
+ clangArgs += emulatedCompilerOptions();
+ clangArgs += defaultArgs;
+ }
+ clangArgs += args;
QScopedArrayPointer<const char *> argv(byteArrayListToFlatArgV(clangArgs));
qDebug().noquote().nospace() << msgCreateTranslationUnit(clangArgs, flags);
@@ -265,7 +271,8 @@ static CXTranslationUnit createTranslationUnit(CXIndex index,
* CXTranslationUnit_KeepGoing (from CINDEX_VERSION_MAJOR/CINDEX_VERSION_MINOR 0.35)
*/
-bool parse(const QByteArrayList &clangArgs, unsigned clangFlags, BaseVisitor &bv)
+bool parse(const QByteArrayList &clangArgs, bool addCompilerSupportArguments,
+ unsigned clangFlags, BaseVisitor &bv)
{
CXIndex index = clang_createIndex(0 /* excludeDeclarationsFromPCH */,
1 /* displayDiagnostics */);
@@ -274,7 +281,9 @@ bool parse(const QByteArrayList &clangArgs, unsigned clangFlags, BaseVisitor &b
return false;
}
- CXTranslationUnit translationUnit = createTranslationUnit(index, clangArgs, clangFlags);
+ CXTranslationUnit translationUnit =
+ createTranslationUnit(index, clangArgs, addCompilerSupportArguments,
+ clangFlags);
if (!translationUnit)
return false;