aboutsummaryrefslogtreecommitdiffstats
path: root/build_scripts
Commit message (Collapse)AuthorAgeFilesLines
* Shiboken6Tools: Use shiboken6-generator from CMake easilyShyamnath Premnadh2 days3-8/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Inspecting the `samplebinding` example, much of the code to effectively call `shiboken6-generator` can be moved into CMake function `shiboken_generator_create_binding` and shipped with `Shiboken6Tools` cmake package enabling users to easily use `shiboken6-generator` in their CMake projects. This also helps to get rid of the `pyside_config.py` script which is used to query certain required paths. - This `Shiboken6Tools` CMake package is packaged with the `shiboken6-generator` wheel and can be used easily in CMake projects by using the `find_package(Shiboken6Tools)` command by adding the Python site-packages directory to the CMake module path. - The `shiboken6-generator` path installed into the Python site-packages is different from the one used by the consecutive setup.py build/ super project build. Hence, we create a new export set `Shiboken6ToolsWheelTargets` just for the wheel package. When copied into `package_for_wheels` this export set is used. - Add a special condition to the `Shiboken6ToolsConfig.cmake` file to skip the dependency checking when building PySide which would otherwise lead to a circular dependency. Task-number: PYSIDE-3138 Change-Id: I199b8d9fe743adee4e3b12e8a7e1ad01f3c277de Reviewed-by: Alexandru Croitor <[email protected]>
* Expose QNativeInterface::QWaylandApplicationFriedemann Kleint5 days1-1/+2
| | | | | | | | | | [ChangeLog][PySide6] Bindings for QNativeInterface.QWaylandApplication have been added. Initial-patch-by: Mark Harfouche <[email protected]> Fixes: PYSIDE-2787 Change-Id: I3484fbd37cb4cd0ae70fde770eb9195a78f4b061 Reviewed-by: Shyamnath Premnadh <[email protected]>
* build: add missing 3DQuickLogic pluginCristián Maureira-Fredes10 days1-1/+4
| | | | | | | Fixes: PYSIDE-2956 Pick-to: 6.9 6.8 Change-Id: Id8f9d2fb1b5c623e2d449b9362088ba581dd3788 Reviewed-by: Friedemann Kleint <[email protected]>
* Move native interfaces out of the QtGui type system fileFriedemann Kleint2025-08-011-0/+1
| | | | | | | | | | | | It is bound to grow as more interfaces with more modifications are added. Rename the code snippet used for int conversion. Also add a test for X11. Task-number: PYSIDE-2787 Change-Id: Ia5f5cf7f0fbb551c38367d80e9fdb4b004db9085 Reviewed-by: Shyamnath Premnadh <[email protected]>
* qfp_tool: Add an option to uninstall the PySide packagesFriedemann Kleint2025-07-241-1/+33
| | | | | | Pick-to: 6.9 Change-Id: Idb9354fa8e443fc0ea4aea72851163b9908a5e3f Reviewed-by: Shyamnath Premnadh <[email protected]>
* qfp_tool: Add a way to install via wheelsFriedemann Kleint2025-07-241-7/+31
| | | | | | | | | Add a boolean config key for wheel installation so that it can be configured by directory. Pick-to: 6.9 Change-Id: I2c245bd7746c13b2ed66159f3d95eed2ef6ceda1 Reviewed-by: Shyamnath Premnadh <[email protected]>
* Use newer versions of the MSVC runtimeFriedemann Kleint2025-07-111-1/+1
| | | | | | | | | Bump the archive version. Pick-to: 6.9 Fixes: PYSIDE-2938 Change-Id: I1e00c96df9c6ba4ea55f1c0cf9e6ebdd0ae1f4f3 Reviewed-by: Simo Fält <[email protected]>
* Download MSVC runtime instead of copying it from the build hostFriedemann Kleint2025-07-111-29/+2
| | | | | | | | | | | | This effectivly reverts 36f62dd5d45b8b84bd80064ceb43bab74a89321e since the MSVC runtime found on COIN hosts is quite old and cannot easily be updated. Now, the downloadable artifacts are used. Pick-to: 6.9 Task-number: PYSIDE-2938 Task-number: PYSIDE-2162 Change-Id: I228632070c92c18c60367d39c9d3540d36e7f6a2 Reviewed-by: Shyamnath Premnadh <[email protected]>
* build scripts: Introduce a cache directory for Qt artifactsFriedemann Kleint2025-07-112-15/+35
| | | | | | | | | | | Future patches will use the MSVC runtime from the downloadable artifacts for several wheels, so cache the DLLs in a directory named by the COIN job id. Pick-to: 6.9 Task-number: PYSIDE-2938 Change-Id: Id0e0889f306c45bdf9c056f4f76bede5c783645d Reviewed-by: Shyamnath Premnadh <[email protected]>
* Fix CMake targets to be relocatable in wheelsShyamnath Premnadh2025-07-073-26/+45
| | | | | | | | | | - Create two CMake export sets. One for building PySide6 and shiboken6 together called *Targets.cmake. Another with the corrected paths based on the wheel tree structure called *WheelTargets.cmake - Copy all the necessary CMake files to the wheel. Change-Id: If538ed3dac4d8195e96157c595bc63e991a5ee90 Reviewed-by: Friedemann Kleint <[email protected]>
* Modify headers installation for CMake buildsShyamnath Premnadh2025-07-043-7/+11
| | | | | | | | | | | | | | | | | | | Previously, the headers are installed as ${CMAKE_INSTALL_PREFIX}/include/cmake_package_name, where cmake_package_name is the CMake package name, e.g., PySide6. In the wheels, the headers were included as package_name/include. Since the level of the include directory is different, this caused issues when importing the CMake package in a downstream project. - This change modifies the installation of the headers so that the CMake install prefix and the wheels are consistent. - Additionally - this change adds the libpyside6 headers to the wheels. - The include headers for libshiboken were shipped with shiboken6-generator and not with shiboken6, which has the libshiboken binary. Change-Id: I96e3280799da169836e24551b906274f5b0fc962 Reviewed-by: Alexandru Croitor <[email protected]>
* Remove QtExampleIcons moduleFriedemann Kleint2025-07-041-6/+0
| | | | | | | | | | The module will be removed from Qt since it is not used there. This effectively reverts 559fb65547236694dc04973f7fb6b39bac75d158. Task-number: PYSIDE-2206 Task-number: QTBUG-110428 Change-Id: I149c1e6a2c3672050b4d1ba4633f07c7cdac5c1d Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* build system: Extend sanitizer supportFriedemann Kleint2025-07-022-5/+8
| | | | | | | | | Enable address sanitizer for MSVC, which has gained support in the mean time. Add thread sanitizer with a warning. Task-number: PYSIDE-2221 Change-Id: Iaa5a377fdb1cf33c1dcad42df5528a3a3499c773 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Android: Fix missing multimedia libsShyamnath Premnadh2025-06-191-1/+1
| | | | | | | | - Regression introduced by 38c0d909ff78f5432d4a99a55974fda35786f868 Pick-to: 6.8 6.9 Change-Id: I172514816a1768c1de4df115c450b0d52afc63dd Reviewed-by: Friedemann Kleint <[email protected]>
* PySide: Move CMake config packages into wheelsShyamnath Premnadh2025-06-113-3/+43
| | | | | | | | - This becomes useful for QtBridges to access cmake variables related to PySide6 and shibken6 installation. Change-Id: I260282b56af0709c49c3e30c16aa950ce5c1653f Reviewed-by: Friedemann Kleint <[email protected]>
* build: re-add text attribute for licenseCristián Maureira-Fredes2025-06-051-1/+1
| | | | | | | | | | | | | | | | | | Amends 2994629b717fd52d616db139017e25535b357309 To keep supporting the old 'setup.py install' approach, this was a mistake, because we still use in the pyproject.toml file the line: license = {text="LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only"} The reason this was not detected by the CI, is bacause we don't use the deprecated approach of 'setup.py install' but rahter the 'setup.py build' + create_wheels + pip install Change-Id: I5c67cc0073982355c8f95a76d581580edd023f9e Pick-to: 6.9 Reviewed-by: Friedemann Kleint <[email protected]>
* build: setuptools, packaging and buildCristián Maureira-Fredes2025-06-041-1/+1
| | | | | | | | | | | | | By updating the build dependencies, a few things have changed by updating packaging and setuptools: - now the name of the wheel files needs to be lowercase - the generated wheel names now have lower-case for the project name - the license entry on pyproject.toml can now be a direct SPDX - update wheel_tester Pick-to: 6.9 Change-Id: Iefee4adba5d3fee433d02729b0995acb2c3cceed Reviewed-by: Shyamnath Premnadh <[email protected]>
* PySide Wheels: Add QtVirtualKeyboardQML binariesShyamnath Premnadh2025-05-301-0/+1
| | | | | | Pick-to: 6.9 6.9.1 Change-Id: I8449452aba296fd5d76c3c81e32d63f8ea906b81 Reviewed-by: Simo Fält <[email protected]>
* build: fix author metadata for cross compiled wheelsCristián Maureira-Fredes2025-03-271-3/+3
| | | | | | Pick-to: 6.8 6.9 Change-Id: Iabc55c386790bd9fda8ad56589951ac8c8d3bcea Reviewed-by: Shyamnath Premnadh <[email protected]>
* PySide6: Add qmllint plugins to wheelsShyamnath Premnadh2025-03-181-0/+5
| | | | | | | | | | - Currently, these plugins only have quicklintplugin which provides QtQuick specialized warnings when QtQuick is run. Fixes: PYSIDE-3049 Pick-to: 6.8 6.9 Change-Id: Ieea5e57f3f0a990484daa144ed66de8178a92c5f Reviewed-by: Friedemann Kleint <[email protected]>
* CI: Enable Windows on Arm configSimo Fält2025-03-151-1/+5
| | | | | Change-Id: I66aa36d69b41afb86a6278304a231b97eabc5270 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* CI: Use COIN_UNIQUE_JOB_ID variable to detect if build is in COINSimo Fält2025-02-031-1/+1
| | | | | | | | | The old variable is not exported anymore by CI. Pick-to: 5.15 6.2 6.5 6.8 6.8.2 Fixes: PYSIDE-3000 Change-Id: Ide0248348c08bf94dfb5b7fbc2964274e45f7cb7 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* pyside6-deploy: 3. Rename project folder to project_libJaime Resano2025-01-222-2/+2
| | | | | | | | | | | | | This is a refactor in order to improve the code clarity. In the testing of the pyside6-project command, importlib.import_module is used to import the project_lib folder. Currently, importlib.import_module("project") is ambiguous because it may refer to both the file and the folder. It chooses the folder over the file. Task-number: PYSIDE-1612 Pick-to: 6.8 Change-Id: I8903ea9d2112cf2eb7a68d0e302d3c74edcf2c22 Reviewed-by: Friedemann Kleint <[email protected]>
* Remove unnecessary use of 'object' in class constructionremoteobjectsdevCristián Maureira-Fredes2024-12-185-6/+6
| | | | | | | | | | | Considering we are not compatible with Python 2 anymore, we can drop the 'object' explicit inheritance in the class declaration. Pick-to: 6.8 Change-Id: Iac3a95aa9721c3ff1a755f457c0936ca157a8470 Reviewed-by: Shyamnath Premnadh <[email protected]> Reviewed-by: Friedemann Kleint <[email protected]>
* build: improve the build configuration implementationCristián Maureira-Fredes2024-12-186-82/+62
| | | | | | | | | | | | - Using Singleton for the class - Adding type hints for the Path variables - Use function for parsing modules instead of duplicating it - Adapting related code in other files as well - Remove historical prints when configuring. Pick-to: 6.8 Change-Id: I9fef2e8d7c2033442f89a6f6ca027b5ae2ac6ab4 Reviewed-by: Friedemann Kleint <[email protected]>
* build: options as a singletonCristián Maureira-Fredes2024-12-182-82/+89
| | | | | | | | | | | Avoid finding the dynamic options each time the OPTION dictionary was imported in the different build_scripts files. Now each setup.py invocation will have the same object. Pick-to: 6.8 Change-Id: Ic556d572e77e54fe27603332b7d2f99697eab86c Reviewed-by: Friedemann Kleint <[email protected]>
* build: don't stop if unsupported python version is usedCristián Maureira-Fredes2024-12-161-2/+5
| | | | | | Task-number: PYSIDE-2958 Change-Id: I2457b2a81fae2a1e8c22dc3ac22d9ebe02b5e97a Reviewed-by: Friedemann Kleint <[email protected]>
* testrunner: Add command line for the number of re-runsFriedemann Kleint2024-12-111-1/+1
| | | | | | | | As a drive-by, fix command the line help (needs to be f-string). Pick-to: 6.8 Change-Id: I96b38c41bca303af313402a93e3d4c7a350de4df Reviewed-by: Christian Tismer <[email protected]>
* build: fetch metadata from pyproject.toml fileCristián Maureira-Fredes2024-12-053-70/+52
| | | | | | | | | | | | | In a couple of releases we had inconsistencies between the wheel meta information from the build_scripts old scripts and the create_wheels new script. For old versions, we rely on tomli, but on new ones we use the standard tomllib one. Pick-to: 6.8 Change-Id: I114d8b0a240ad41cad8b57c27a0b3afadc928d94 Reviewed-by: Friedemann Kleint <[email protected]>
* build: fix the URLError import statementCristián Maureira-Fredes2024-12-031-3/+4
| | | | | | | | | Currently it was not working due to the strange import strategy overriding 'urllib' Pick-to: 6.8 Change-Id: I7b773ba53c800dd408afdb9e77a71ea77887df4e Reviewed-by: Friedemann Kleint <[email protected]>
* Raise Python version to 3.8Friedemann Kleint2024-12-031-7/+0
| | | | | | | | | | | | | | Fix some oversights of previous changes: - Bump limited API - Fix CMake files - Remove outdated version checks from Python code - Adapt some documentation Pick-to: 6.8 Task-number: PYSIDE-2943 Change-Id: Id8d9c4c6bb0629948de28beb3c4274991f84ff08 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Fix multimedia to work on Linux with 6.8.1Friedemann Kleint2024-11-114-20/+17
| | | | | | | | | | The helper libraries are now also required on Linux. Also, some new libraries libQt6FFmpegStub*.so* were added. Pick-to: 6.8 Change-Id: I78ecd66139b18f48bbbe677990dc8ec570238199 Reviewed-by: Cristian Maureira-Fredes <[email protected]> Reviewed-by: Shyamnath Premnadh <[email protected]>
* build: add QtWebViewQuick module files to wheelCristian Maureira-Fredes2024-11-081-0/+8
| | | | | | | | | | | | | | | The missing WebViewQuick libraries were generating an error on pyside6-deploy. Now the WebViewQuick files are included. It's important to notice that it's not an actual module under sources/pyside6/PySide6 it's only to get the libraries from the Qt installation. Pick-to: 6.8 6.5 Task-number: PYSIDE-2910 Change-Id: Ie8773dc24f9c3019e951075f6e274df73abb60e9 Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Christian Tismer <[email protected]>
* Bundle plugins required for QtWebViewFriedemann Kleint2024-11-081-0/+2
| | | | | | | | | Amends 83603fed574fc7b0eed452b347170862b12a98f6. Task-number: PYSIDE-2910 Pick-to: 6.8 6.5 Change-Id: Iabd7a2faaf1363f2dced0852acb1c6f572d297eb Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* coin: ci code improvements for build and testCristián Maureira-Fredes2024-11-081-62/+0
| | | | | | | | | | | | | | | | | | | The current patch modifies the structure for the code in charge of building and testing pyside in the CI. Instructions within 'coin_test_instructions.py' and 'coin_build_instructions.py' were duplicated, and other slightly modified, so the code was standarized and placed in 'coin/instructions_utils.py', so the first two files could be heavily simplified. A couple of helper functions were removed from build_scripts/utils.py in order to reduce the code in the general build utilities for the project. Pick-to: 6.8 Change-Id: I0cd4bc51edb2e28c5e81a0be8a27be6cb4027bfd Reviewed-by: Simo Fält <[email protected]>
* build: make FluentWinUI3 available for Linux and macOSCristián Maureira-Fredes2024-11-071-1/+3
| | | | | | | | | | | | | | The style needs to be available for all supported platforms, not only Windows. We were still deploying the plugin, and when trying to find the library for the style, it was affecting the deployment of applications. Change-Id: If8c0b08627beddf59cfb682cc2594ba06aca31f2 Pick-to: 6.8 Fixes: PYSIDE-2910 Reviewed-by: Friedemann Kleint <[email protected]>
* setup: fix PySide6.__all__ after the wheel split, amendment 2Christian Tismer2024-10-221-17/+0
| | | | | | | | | | | | | | | | | | When trying to write a module.__all__ variable without interference with different runtime folders, this version uses the __getattr__ support that Python 3.7 has introduced. This creates the __all__ variable on demand, when someone accesses that variable, for instance by "from PySide6 import *" which is the intended use. amends 703d975f16aff95bc9014a2689a3ae824b5a552f. Task-number: PYSIDE-1890 Change-Id: Ia4ead5bc7e499573d534ec7237b27ee737590a91 Fixes: PYSIDE-2895 Pick-to: 6.8 6.8.0 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* build: Remove build-directory-dependent code from PySide's __init__.pyFriedemann Kleint2024-10-181-0/+18
| | | | | | | | | It breaks checks for reproducible builds. Fixes: PYSIDE-2895 Pick-to: 6.8 Change-Id: Id9a8c00dd7319b6f30c06e30f796e7ee11edc593 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* build/Windows: Use multimedia artifacts from the Qt build instead of the ↵Friedemann Kleint2024-10-181-3/+9
| | | | | | | | | | download They should be present when building with -DQT_DEPLOY_FFMPEG=TRUE or from the Online installer. Change-Id: Ief39e6825968cba7cf3d4b95d013ee0ab6f0150e Reviewed-by: Shyamnath Premnadh <[email protected]>
* build/Windows: Clean up the codeFriedemann Kleint2024-10-182-29/+23
| | | | | | | | | | | | | | | | - Remove the binaries from the list of filters retrieved from the .7z file. - Rename copy_qt_dependency_dlls() to download_qt_dependency_dlls() for clarity. - Split the artifact list into one containing the Multimedia libraries and a helper function qt_rhi_artifacts_permanent() for RHI/rendering related libraries. - Add a helper function returning whether it is running in COIN Complements 36f62dd5d45b8b84bd80064ceb43bab74a89321e. Pick-to: 6.8 Change-Id: I47518c2f1f9abe601c57c85bd1ec30e5ec5d13c2 Reviewed-by: Shyamnath Premnadh <[email protected]>
* Fix condition to allow 3.13 for wheel creationCristián Maureira-Fredes2024-10-171-1/+1
| | | | | | | Task-number: PYSIDE-2751 Pick-to: 6.8 Change-Id: Iaf6e914bf798371faf5066f4a2d70fe3e2c124e5 Reviewed-by: Christian Tismer <[email protected]>
* type hints: Install a permanent test for error-free pyi filesChristian Tismer2024-10-172-0/+5
| | | | | | | | | | | | | | | | | Testing Mypy on the whole project costs some time, about 33 s on a Mac Studio Max M1 in debug mode. On CI with release Windows, this is about 8 sec. An option "--skip-mypy-test" is added to save time. The mypy tool is only enforced to exist in COIN. Otherwise it is optional. Task-number: PYSIDE-2846 Change-Id: Ibbabbf6b893537ac923fbbaba9ff832ebd675a21 Fixes: PYSIDE-2672 Fixes: PYSIDE-2886 Pick-to: 6.8 Reviewed-by: Friedemann Kleint <[email protected]>
* build: Install module doc snippet filesFriedemann Kleint2024-10-163-8/+10
| | | | | | | | | | Amends b55e221464c18053fa44f18132071ebdaee8f432. Task-number: PYSIDE-1106 Fixes: PYSIDE-2893 Pick-to: 6.8 Change-Id: I4a2688bfb5fcdddc5c6baea49d2fdc9c0f2381f1 Reviewed-by: Shyamnath Premnadh <[email protected]>
* build: Deal with read-only Qt installationsFriedemann Kleint2024-10-091-0/+6
| | | | | | | | | | | | Make binaries writeable before patching. No care is taken to preserve the mode as installing the wheels creates rwxrwxrwx files when unpacking regardless of the mode set when bundling. Fixes: PYSIDE-2885 Pick-to: 6.8 6.5 Change-Id: I5cbb02667c3a195ac369bb83ea42e3ba0ea85367 Reviewed-by: Shyamnath Premnadh <[email protected]>
* Wheels/Windows: Use updated zip archive with latest msvc redist libsSimo Fält2024-10-081-1/+1
| | | | | | | Pick-to: 6.8 Task-number: PYSIDE-2620 Change-Id: I96cffe4dc3b13b495f04875b3e82f99ff7d09288 Reviewed-by: Friedemann Kleint <[email protected]>
* Wheels/Windows: Use updated zip archive for Multimedia dependenciesFriedemann Kleint2024-09-251-3/+1
| | | | | | | | Remove the old 32bit file. Pick-to: 6.7 6.7.3 Change-Id: I0835c611537e4caf462827eea27f5def9492ac18 Reviewed-by: Simo Fält <[email protected]>
* build: Use a wildcard for installing multimedia auxiliary libraries versions ↵Friedemann Kleint2024-09-241-5/+5
| | | | | | | | | | for 6.7.3 Amends 79a91f5881567bc26070386c1443d8627a55b16d. Pick-to: 6.7 6.7.3 Change-Id: I94878fd5cbc50206cd9cf680b733ce8e04914ba7 Reviewed-by: Shyamnath Premnadh <[email protected]>
* Fix the multimedia auxiliary libraries versions for 6.7.3Friedemann Kleint2024-09-241-7/+7
| | | | | | | | Use a wildcard to automatically get the latest version. Pick-to: 6.7 6.7.3 Change-Id: I69eb4e86f6ccdf5c6e240c35d10f2c0ca930a31d Reviewed-by: Shyamnath Premnadh <[email protected]>
* Wheels: Bundle Qt5Compat.GraphicalEffects with PySide6-AddOnsShyamnath Premnadh2024-09-201-3/+3
| | | | | | | | | | | | | | | | - Qt5Compat's Graphical Effects library (libqtgraphicaleffectsprivateplugin.so) depends on Qt's Shader library (libQt6ShaderTools.so.6) which is bundled in the AddOns wheel. This causes application using Qt5Compat.GraphicalEffects to fail with a "Cannot load library" error. - This change bundles the Graphical Effects library with the AddOns wheel, thereby fixing the error. Pick-to: 6.7 Fixes: PYSIDE-2871 Change-Id: If76ede9ddd08a0cca80f59e3c1bab97918250e88 Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Documentation: Release NotesShyamnath Premnadh2024-09-191-9/+30
| | | | | | | | | | | | | - Introduces a new section in the navigation pane called "Release Notes" with subpages for PySide6, Shiboken6, PySide2, and Shiboken2. - The .md files are auto-generated by the script `tools/release_notes/main.py` and created in the directory `sources/pyside6/doc/release_notes/`. Fixes: PYSIDE-2853 Change-Id: I6def8b526f11a638581f29798dd6917cd435d19c Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Cristian Maureira-Fredes <[email protected]>