aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/clangparser
Commit message (Collapse)AuthorAgeFilesLines
* shiboken: Handle typedef'ed enumsFriedemann Kleint2020-02-181-8/+28
| | | | | | | | | | | Treat "typedef enum {} Name" as "enum Name". Clang actually provides type information for these cases, use it (taking care not to break real anonynous enumerations) and skip the repetitive definition of the elaborated type. Fixes: PYSIDE-1228 Change-Id: Icaf0450f3fea3ba9f06737e351b56e6e5df0749a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Refactor the logic deciding whether headers should be parsedFriedemann Kleint2019-11-151-31/+48
| | | | | | | | | | | - Use cstring and prefix by std - Split the functions into base name and comparison functions - Use a non-type template to pass the size for startsWith() - Split out visitHeader() for clarity Task-number: PYSIDE-454 Change-Id: I48e2a9ae5fead892c20d9729cb90d61ff5d7fb0a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix clang parsing with update MSCV versionsFriedemann Kleint2019-11-131-0/+2
| | | | | | | | | Turn off clang check: STL1000: Unexpected compiler version, expected Clang 7 or newer Change-Id: I30e962174dfe468d570fae56c0e1b883c622a6a0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Fix various clang warningsFriedemann Kleint2019-06-251-0/+2
| | | | | | | | | | | | | | | | | - Avoid copying complex types by using const ref - Use isEmpty() to check for container emptyness - Use range-based for - Use Q_DISABLE_COPY in 'public:' area - Fix spelling error - Use '= default' for trivial constructors/destructors - Remove non-null checks before deletion - Fix misleading indentation - Fix else after return - Simplify boolean expressions - Fix unused parameters, streamline code Change-Id: I8c6cadd8653e220ba8e5bdb4dd55524d13a81768 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Replace 'typedef' by 'using'Friedemann Kleint2019-06-253-12/+10
| | | | | | | | Apply Fixits by Qt Creator with some amendments. Remove iterator types by using auto instead. Change-Id: I8a75323da6ae5cdcc6b67af8be9376408953986b Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Introduce autoFriedemann Kleint2019-06-251-1/+1
| | | | | | | Apply Fixits by Qt Creator with some amendments. Change-Id: Ib2be1012ef7e8a2ad0e6cd130371bf1e941c4264 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Introduce member initializationFriedemann Kleint2019-06-251-3/+3
| | | | | | | | | Use member initialization, use default bodies for constructors. Initialize missing members as reported by clang. Change-Id: Ibc51e46a37b310912ec8f274543092dfdda78e1b Reviewed-by: Christian Tismer <tismer@stackless.com>
* Use default compiler on macOSCristián Maureira-Fredes2019-06-191-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While building on macOS the detection of the compiler properly works, but at the time of getting the header libraries we rely on the command: <compiler> -E -x c++ - -v The problem is that since CMake resolves the full path of the compiler we do not properly get the includes that we should, calling the compiler directly via an absolute path (and not via the /usr/bin/clang shim) does not include the default SDK sysroot path. Here is an extract of both executions: * /Library/Developer/CommandLineTools/usr/bin/c++ -E -x c++ - -v #include <...> search starts here: /Library/Developer/CommandLineTools/usr/include/c++/v1 /usr/local/include /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include /Library/Developer/CommandLineTools/usr/include /System/Library/Frameworks (framework directory) /Library/Frameworks (framework directory) End of search list. * c++ -E -x c++ - -v #include <...> search starts here: /usr/local/include /Library/Developer/CommandLineTools/usr/include/c++/v1 /Library/Developer/CommandLineTools/usr/lib/clang/10.0.1/include /Library/Developer/CommandLineTools/usr/include /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks (framework directory) End of search list. Change-Id: Iff300b3b543f5fb3a43f9ce1ea8986f9bc172323 Fixes: PYSIDE-1032 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix build on centOS/conda forgeFriedemann Kleint2019-05-291-5/+19
| | | | | | | | | | | - Check for the OS name case-insensitively - Use the compiler from cmake via a define - Add sysroot header directory to internal include paths - Extend centOS version to 6.10 Change-Id: Ia3977f3331d51f9bc530accb8defa5fcb648bdfe Fixes: PYSIDE-1012 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Make it possible to extend namespacesFriedemann Kleint2019-05-221-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt has some modules, where functions and classes are added to namespaces of other modules. For example, QtGui adds the free functions mightBeRichText() and convertFromPlainText() to the "Qt" namespace and Qt3DQuick adds a namespace "Quick" to the namespace "Qt3DCore" started in Qt3DCore. Shiboken was unable to handle this since the name of the index constant was derived from the namespace name and would thus clash. Also, all code model items from the base module would be re-generated into the extended namespace. To fix this: - No longer join namespace code model items in clang builder. - Search for pre-existing namespaces in traverseNamespace() before creating a new one, continuing populating it. - Add a "files" attribute taking a regular expression to match header names to the namespace type entry, making it possible to restrict code model items by files when extending namespaces (as otherwise, all base items are again added). - Add "extends" attribute specifying the package name of the namespace to extend, which will be used as base type in CPython. - Disambiguate the SBK indexes of namespaces and the init_ functions by adding the module name. Change-Id: Ib552e878911942fa4d52d2bb0c6695e5b2c4c341 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Fix finding of the Clang lib dirFriedemann Kleint2018-12-051-6/+6
| | | | | | | | | | | | Query llvm-config for the lib dir instead of constructing the path from the prefix in case the Clang location is obtained via llvm-config. Assume a standard build in case the Clang location is obtained via environment variables. Change-Id: I7628d90706100a61f8a605e931bd023b27f1f442 Fixes: PYSIDE-867 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* shiboken: Fix build with Qt 5.13Friedemann Kleint2018-12-041-0/+1
| | | | | | | | | | | Add missing include, fixing: sources/shiboken2/ApiExtractor/clangparser/clangutils.h:91:17: error: field 'childMessages' has incomplete type 'QStringList' appearing in Qt 5.13 due to some header rearrangements. Change-Id: Iab22538af8688ebb3dcbaf0e1042b1198bde5800 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Extend exception specificationFriedemann Kleint2018-09-171-8/+20
| | | | | | | | | | | | | Change boolean 'noexcept' flag into an enumeration that indicates whether a function throws, is 'noexcept' or the behavior is unknown. This makes it easier to implement an 'auto' mode for exception handling. Task-number: PYSIDE-62 Change-Id: I4e5405863e5af2a54f3528ba5eb5c51d3929703d Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Add support for type aliases (using)Friedemann Kleint2018-07-261-10/+20
| | | | | | | | | | | | | | | QAbstractRayCaster is the first class in Qt to use type aliases: using Hits = QVector<QRayCasterHit>; Treat them as typedefs if a canonical type can be obtained for them. This requires adding some simplification of the canonical types obtained for standard containers. Task-number: PYSIDE-751 Change-Id: I521a8b02d3c8cb89e4f72a817fbacc5955041570 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Add exception specification to clang parserFriedemann Kleint2018-07-241-0/+8
| | | | | | | | | For exception handling, calls into C++ might need to wrapped in try/catch. Detect noexcept functions for which this can be omitted. Task-number: PYSIDE-62 Change-Id: I37aced91ace184edf211a457a60c131d516a4037 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Merge remote-tracking branch 'origin/5.11' into devFriedemann Kleint2018-07-241-1/+0
|\ | | | | | | Change-Id: Ie90b31ed1b88f1353261fc4040db2d788df279e6
| * shiboken: Remove -fno-exceptions from Clang parse optionsFriedemann Kleint2018-07-231-1/+0
| | | | | | | | | | | | | | | | | | The option is a workaround for an old LLVM bug and is no longer needed. Worse, it causes parse errors in code that declares throw(). Task-number: PYSIDE-62 Change-Id: Ib72b14cc704c04ae3b4197fd2af718276e3fe788 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Fix some clang-tidy warnings in shibokenFriedemann Kleint2018-07-232-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 'else if' after return/break/continue - Use const ref for complex arguments passed by value where possible - Fix 'if (foo) delete foo' to 'delete foo' - Use container.isEmpty() instead of container.size() in checks - Use ' = default' for trivial constructors/destructors - Use range based for where possible - Complete constructor initializer lists - Fix invocations of static methods - Replace some reinterpret_cast by static_cast - Remove unused variables/fields - Use initializer lists for return types Change-Id: Id5b44a2f9d429f66ef069d532a1cd31df796d38e Reviewed-by: Christian Tismer <tismer@stackless.com>
* | shiboken: Cache TypeInfo in clangbuilderFriedemann Kleint2018-07-233-6/+33
| | | | | | | | | | | | | | | | | | Add a cache containing the TypeInfo for the CXType structs. Task-number: PYSIDE-672 Change-Id: Ibd0b5bb3f01fa507a65ded8f121c12a10aa7c401 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into devFriedemann Kleint2018-07-131-7/+66
|\| | | | | | | Change-Id: I85c005419736d5abf65077ff259509610853af4e
| * shiboken: Provide g++ internal headers for CentOS, tooFriedemann Kleint2018-07-101-7/+32
| | | | | | | | | | | | | | | | | | Extend the check introduced by 4725008aeea407ae55cfd66de802dd9e06412efc to CentOS. Task-number: PYSIDE-733 Change-Id: Iaaf2b8af0fa03684d4a3cbd5c5e70e141d125139 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * Fix macOS build when building inside Homebrew environmentAlexandru Croitor2018-07-091-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A brew build environment sets up a clang shim (fake clang ruby script that sets up additional compiler flags), which passes all brew formula dependency include paths as system include paths (via -isystem). This also includes the Qt dependency. Because our clang parser currently ignores system headers (see Builder::visitLocation in clangbuilder.cpp) and because Qt include statements inside header files would resolve to the system header location, this would result in no Qt classes being recognized by the API extractor, and thus fail the build. Fix this by checking for an environment variable that brew sets inside its build environment, to filter out the unnecessary -isystem flags. This way the Qt include path would be passed as a non-system include path from CMake, and thus correctly complete the build. Task-number: PYSIDE-731 Change-Id: I9b543eddc85270f1e8a90d9f30194b2a862e80d7 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Alberto Sottile <alby128@gmail.com>
* | shiboken: Move detection of template arguments to ClangBuilderFriedemann Kleint2018-07-113-0/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Obtain the template arguments from Clang and fall back to parsing the type name where this is not possible (which may be the case inside a template declaration). The string-based formatting and re-parsing of the type in AbstractMetaBuilder::translateType() can then be removed, opening the way to passing up more complex types from Clang into the MetaBuilder. Task-number: PYSIDE-672 Change-Id: I43ff285c5f3720319bf40c65b1c27302ef1b934e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* | shiboken: Improve const handlingFriedemann Kleint2018-07-111-70/+38
|/ | | | | | | | | | | | | | - Use new enum in code. - Rewrite the Clang type parsing to make use of it. - Adapt some typesystem files. This enables the distinction between "int *" and "int *const" and fixes the signatures from "int const &" to the more common "const int&". Task-number: PYSIDE-672 Change-Id: Ic1bff0015188c32f53d0e6f347b1523254cb7e4f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Fix handling of deleted functionsFriedemann Kleint2018-07-061-0/+12
| | | | | | | | | | | Check the cursor availability to detect deleted functions. This fixes the build of the Qt 5.12 API, which for the first time has a Q_DISABLE(QCBorStreamReader) in a public section, causing a copy constructor to be reported. Task-number: PYSIDE-487 Change-Id: I31ba0103cf612a4238c0e282ffcfeeab29df97d1 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Handle enum class forward declarationsFriedemann Kleint2018-07-061-1/+4
| | | | | | | | | | | | Add the enumeration to the scope stack only if it actually has values. This occurs for the first time in Qt 5.12, which introduces a forward declaration of enum class QCborSimpleType at src/corelib/kernel/qmetatype.h:65. Task-number: PYSIDE-487 Change-Id: I5798eb8e47bcd4d21dc554dc5cdd257c7163ca90 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: No longer hard-code the C++ language levelFriedemann Kleint2018-06-273-5/+65
| | | | | | | | | | | | | | | | | | | The C++ language level was previously hard-coded in the default options. This is potentially problematic for projects using shiboken and also fell apart with Qt 5.12, where the experimental level "c++1z" used for MSVC2017/Clang 4 no longer works due to not being able to handle enumerator value deprecation attributes. Introduce an enumeration to represent the level and add functions to convert back to and forth to the respective Clang option. Add an option to shiboken. Add a function returning a default value for the emulated compiler, returning C++ 14 or C++1Z for the CMSVC2017/Clang 4 case. Task-number: PYSIDE-724 Change-Id: Ie7e19bf7f099a34e6cdaad4b462157a9a3ee8797 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Search for Clang builtin-includes at runtimeFriedemann Kleint2018-06-231-9/+82
| | | | | | | | | | Replace the search executed at build time by CMake by a run time search in shiboken since the location at build time typically won't match any more for the deployment case. Task-number: PYSIDE-693 Change-Id: Ib15fbba5d8c3fecf30aaae7195b88a648a7ed0fe Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken: Add command line options for system include pathsFriedemann Kleint2018-06-221-6/+5
| | | | | | | | | Refactor class HeaderPath to contain an enumeration for the type instead of the boolean framework flag and add handling. Task-number: PYSIDE-693 Change-Id: I60a62b831ddd5ce7519a066135854ff723db2fc6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken/ClangBuilder: Fix nested qualified namesFriedemann Kleint2018-06-011-1/+22
| | | | | | | | | | | The qualified name was obtained by splitting by "::", which would result in "std::list<std::string>" -> ("std", "list<std", string>"). Fix by splitting up to first '<' or '(' only. Task-number: PYSIDE-672 Change-Id: I9d790535e877da251a5b6c352dc550e4077877bd Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Change license from all the filesCristian Maureira-Fredes2018-05-0310-10/+10
| | | | | | | | | | | | | | | | | Removing the word 'project' from all the headers, and changing the PySide reference from the examples to Qt for Python: The following line was used inside the source/ and build_scripts/ directory: for i in $(grep -r "the Qt for Python project" * |grep -v "pyside2-tools" | awk '{print $1}' | sed 's/:.*//g');do sed -i 's/the\ Qt\ for\ Python\ project/Qt\ for\ Python/g' $i;done and the following line was used inside the examples/ directory: for i in $(grep -r "of the PySide" * |grep -v "pyside2-tools" | awk '{print $1}' | sed 's/:.*//g');do sed -i 's/of\ the\ PySide/of\ the\ Qt\ for\ Python/g' $i;done Change-Id: Ic480714686ad62ac4d81c670f87f1c2033d4ffa1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Rename PySide references to Qt for PythonCristian Maureira-Fredes2018-04-2710-10/+10
| | | | | | | | | When referring to the project one should use "Qt for Python" and for the module "PySide2" Change-Id: I36497df245c9f6dd60d6e160e2fc805e48cefcae Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken: Use enum values from ClangFriedemann Kleint2018-04-191-1/+26
| | | | | | | | | | | | | | Remove a lot of ugly value parsing code in favor of clang_getEnumConstantDeclValue() and clang_getEnumConstantDeclUnsignedValue() depending on the type. Introduce a class EnumValue containing a union of qint64 and quint64 values to represent signed/unsigned values correctly and use that in the code model and meta language classes. Change-Id: If2efb7cfd560237907678b8f6fdfb0bc689c0c93 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken: Detect class enums by Clang entirelyFriedemann Kleint2018-04-191-3/+42
| | | | | | | | | | | | | | The Clang function clang_EnumDecl_isScoped() tells whether an enum is a class, so, there is no need to specify that in the typesystem. Use that information to pass it up to the metalang classes and revert the parts of 44cb6c51e6c3b43376f284941454dc8c13b81c3f that added it to the type system. Task-number: PYSIDE-487 Change-Id: Ie10885f74168821d0307e91b6f1f7f3f30dd074b Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken: Fix some clazy warningsFriedemann Kleint2018-01-172-2/+2
| | | | | | | | | | | | - Mixing const/non-const iterators - Do not use operator[] on temporaries of type QVector - Remove unused nontrivial variables - Add Q_FALLTHROUGH() - Potential detach in range-based for Change-Id: I89391fdda616f119eadd7de529eb6cee69343f85 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix system header inclusions for proper support of C primitive typesAlexandru Croitor2018-01-151-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | In order for GL types like GLint64 to be available on macOS, the macOS-specific system header "gltypes.h" has to be parsed by libclang. Before this change, shiboken skipped parsing system headers (except for gl.h) because there are issues when trying to parse C++ std headers (ostream for example). The file "gltypes.h" contains the typedef declarations for GL numeric types. A few other system headers like "cstdint" are also needed (which contain the actual typedefs from int32_t to int for example). A few different system headers are also needed on Linux (also for GL -> numeric typedefs). This system header exclusion mechanism is far from a clean solution, but it seems like current versions of libclang do not provide enough preprocessor information to be able to limit the parsing to specific chunks of code (for example everything included by gltypes.h), thus we need to limit ourselves to exclusion by file paths. Change-Id: I58c151e2cb083e16f7cafb3dc9df2d757442bb59 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken/Clang parser: Add information about override/finalFriedemann Kleint2017-12-011-0/+10
| | | | | Change-Id: I0f1bad0567ae928d4117e7785e7788d9efd551c2 Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Add the c++ header include paths of g++Friedemann Kleint2017-10-251-0/+21
| | | | | | | | | | It seems standard C++ headers are not found by clang when run g++ 6.3.X on RHEL 7.4. Task-number: PYSIDE-431 Task-number: PYSIDE-513 Change-Id: Ibd400cfa854ce3a9f763c593969cd063346f8056 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken: Add Vulkan supportFriedemann Kleint2017-10-071-4/+17
| | | | | | Task-number: PYSIDE-431 Change-Id: I35995213d04a3fb7a6c8399b1397884cf43c09ba Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Add -Wno-microsoft-enum-value for MSVCFriedemann Kleint2017-10-071-0/+1
| | | | | | | | Silence numerous warnings: warning: enumerator value is not representable in the underlying type 'int' Change-Id: I82b4547c1392e1d65515e0bd51d5d76bac185a9e Reviewed-by: Christian Tismer <tismer@stackless.com>
* CodeModel: Handle access of inherited classesFriedemann Kleint2017-09-251-2/+3
| | | | | | | | | | | | | | Store the access of the base class in the code model. Remove protected/private base classes in the abstract meta builder as otherwise invalid code will be generated for classes like QAbstract3DGraph : public QWindow, protected QOpenGLFunctions when the protected hack is not in use (on Windows). Task-number: PYSIDE-487 Change-Id: I5bc2dad16f903da86e6e41450c2f9a76726ac028 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Do not consider gl.h a system include file (all platforms)Friedemann Kleint2017-09-131-3/+19
| | | | | | | | | | Amends db904f8e9ed06eac37151c9a8b955c63c1eb8a46 to apply to all platforms since the issue is also present on Linux. Task-number: PYSIDE-516 Change-Id: I564506f6aefc26e95beae90d95643553eba5dbff Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Windows: Do not consider gl.h a system include fileFriedemann Kleint2017-09-041-1/+19
| | | | | | | | Amends 10453490629859a01048d0b21688d6617279eeaf. Task-number: PYSIDE-516 Change-Id: Ie4bc2008669e4e34bedf0575de3ff75adbc2413e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix building on openSuSE and Ubuntu 16.04 CI machinesAlexandru Croitor2017-07-241-2/+14
| | | | | | | | | | | | | | | | | | | | Previously all the GCC header paths were explicitly passed to libclang, which caused redefinition errors of builtin functions or intrisics (like __rdtsc). Instead of passing the include paths explicitly, we rely on libclang itself recognizing that there are GCC paths in the default search locations. Also we need to pass the libclang builtin headers location, because it is not able to find them by itself. Usually the search location for these headers is to get the executable path location (aka the clang++ binary) and navigate to ../lib/clang/VERSION/include relative to that binary. But because the shared library is used instead of the binary, we need to explicitly pass that header location via the -isystem flag. Task-number: PYSIDE-513 Change-Id: I7c1127d85c0cea4c063c5c2a3548a1eef5eadaf3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Clang: Fix build with MSVC2017/Clang 4.1Friedemann Kleint2017-07-141-0/+6
| | | | | | | | | | - Remove option -fPIC for Windows, fixing error: unsupported option '-fPIC' for target 'x86_64-pc-windows-msvc'" - Raise language level to prevent constexpr errors in MSVC libraries Task-number: QTBUG-57086 Change-Id: Ic5bd84a8ce37c9f93d70d983257c98431aa18efe Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Use information about Constructor/Destructor functions from ClangFriedemann Kleint2017-05-291-8/+30
| | | | | | | Expand CodeModel::FunctionType accordingly. Change-Id: I2759f45e4c60f36d4583b1c475c4c2df1e00ace6 Reviewed-by: Christian Tismer <tismer@stackless.com>
* move everying into sources/shiboken2 (5.9 edition)Oswald Buddenhagen2017-05-2210-0/+1908
in preparation for a subtree merge. this should not be necessary to do in a separate commit, but git is a tad stupid about following history correctly without it.