aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/clangparser/clangparser.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move the shiboken-generator source aroundFriedemann Kleint2025-11-241-352/+0
| | | | | | | | | THIS COMMIT WAS GENERATED BY A SCRIPT Task-number: PYSIDE-962 Task-number: PYSIDE-1587 Change-Id: I58b05c3d05606efb6303193f2d7f907a0ab5741b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken6: Add a triplet classFriedemann Kleint2025-11-211-1/+1
| | | | | | | | | | | Extract the architecture/platform information from compilersupport.cpp into a separate Triplet class which can be tested independently and is not tied to the shiboken logic (initialization to host defaults, etc). As a result, compilersupport.cpp becomes much cleaner. Task-number: PYSIDE-3105 Change-Id: I3ea709a02184c73814dc34686be75017fa1391fa Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6/compilersupport.cpp: Remove values that are only used for loggingFriedemann Kleint2025-11-191-4/+4
| | | | | | | | | Remove the getters/setters and make them function-local as they unnecessarily clutter the code. Task-number: PYSIDE-3105 Change-Id: Ia56f65ae169e1e9e7b96ca2d98b6694ae9f3f208 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Silence clang warning occurring in Qt codeFriedemann Kleint2025-10-161-0/+5
| | | | | | | | | | | | | | | | As of Clang 21, Qt code produces many warnings: "qchar.h:503:75: warning: implicit conversion from 'const char16_t' to 'char32_t' may change the meaning of the represented code unit" Exclude them. Upstream bug report: https://github.com/llvm/llvm-project/issues/163719 More discussion in: https://github.com/llvm/llvm-project/issues/138526 Task-number: QTBUG-141204 Pick-to: 6.10 6.8 Change-Id: I17df5aee49d71701ac55c34274cf7a62aab87d94 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Pass target to clang parser when cross compilingFriedemann Kleint2025-06-271-1/+6
| | | | | | | | | | | When cross compiling (detected by the platform/architecture values passed via command line not matching the host) and no custom clang command line option specifying a target is present, determine a target triplet and pass that to clang. Task-number: PYSIDE-3105 Change-Id: Ib34ecfc1880525d2e035a04079242b5ade205a7a Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Improve message output of compiler supportFriedemann Kleint2025-05-221-0/+9
| | | | | | | | | | | | | | Redirect all messages about homebrew/compiler paths to the new mjb_shiboken.log file to unclutter the build. Change the clang version output message to print the effective target triple obtained from parsing and output to mjb_shiboken.log as well as stderr. Pick-to: 6.9 Task-number: PYSIDE-3105 Change-Id: Ieafcb8d65dc513516a0b11b3da5b650826a41703 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Determine the target platformFriedemann Kleint2025-05-221-0/+11
| | | | | | | | | | | | Store the target triple from the clang options of the command line to be able to set up compiler options for clang parsing accordingly. While parsing, update by the value obtained from clang and the pointer size. Pick-to: 6.9 Task-number: PYSIDE-3105 Change-Id: I33c60e14418b10c3f3cfa1603b29ed2a06b1589a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Port to Qt include styleFriedemann Kleint2025-03-271-6/+6
| | | | | | | | | Replace the Qt forwarding headers by the .h files. This brings down the dependency list by approx 6%. Pick-to: 6.9 Change-Id: Iaa57400fd20600b940119a6016041b885a68d207 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Add a log file for general messagesFriedemann Kleint2025-02-281-1/+2
| | | | | | | | | | | | Add a new log file mjb_shiboken.log for informational messages to reduce clutter and make warnings stand out. [ChangeLog][shiboken6] An additional log file, mjb_shiboken.log has been introduced which contains informational messages about the types encountered. Change-Id: I042fdfee7bae174d5b214d171a32e3e3cca7a3d7 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Fix some clang-tidy warningsFriedemann Kleint2025-02-031-7/+5
| | | | | | | | | | | | - Fix invocation of static functions - Use std::any, range-based for where applicable - Use std::make_shared instead of new - Replace QByteArrayLiteral() by literal - Use const-ref to avoid copies Pick-to: 6.8 Change-Id: Iec864bd6eee8fb06f5afd122084a9e0f551ff8f1 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Fix static analysis warningsFriedemann Kleint2024-06-241-5/+5
| | | | | | | | | | | | | | | | | | - Initialize variables - Use auto * - Use const references to prevent copies - Remove const from function returns - Remove repeated return types - Fix else after return/throw - Make functions const/static where appropriate - Add missing override - Fix some invocations of static methods - Fix some int types (qsizetype) to avoid lossy conversions - Minor cleanups - Remove some macros Change-Id: I414b8451703b136f135383289de49e743e84fb3a Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Disable Clang MSVC option for C++ 20Friedemann Kleint2024-05-271-3/+4
| | | | | Change-Id: If7dafe4e23727f822e26307bedbb46bfaf9c0655 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* shiboken6: Remove some further uses of QStringLiteralFriedemann Kleint2023-11-291-2/+4
| | | | | | Task-number: PYSIDE-2537 Change-Id: Ie71b17eec385b31842d6693b3492db565d479fd0 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* shiboken6: Port some loop variables to qsizetypeFriedemann Kleint2022-10-131-2/+2
| | | | | | | | Where possible, used range-based for. Otherwise, use qsizetype for loop variables. Change-Id: I4773bee8468ce73722656ec73845369b7d40d4cd Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Port from qAsConst() to std::as_const()Friedemann Kleint2022-10-131-1/+1
| | | | | | | | qAsConst() will be deprecated in Qt 6.5. Task-number: QTBUG-99313 Change-Id: Ibc7c2e26b0e52cec905a406ef081e0b99bcce50f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-271-27/+2
| | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: I065150015bdb84a3096b5b39c061cf0a20ab637d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Move Vulkan detection out of the emulated compiler optionsFriedemann Kleint2022-02-111-0/+1
| | | | | | Task-number: PYSIDE-1812 Change-Id: I304d0c437cda114a865828578dca320c0d2fe45f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken6: Consider .h files as C++Friedemann Kleint2022-02-021-1/+3
| | | | | | | | | | | | Previously, shiboken6 and dependent tools would consider .h files as C (working around by creating a temporary header). This can be worked around by passing -x c++ to clang. Pick-to: 6.2 Task-number: PYSIDE-1802 Change-Id: I5c0d9ef2d6a11a8409be979ccdb52e5eca08656a Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken6/Clang parser: Refactor include checkingFriedemann Kleint2021-10-071-3/+31
| | | | | | | | | | | | | | | | | In the base class BaseVisitor of the clang parser, check whether the file has changed by comparing the CXFile. If it has changed, convert the file name to a QString and call visitLocation(). The code is then faster since the file name checks are only performed when the CXFile changes. The check code operating on QString becomes simpler and can be extended more easily. Task-number: PYSIDE-802 Task-number: PYSIDE-1660 Pick-to: 6.2 Change-Id: I1dd22ef91a4a7b96d05507b43511313507281fd6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken6: Enable setting clang optionsFriedemann Kleint2021-01-201-3/+12
| | | | | | | | | | | 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>
* Replace QVector by QListFriedemann Kleint2020-11-251-1/+1
| | | | | | | | | | | | | | | | Change AbstractMetaClass::templateArguments() to return TypeEntries (const TypeEntry *) instead non-const. Remove redundant typedef OverloadData::MetaFunctionList. Use existing typedefs in some places. Add new typedefs for MetaObjectBuilder::EnumValues and AbstractMetaFunctionCList. Change-Id: Ia241b5fbe54d60ea57175fb1f6c844604e066a3d Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken2: Handle operators written as hidden friendsFriedemann Kleint2020-10-281-2/+1
| | | | | | | | | | | | | | | qtbase/f7f1a71ea41579c1ff86c08c16b82e4c84bc891f changed some operators to be hidden friends, which causes them to become invisible. Detecting them requires parsing friend declarations and turning on parsing of function bodies for clang_isCursorDefinition() being able to tell a definition. Fixes a number of tests failing (qlinef_test, qsize_test, repr_test, unaryoperator_test). Change-Id: I4d3107181b942efebd785cfae7c3fd1b6f0963ac Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Rename shiboken2 to shiboken6Friedemann Kleint2020-10-281-0/+306
Adapt CMake files, build scripts, tests and examples. Task-number: PYSIDE-904 Change-Id: I4cb5ee4c8df539546014b08202a7b1e98ed3ff07 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>