diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-01-19 11:42:55 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-01-20 17:36:16 +0100 |
| commit | 35954c4b7465281524c6dbe38bd67fc3564c0f54 (patch) | |
| tree | 38af49c35bede9c2a02eaceba260830822ea715c /sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp | |
| parent | 9d0595f5d5eb7a566bee3f1bd9df41371929dce4 (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.cpp | 15 |
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; |
