aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| | * | | Disable CI in rhel 6.6Simo Fält2018-06-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The rhel 6.6 is missing libclang in 5.11.0 Change-Id: Ieff935fad51595c56d413528c62a18efb099b739 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | | | Add std::nullptr_t supportCristian Maureira-Fredes2018-11-195-1/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Shiboken did not have support for `nullptr_t` so the converter was failing when encountering a `nullptr`. A test case is included. Fixes: PYSIDE-854 Change-Id: If5aad245e7074ed791bfc7a42a4c6a56de441d5b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | | | Doc: Update the apidoc cmake step to copy shiboken doc htmlsVenugopal Shivashankar2018-11-153-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This way it is easier to publish the docs online as well as package it for offline use. Besides, updated the links to the sphinx projects so that the linking between them works. Change-Id: Id7494d5bc8adf95bfaaf25dedb58f3b07ac6dca4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | | | Signature: Implement Nested Classes and Functions for ShibokenChristian Tismer2018-11-158-293/+447
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch again contains a complete overhaul of the signature module. The code was re-implemented to properly support nested classes. Also, the code was reduced by AutoDecRef and by adopting a concise C++ style. Note.. We will add a shiboken signature test and complete mapping.py after the split into three projects is done. The split changes a lot and is needed right now! Signatures were quite complete for PySide, but the support for Shiboken was under-developed. Since we are planning to generally enhance error messages by using the Signature module, we should be able to rely on them to always produce a signature. Therefore, a general overhaul was needed to resolve all cornes cases for Python 2 and 3. Nested classes are supported, as well as plain module functions. The usage of the typing module might improve over time, but the Signature implementation is now considered complete. The loader will respect now the path settings which might not be the package dir but the build dir. This is more consistens with COIN testing. Task-number: PYSIDE-795 Change-Id: I246449d4df895dadf2bcb4d997eaa13d78463d9b Reviewed-by: Simo Fält <simo.falt@qt.io>
* | | | | shiboken: Generate static_cast for constructor parameters with spaceFriedemann Kleint2018-11-141-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unsigned long(0) does not work, use static_cast<unsigned long>(0). Fixes: PYSIDE-846 Change-Id: If41baebdf0b1228b658408e4c300872d17143e6f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | | | License documentation: Fix file name of bufferproc headerFriedemann Kleint2018-11-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A new version is now in use, causing: qtattributionsscannertorst.py:122: ".../sources/shiboken2/libshiboken/bufferprocs27.h" is not a file Change-Id: I14d9b9d8902ff7b3595b0e5b88d957a3847ecdae Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | | | Remove createIndex method that uses PyObject*Cristian Maureira-Fredes2018-11-134-55/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have a proper `void*` treatment, so the extra function does not seems to be necessary. The injected code used for the interalPointer method was also removed since is better to leave on shiboken hands the conversion between void* and python types. A couple of test were adapted since wrongly used ModelIndex with Python objects. Change-Id: I082637c7d1dd1bb0f50a3c453513e5d722f4b783 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | | | Add tutorials to the documentationCristian Maureira-Fredes2018-11-056-0/+497
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Included basic tutorials related to Widgets, QML and UI files. Task-number: PYSIDE-841 Change-Id: Ia338f8cf1a64e4f09617fb3ac5a898d28e527dbd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | | | Merge remote-tracking branch 'origin/5.11' into 5.12Friedemann Kleint2018-11-012-7/+5
|\| | | | | | | | | | | | | | | | | | | Change-Id: I5a8f41a2236601b7c5466586dd1cfc92c1afc391
| * | | | QIODevice bindings: Fix invalid reads in read() functionsFriedemann Kleint2018-10-312-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running test in debug mode on Windows, failures occurred: File "sources/pyside2/tests/QtCore/qfileread_test.py", line 41, in readData return super(FileChild2, self).readData(maxlen) UnicodeDecodeError 'utf-8' codec can't decode byte 0xcd in position 21: invalid continuation byte File "C:/dev/pyside/pyside-setup511d/sources/pyside2/tests/QtCore/qfile_test.py", line 57, in testBasic self.assertFalse(obj.getChar()[0]) UnicodeDecodeError 'utf-8' codec can't decode byte 0xcc in position 0: unexpected end of data This is caused by missing initializers and terminating \0 characters in the QByteArrays introduced by ca806b438e8a27dc4562ac806d189765e93e09e5, unearthed by MSVC helpfully filling unitinialized data with random values. Fix by using a QByteArray of size n + 1 filled with 0. Initialize the character variable in the fix_char* template. Task-number: PYSIDE-40 Change-Id: Ia604841a89f1b1b9564c16d2f23cd9f7c20f5628 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | | | Revert "Terrible workaround fix for hanging tests on macOS 10.12"Alexandru Croitor2018-10-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Once the qtbase commit (22c1a46a03bc3347afc0e7462e19558283d0e1b7) gets integrated into the qt/qt5 repo for dev branch, we can revert the terrible workaround fix, because it won't be needed anymore. This reverts commit 5cd52cda24bf70bf99f4deec037039df0ab928f5. Task-number: PYSIDE-724 Change-Id: I627c7ec945b864a1c16ba6cd7288807591f70140 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | | | setup.py: Deprecate option --jobsFriedemann Kleint2018-10-301-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check for the standard (build command) options --parallel/-j and deprecate --jobs. Fixes: PYSIDE-809 Change-Id: Ice5eaa787f84f093db6e7b3d2168332d5dfbab1f Reviewed-by: Christian Tismer <tismer@stackless.com>
* | | | | shiboken: Remove defunct code trying to merge namespacesFriedemann Kleint2018-10-303-15/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the function _NamespaceModelItem::uniqueNamespaces() which created a QSet of_NamespaceModelItem *. Hashing by pointer values does not have any effect. Change-Id: I723024f0004aacecf4f06a1baa10678848d4a56b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | | | Build scripts: Fix warnings about invalid escape sequencesFriedemann Kleint2018-10-302-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix: setup.py:243: DeprecationWarning: invalid escape sequence \O """ build_scripts\main.py:143: DeprecationWarning: invalid escape sequence \d pattern = "Programming Language :: Python :: (\d+)\.(\d+)" Change-Id: Id9574077d6ad82a5a6852d8c6e02e931f8a079de Reviewed-by: Christian Tismer <tismer@stackless.com>
* | | | | PySide2: Pass on the result from native event filtersFriedemann Kleint2018-10-301-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add missing conversion of the long *result variable. Amends f4a6d74852b0ba6711195a9c3fc9356e677a3409. Task-number: PYSIDE-790 Change-Id: I2db9ffd80b569f68b714b21e2adaa3e34949af83 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* | | | | Merge remote-tracking branch 'origin/5.12' into devFriedemann Kleint2018-10-3045-819/+704
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | Change-Id: I4fb74ab92e03dd13e054227deac2bd095c47bce0
| * \ \ \ \ Merge "Merge remote-tracking branch 'origin/5.11' into 5.12" into ↵Friedemann Kleint2018-10-2915-31/+44
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | refs/staging/5.12
| | * | | | | Merge remote-tracking branch 'origin/5.11' into 5.12Friedemann Kleint2018-10-2915-31/+44
| | |\| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I3bb491686968e81382c135ab737da259d9796f52
| | | * | | | Fix Memory Leak Caused By Wrong Limited API DefaultChristian Tismer2018-10-2913-26/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a type has nullptr as tp_dealloc, there apply different defaults. Static types had object_dealloc as default, while new heaptypes created with type_new have subtype_dealloc as default. A problem was now that PyType_FromSpec also has subtype_dealloc as default. But that is wrong, because a type that was written with the static type approach is already written with object_dealloc in mind and takes somehow care about further issues with that type. When we now convert this type and suddenly use subtype_dealloc instead of object_dealloc, things get pretty wrong. Finding that out was pretty hard and took quite long to understand. The fix was then very easy and is the best proof: Replacing our former (wrong) solution of supplying an SbkDummyDealloc with a function object_dealloc works perfectly, and the leakage completely vanished. The documentation now is also corrected. Task-number: PYSIDE-832 Change-Id: Ifc20c28172eb5663cd5e60dac52e0a43acfb626c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| | | * | | | Add qCompress/qUncompress bindingsCristian Maureira-Fredes2018-10-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: PYSIDE-838 Change-Id: I88a8c90b53757f05668782bc407e8529f6fbb3c6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| | | * | | | Fix missing bindings generatorCristian Maureira-Fredes2018-10-181-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QtCharts and QtDataVisualization were not properly imported to compare them with PyQt. Task-number: PYSIDE-833 Change-Id: Ia9b8ee29d8f0b4f2d009327099b9f50ce0791b78 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | | | | | setup.py: Warn about options occurring multiple times on the command lineFriedemann Kleint2018-10-291-22/+33
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove all occurrences of the option in question and output a warning should it appear multiple times. Task-number: PYSIDE-809 Change-Id: Ic78b753e28032081cd99a17da93c0deab9e85210 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
| * | | | | PySide2: Re-enable native event filtersFriedemann Kleint2018-10-266-10/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add QAbstractNativeEventFilter. Re-add the native event filter functions on QWindow and QWidget, modified to return a tuple bool/long, using a modification from PySide. Task-number: PYSIDE-790 Change-Id: I86fef1a0c168e69fb3391cd882ea05190985384d Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * | | | | Qt3DInput: add more classes and ownership transferCristian Maureira-Fredes2018-10-251-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: PYSIDE-487 Change-Id: Ibd984747f091ccb355881f869ed327a9dbbf5dbb Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | | | | Qt3DCore: add more classes and ownership rulesCristian Maureira-Fredes2018-10-241-3/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: PYSIDE-487 Change-Id: I62c7b117d662f3111b47aa9b840b39f67ef71cac Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | | | | Improve build rules for module generationAlexandru Croitor2018-10-238-7/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously whenever a typesystem XML file changed, this resulted in a full rebuild of all cpp files generated for that particular module. This change shifts the rules of building in such a way, that files are rebuilt only if their content has changed. XML modifications should generally not cause full rebuilds anymore, unless the change is in a global header. This is achieved in the following way, assuming a binding library "foo" added by add_library(foo ...): 1) CMake calls shiboken via add_custom_command. 2) The OUTPUT file for the command is the generated mjb_rejected_classes.log file, which serves as a timestamp for when shiboken was last run. 3) All the generated cpp files are marked as "Generated" via the add_custom_command BYPRODUCTS option. This allows the files to have an older timestamp than that of an XML file, thus not forcing constant shiboken re-execution. 4) A new custom target foo_generator is added via add_custom_target. 5) This target has a dependency on the mjb_rejected_classes.log file, and the target itself is added as a dependency to the "foo" target. 6) Whenever "foo" is built, it will first try to build "foo_generator" which will force the shiboken custom command to be run, which will generate the cpp files and mjb_rejected_classes.txt file. The BYPRODUCT cpp files can then be used as sources in the "foo" target. 7) If a user modifies the XML file listed in the add_custom_command DEPENDS option, this will re-trigger shiboken execution, which will create a new mjb_rejected_classes.log file, which means that the "foo" target might be rebuilt if, and only if, any of the cpp file timestamps are new. Otherwise "foo" doesn't need to be rebuilt. Change-Id: I9a3844a2fa775106288acc01cb4570a903e16991 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | | | | Sort writing of type indices when generating module header fileAlexandru Croitor2018-10-231-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to some unknown determinism, sometimes the type indices written to the generated module header file have a slightly different order, which means that many cpp files need to be rebuilt for no reason (semantically the content of the header file does not change). Make sure to sort the class list by type indices, to try and make the generated header file as deterministic as possible. This is a pre-requisite for improved incremental builds. Change-Id: Ie6a334453cdbfbb601fbac4b6be9291a746650f4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | | | | Stop updating timestamps of generated files that haven't changedAlexandru Croitor2018-10-232-27/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a change in preparation for improved incremental builds, where modifying one typesystem XML file will not force rebuilding all generated cpp files. The previous logic was incorrect, file timestamps should not be updated if the generated files are unchanged, instead the build rules need to be adapted to prevent unnecessary rebuilds. Change-Id: Ia47f8ff1970e974d0e617b6891ab58666da3b1ff Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
| * | | | | libpyside: Port DynamicQMetaObject to QMetaObjectBuilderFriedemann Kleint2018-10-2211-694/+344
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt 5 introduces a new class QMetaObjectBuilder for generating dynamic meta objects for use cases like QML. It provides an API to add methods, properties and info and a factory method toMetaObject() to obtain a QMetaObject snapshot reflecting the changes. Replace the DynamicQMetaObject aggregated by TypeUserData by a class MetaObjectBuilder wrapping a QMetaObjectBuilder with dirty-handling. The code to create the binary data of the QMetaObject can then be removed. For plain Qt objects, the wrapped base meta object will be returned (which fixes the bug). Task-number: PYSIDE-784 Change-Id: Id8a54570aff36c75fe0f3bf2d297a12d02cd773a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | | | | Update README files for the projectCristian Maureira-Fredes2018-10-223-22/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After the split related to building the project three README files are required to describe each component: PySide2, Shiboken2-Generator and Shiboken2 (module). For PySide2 and Shiboken2 (module) the README will also be the project description on PyPi. Change-Id: I3a2c3fe7fcfdbef696ffe77d5f1e6ba34f9f9b23 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* | | | | | Update setup.py documentationCristian Maureira-Fredes2018-10-251-27/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Python version and alphabetically ordering the options. Change-Id: I3c663d6ca1849b84f55886ff0e0c1fac0ffce941 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | | | | | Merge remote-tracking branch 'origin/5.12' into devFriedemann Kleint2018-10-2231-107/+263
|\| | | | | | | | | | | | | | | | | | | | | | | Change-Id: I89093dafa5f87e749fc1458397e6e29ef56f659b
| * | | | | Add snippet extraction to shibokenFriedemann Kleint2018-10-206-9/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a snippet attribute to inject-code and conversion-rule instructing shiboken to extract code from a source file using annotations. Task-number: PYSIDE-834 Change-Id: I576c4a48fe68e9d26fe46e324af5baa88a5c1d34 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
| * | | | | shiboken/ApiExtractor tests: Use qrc files for test resourcesFriedemann Kleint2018-10-205-13/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes the need to copy around test files and the test will also run when launched from a different directory. Extend and fix the declare_test() CMake macro to also add resource files, add .qrc files and modify the tests accordingly. Task-number: PYSIDE-834 Change-Id: Id469e0b11837f7c6a7d71a20494ac019a32d8ed0 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * | | | | shiboken: Use class FileOut for the module source file as wellFriedemann Kleint2018-10-195-27/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure the diff/dry-run options work for this file as well. Move the touchFile() utility around and adapt the verifyDirectoryFor() helper to take a string. Task-number: PYSIDE-834 Change-Id: Ic34b5f8eff304d9de85f60082f582f0537805cd4 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
| * | | | | CI: Enable 32 bit windows buildSimo Fält2018-10-192-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was enabled alreadyd with 5.11, but got lost at some point. Change-Id: I19b2392889ced75aa6c08c2fd771eed84ffe18a5 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | | | | shiboken: Set multiline for the regular expressions for warning suppressionFriedemann Kleint2018-10-191-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some warnings are multiline (function modification). Change-Id: I34db1b15cd0122576e65122c0665d8b4987781fc Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | | | | Fix build on 32bit WindowsFriedemann Kleint2018-10-191-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the exclusion of QCborStreamReader::readStringChunk(char*,qsizetype) for 32/64bit depending on qsizetype. Change-Id: I7cd16fc83508c4ad04c2bb5e8b433c4933fef13c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | | | | Update documentationCristian Maureira-Fredes2018-10-194-20/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A couple of comments were outdated, and there was mixed information related to PySide, PySide2 and Qt for Python. Task-number: PYSIDE-691 Change-Id: I34c17822fc09e9027ee1c0a082ed9a27a5154996 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | | | | Update the pyside2-tools submodule sha1Alexandru Croitor2018-10-191-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This includes the latest pyside_tool changes Change-Id: I6daed548a3bf0c73a880e9b7115f84ae967668d0 Fixes: PYSIDE-837 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | | | | Don't redirect stderr to stdout by default when calling setup.pyAlexandru Croitor2018-10-182-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I49b7491be9649979f9f9487e983bdc4be355de07 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * | | | | Merge remote-tracking branch 'origin/5.11' into 5.12Friedemann Kleint2018-10-181-1/+1
| |\| | | | | | | | | | | | | | | | | | | | | | Change-Id: I2468031ecb8cc8a97bcb8ddf85e48101ec22eda9
| | * | | | Fix crash when using a MSVC debug buildFriedemann Kleint2018-10-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pointers of probe_tp_name and check->tp_name are different when using the MSVC debug runtime. Use strcmp() instead. Fixes: PYSIDE-835 Change-Id: I8b6735a9a407bf3325986edd61a7911964802a24 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | | | | Build scripts: Fix warning about invalid escape sequencesFriedemann Kleint2018-10-171-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...\build_scripts\utils.py:548: DeprecationWarning: invalid escape sequence \d '[\d.]+\)') ...\build_scripts\utils.py:695: DeprecationWarning: invalid escape sequence \d version_re = re.compile('(\d+)\.(\d+)\.(\d+)') Change-Id: Ic03cf2997885a5806141bf4b05527f5f005290ae Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | | | | libpyside: Introduce helper functions for accessing TypeUserData and meta ↵Friedemann Kleint2018-10-165-24/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | objects Add helpers with overloads to reduce reinterpret_cast<> and increase type safety. Task-number: PYSIDE-784 Change-Id: I334fd7d149a6730094b062dd0371b9a29379d725 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | | | | Merge remote-tracking branch 'origin/5.12' into devFriedemann Kleint2018-10-1672-1717/+3352
|\| | | | | | | | | | | | | | | | | | | | | | | Change-Id: I5ddbf8fb1d92be6dc0459164150f83dea375c69f
| * | | | | Fix crash when garbage collecting in a non-GUI threadFriedemann Kleint2018-10-1516-13/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a GUI class happens to be detected unreferenced when garbage collecting in a non-GUI thread and is subsequently deleted, crashes can occur for QWidgets and similar classes. The hitherto unimplemented delete-in-main-thread" attribute should be used. Add the missing implementation. Add the field to shiboken's type entry and SbkObjectTypePrivate class and pass it via newly introduced flags to introduceWrapperType(). Defer the deletion when invoked from the background thread and store the list of destructors in a list in binding manager run by Py_AddPendingCall(). Task-number: PYSIDE-743 Task-number: PYSIDE-810 Change-Id: Id4668a6a1e32392be9dcf1229e1e10c492b2a5f5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * | | | | Add tests to install built wheels and build some examplesAlexandru Croitor2018-10-127-21/+349
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Augment coin_test_instructions.py to run a new script testing/wheel_tester.py, which tries to pip install the built wheels, and then tries to build the samplebinding and scriptableapplication examples. This allows us to confirm that the generated wheels are actually installable, and also hopefully prevent us from breaking the embeddable examples, by making sure that they at least build (and execute in the case of samplebinding). The change also modifies the examples to be able to take the python executable as build argument, so that wheel_tester can specify explicitly which python interpeter to use. Change-Id: I0f141e40ab86e3311dd25915c4e53b0af36aaae9 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * | | | | Allow building shiboken2 and PySide2 as separate wheelsAlexandru Croitor2018-10-1237-1466/+2108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Actually this creates 3 wheel packages: - shiboken2 (the python module and libshiboken shared library) - shiboken2-generator (contains the generator executable, libclang and dependent Qt libraries) - PySide2 (the PySide2 modules and Qt shared libraries, and tools like rcc, uic) Calling the setup.py script will not do the actual build now (in the sense of calling CMake, make, etc.). Instead it will spawn new processes (via subprocess.call) calling the same setup.py script, but with different arguments. These "sub-invocations" will do the actual building. Thus, the "top-level invocation" will decide which packages to build and delegate that to the "sub-invocations" of setup.py. A new optional command line argument is introduced called "--build-type" which defaults to "all", and can also be set to "shiboken2", "shiboken2-generator" and "pyside2". A user can choose which packages to build using this option. The "top-level invocation" uses this option to decide how many "sub-invocations" to execute. A new command line argument called "--internal-build-type" takes the same values as the one above. It defines which package will actually be built in the new spawned "sub-invocation" process. The "top-level invocation" sets this automatically for each "sub-invocation" depending on the value of "--build-type". This option is also useful for developers that may want to debug the python building code in the "sub-invocation". Developers can set this manually via the command line, and thus avoid the process spawning indirection. A new class Config is introduced to facilitate storage of the various state needed for building a single package. A new class SetupRunner is introduced that takes care of the "--build-type" and "--internal-build-type" argument handling and delegation of "sub-invocations". A new class Options is introduced to 'hopefully', in the future, streamline the mess of option handling that we currently have. setup.py now is now simplified to mostly just call SetupRunner.run_setup(). Certain refactorings were done to facilitate further clean-up of the build code, the current code is definitely not the end all be all. Various other changes that were needed to implement the wheel separation: - a new cmake_helpers directory is added to share common cmake code between packages. - the custom popenasync.py file is removed in favor of using subprocess.call in as many places as possible, and thus avoid 10 different functions for process creation. - Manifest.in is removed, because copying to the setuptools build dir is now done directly by prepare_packages functions. - because prepare_packages copies directly to the setuptools build dir, avoiding the pyside_package dir, we do less copying of big Qt files now. - versioning of PySide2 and shiboken2 packages is now separate. shiboken2 and shiboken2-generator share the same versions for now though. - shiboken2 is now listed as a required package for PySide2, to facilitate pip requirements.txt dependencies. - coin_build_instructions currently needs to install an unreleased version of wheel, due to a bug that breaks installation of generated wheel files. - added separate command line options to pyside2_config.py for shiboken2-module and shiboken2-generator. - adapted samplebinding and scriptableapplication projects due to shiboken being a separate package. - adapted pyside2-tool and shiboken2-tool python scripts for setup tools entry points. - made some optimizations not to invoke cmake for shiboken2-generator when doing a top-level "all" build. - fixed unnecessary rpaths not to be included on Linux (mainly the Qt rpaths). Task-nubmer: PYSIDE-749 Change-Id: I0336043955624c1d12ed254802c442608cced5fb Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * | | | | Implement Different Signature LayoutsChristian Tismer2018-10-114-53/+246
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the extended signature API, it is now possible to create different layouts, depending on the usecase. The "layout" module defines the layouts which we will need and also implements the variable signature generation. Task-number: PYSIDE-510 Task-number: PYSIDE-795 Change-Id: I5b9f88d9feb92cc4c8dc0e212860b6eb4fc16484 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>