aboutsummaryrefslogtreecommitdiffstats
path: root/sources/cmake_helpers
Commit message (Collapse)AuthorAgeFilesLines
* Add QtNetworkAuthFriedemann Kleint2021-07-121-0/+1
| | | | | | | | | | Ported redditclient example. [ChangeLog][PySide6] The QtNetworkAuth module has been added. Task-number: PYSIDE-1570 Change-Id: I8a057870bf5a59cab227c271c412eb5b9ec4a7b8 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add QtDBus moduleCristián Maureira-Fredes2021-07-121-0/+3
| | | | | | | | | | | | | - List Names example ported. - pingpong example ported. [ChangeLog][PySide6] The QtDBus module has been added. Task-number: PYSIDE-1570 Done-with: Friedemann Kleint <Friedemann.Kleint@qt.io> Change-Id: I8500662fe51754bedf63b7b3b3c3d5ef4890a755 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide6: Add QtWebEngineQuickFriedemann Kleint2021-07-061-1/+2
| | | | | | Task-number: PYSIDE-1570 Change-Id: Ic10a8f29439d5171487dfa5954c3b37be116a2b3 Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide6: Re-add QtWebEngine, initial stepFriedemann Kleint2021-06-231-1/+1
| | | | | | | | | | | Remove module QtWebEngine. Move most API from QtWebEngineWidgets to QtWebEngineCore. Adapt imports in tests and examples. The new module QtWebEngineQuick will be added in a follow-up step. This is not functional yet as examples crash in the underlying 6.2 Alpha. Task-number: PYSIDE-1570 Change-Id: I00907e5542404560967e6ae07d102193f1f1e154 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Use conditional processing in the type systemFriedemann Kleint2021-06-091-5/+1
| | | | | | | | | | | In CMake, remove the AUTO_OS variable from the check_os() macro. Fold the macOS/X11 type system files of Qt Core into the common type system file. Task-number: PYSIDE-802 Task-number: PYSIDE-1568 Change-Id: Ib751f40fbf7eca8fe4d08270db4fbc1e938323c5 Reviewed-by: Christian Tismer <tismer@stackless.com>
* CMake: Rename the ENABLE_ platform variablesFriedemann Kleint2021-05-281-3/+2
| | | | | | | | | | | | Remove ENABLE_X11 in favor of ENABLE_UNIX to match the Q_OS_ defines. Remove unused ENABLE_SIMULATOR. Task-number: PYSIDE-802 Task-number: PYSIDE-1568 Pick-to: 6.1 Change-Id: I231580d562c4ee06db1bd6bf04eb53283d882134 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add initial Support for QtBluetoothAndreas Buhr2021-05-191-1/+2
| | | | | | | Task-number: PYSIDE-1570 Change-Id: I37aa89f31b96caedb0de7343392d5e530239ed8e Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* cmake: bump general Qt minimum versionCristian Maureira-Fredes2021-04-071-1/+1
| | | | | | | | | | The main cmake files for pyside/shiboken still have minimum versions pointing to version <6.0.0 which is not valid anymore. Pick-to: 6.0 Change-Id: Iffebec1e6782e627fc6b3a0c9e16bce7864e250f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Pyside6: Move QtOpenGLFunctions into QtOpenGLFriedemann Kleint2021-03-121-1/+0
| | | | | | | | | [ChangeLog][PySide6] QtOpenGLFunctions have been moved into QtOpenGL. Task-number: PYSIDE-1482 Change-Id: I60807f1c3f7c0a2308a810c72a751de39d03abc0 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Add bindings for Qt DesignerFriedemann Kleint2021-02-051-0/+1
| | | | | | | | | | For the extensions, provide bases classes inheriting from QObject and the extension as is done for QPyTextObject. Task-number: PYSIDE-1455 Change-Id: Ie22c3bf94fe05b4bfa236774038a3a7b7a9d5d07 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide6: Re-add QStateMachineFriedemann Kleint2021-01-261-0/+1
| | | | | | | | | | | | The code was moved from QtCore into a separate library, QStateMachine, within the qtscxml repository. Re-add tests and fix examples. Task-number: PYSIDE-904 Task-number: PYSIDE-1482 Change-Id: I977b4835b3345fb342c369e4fdd92646118f7fda Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PySide6: Clean list of essential modulesFriedemann Kleint2020-11-121-9/+3
| | | | | | | | Out of the extras modules, only WinExtras will likely make it into Qt 6.1. Change-Id: I4738642674ab8ca86061acc74b45c94961e41aef Reviewed-by: Christian Tismer <tismer@stackless.com>
* Rename PySide2 to PySide6Friedemann Kleint2020-11-021-1/+1
| | | | | | | | Adapt CMake files, build scripts, tests and examples. Task-number: PYSIDE-904 Change-Id: I845f7b006e9ad274fed5444ec4c1f9dbe176ff88 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Re-add QtSvgFriedemann Kleint2020-07-201-0/+1
| | | | | | | | | | | QtSvg was split into QtSvg and QtSvgWidgets in Qt 6. Adapt the PySide2 modules accordingly. Task-number: PYSIDE-1339 Task-number: PYSIDE-904 Task-number: QTBUG-41884 Change-Id: I4ff005dfc6e71ac8eb3e3d45b22a7e507eb88f6d Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix OpenGLFunctions for Qt 6Friedemann Kleint2020-07-141-1/+1
| | | | | | | Task-number: PYSIDE-1339 Task-number: PYSIDE-904 Change-Id: I5b8e95b232812fa90ec5974b2b578eb581c06ace Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add QtOpenGLWidgetsFriedemann Kleint2020-07-141-0/+1
| | | | | | | | | | | | | QOpenGLWidget has been moved from QtWidgets into a separate library. Fix the examples and remove obsolete examples using deceased QGLWidget. Task-number: PYSIDE-1339 Task-number: PYSIDE-904 Change-Id: Ib291d49c22ee6a32d7c03b6ff4980e87c8a09ecb Reviewed-by: Christian Tismer <tismer@stackless.com>
* Remove QtWebKitCristián Maureira-Fredes2020-07-061-3/+0
| | | | | | | | Since it was deprecated in 5.5, it's time to remove it from the repository. Change-Id: I0835f04d6c34079dfc289be8027985a1dc3674bc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Initial port of Core,Gui,Widgets,Network,Qml,Quick to Qt 6Friedemann Kleint2020-07-031-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Test failures: shiboken2:testmodifyfunction pyside2:QtCore::qbytearray_test pyside2:QtGui::bug_PYSIDE-41 pyside2:QtGui::deepcopy_test pyside2:QtGui::qfontmetrics_test pyside2:QtGui::qpixmapcache_test pyside2:QtWidgets::api2_test (QTBUG-85417) pyside2:QtWidgets::bug_632 pyside2:QtWidgets::bug_714 pyside2:QtWidgets::bug_785 pyside2:QtWidgets::qshortcut_test pyside2:QtQml::bug_825 pyside2:QtQml::bug_1029 pyside2:QtQml::registertype pyside2:QtQml::qqmlincubator_incubateWhile pyside2:QtQml::signal_arguments Task-number: PYSIDE-1339 Task-number: PYSIDE-904 Change-Id: Ia43d7ed037dfdd07def0edd76bada2243e73d335 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add QtQuickControls2Cristian Maureira-Fredes2020-05-261-0/+1
| | | | | | | | | This exposes the C++ class QQuickStyle Task-number: PYSIDE-487 Change-Id: I5776421070362d8b3bf9556eb28a410de3c90948 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* pyside2: Prepare build system for Qt 6Friedemann Kleint2020-05-181-6/+16
| | | | | | | | | | | - Introduce a version variable to the CMakeLists. - Emulate the Qt5Core_INCLUDE_DIRS, Qt5Core_LIBRARIES variables by retrieving them from the INTERFACE - Raise the language level Task-number: PYSIDE-904 Change-Id: Ie4e43e7e6a9a2631d666038b80f306e2d9af47b1 Reviewed-by: Christian Tismer <tismer@stackless.com>
* cmake: one module per line on the cmake macroCristian Maureira-Fredes2020-05-151-3/+31
| | | | | | | | | To avoid conflicts when modifying the line every time we add a new module, we should write one-module-per-line. Change-Id: I7400004b7aebd6cc8c0b01c0e1abd82b597b67da Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add support for QSerialPortAndreas Buhr2020-05-151-1/+1
| | | | | | | | | | | QSerialPort is part of Qt since Qt 5.1. PySide2 so far had no support for QSerialPort. At the same time, QSerialPort was not listed as unsupported. Task-number: PYSIDE-487 Change-Id: I88d4282a206dadf6f398c3f0e5740f02641724b6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* CMake modularization: macros creationCristián Maureira-Fredes2019-08-281-0/+157
| | | | | | | | | | | | | | | | | | First step of this process that only considers the idea of encapsulate the diffrent CMake processes we currently have in all our main CMakeLists.txt files. This patch simply takes some sections of the existing cmake files and move them to a macro file. Additionally, a couple of macros were written twice in shiboken and pyside, so now they are only once. Task-number: PYSIDE-1033 Change-Id: I2c63d8a2eba3d8951097ec9c9042c782fde5dd62 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Improve build rules for module generationAlexandru Croitor2018-10-231-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Allow building shiboken2 and PySide2 as separate wheelsAlexandru Croitor2018-10-121-0/+63
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>