aboutsummaryrefslogtreecommitdiffstats
path: root/build_scripts/platforms/windows_desktop.py
Commit message (Collapse)AuthorAgeFilesLines
* Shiboken6Tools: Use shiboken6-generator from CMake easilyShyamnath Premnadh4 days1-3/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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]>
* 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-111-14/+30
| | | | | | | | | | | 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-071-12/+7
| | | | | | | | | | - 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-041-3/+3
| | | | | | | | | | | | | | | | | | | 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]>
* PySide: Move CMake config packages into wheelsShyamnath Premnadh2025-06-111-2/+14
| | | | | | | | - This becomes useful for QtBridges to access cmake variables related to PySide6 and shibken6 installation. Change-Id: I260282b56af0709c49c3e30c16aa950ce5c1653f 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]>
* pyside6-deploy: 3. Rename project folder to project_libJaime Resano2025-01-221-1/+1
| | | | | | | | | | | | | 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]>
* Fix multimedia to work on Linux with 6.8.1Friedemann Kleint2024-11-111-8/+2
| | | | | | | | | | 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/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-181-29/+19
| | | | | | | | | | | | | | | | - 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]>
* build: Install module doc snippet filesFriedemann Kleint2024-10-161-4/+3
| | | | | | | | | | Amends b55e221464c18053fa44f18132071ebdaee8f432. Task-number: PYSIDE-1106 Fixes: PYSIDE-2893 Pick-to: 6.8 Change-Id: I4a2688bfb5fcdddc5c6baea49d2fdc9c0f2381f1 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]>
* CI: Use default libclang on WindowsSimo Fält2024-09-031-1/+0
| | | | | | | | Clang 10 crashed with Qt 6.8 on Windows, use a newer version. Task-number: PYSIDE-2620 Change-Id: I157dd6ed1c19034805f19c9879814dfc08037484 Reviewed-by: Friedemann Kleint <[email protected]>
* Python-3.10: Allow the new syntax for Python 3.9Christian Tismer2024-06-201-0/+1
| | | | | | | | Add a future statement to all Python source files. Task-number: PYSIDE-2786 Change-Id: Icd6688c7795a9e16fdcaa829686d57792df27690 Reviewed-by: Adrian Herrmann <[email protected]>
* build: Add multimedia dependencies to Qt artifactsAdrian Herrmann2024-03-281-0/+5
| | | | | | | | | | Add a number of DLL dependencies required by Qt Multimedia to the list of Qt artifacts to be retrieved from the Qt binary directory. Fixes: PYSIDE-2656 Pick-to: 6.7 6.6 6.6.3.1 Change-Id: I0ead82ce09a7afb309ff674b4f5fe5afc32319da Reviewed-by: Friedemann Kleint <[email protected]>
* deploy: add pyside icons for windowsCristián Maureira-Fredes2024-02-061-1/+2
| | | | | | Change-Id: Ia8dc07da08cf90db5f847b595c33b649a5cdc55a Pick-to: 6.6 6.5 6.2 Reviewed-by: Friedemann Kleint <[email protected]>
* build scripts: Fix some flake8 issuesFriedemann Kleint2024-01-181-1/+1
| | | | | Change-Id: I26c77eb6448ec539a33acea6d2f39678c2b089a3 Reviewed-by: Shyamnath Premnadh <[email protected]>
* Use correct install locationsSamuli Piippo2023-10-311-1/+1
| | | | | | | | | | | Use the correct install locations for QtAsyncio and designer plugin. Pick-to: 6.6 Fixes: PYSIDE-2494 Change-Id: I760e8f52f19cd1f1cdf742a15df071c4f4deffa5 Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Alexandru Croitor <[email protected]>
* Implement custom asyncio event loop based on QtAdrian Herrmann2023-07-271-0/+7
| | | | | | | | | | | | asyncio is an established library for Python applications with concurrency and asynchronous I/O, and the de facto standard that multiple other async frameworks build upon. Like Qt, it is based on an event loop, so to this end, it offers an extensive API to implement custom event loops that applications using asyncio can then leverage. Task-number: PYSIDE-769 Change-Id: I3daf5d631e2fa0d44fd8c3c272ac5cce96f58653 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Tooling: Simplify adding new toolsShyamnath Premnadh2023-04-181-5/+2
| | | | | | | | | | | | - Amends a48de6afbf127831aa46c1c006d777861bbbe9cb - Simplify the developer doc for adding new tools - Make build_scripts/__init__.py the primary place to add new tools for the build process Pick-to: 6.5 Change-Id: I1e8bd9e069471bf51a186c067773d7fbc2588769 Reviewed-by: Christian Tismer <[email protected]> Reviewed-by: Friedemann Kleint <[email protected]>
* Copy Qt module JSON files for usage by create_wheels.pyFriedemann Kleint2023-04-171-0/+4
| | | | | | Pick-to: 6.5 Change-Id: I147609680589019c6db9dc13add64bf3e0dbab94 Reviewed-by: Shyamnath Premnadh <[email protected]>
* Fix missing opengl32sw.dllAdrian Herrmann2023-04-141-17/+10
| | | | | | | | | | There was a fault in logic that determined whether to download the 7z file that contains opengl32sw.dll. Fixes: PYSIDE-2289 Pick-to: 6.5 Change-Id: Ib11afbacd23ff6ee4c85e8dfce942d1d72916807 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* build: remove unused imports and obsolete commentCristián Maureira-Fredes2023-04-051-1/+0
| | | | | | Change-Id: I52ce8b449e5a0c4f1d94872becaa391c1c9ae605 Pick-to: 6.5 Reviewed-by: Friedemann Kleint <[email protected]>
* build: remove examples from wheels and installationCristián Maureira-Fredes2023-03-211-10/+0
| | | | | | | | | | | | | | | | | | To reduce the size and cluttering of wheels and installations the examples are not including any longer. The recommended way to get examples now is to download them directly from the Example Gallery in the documentation page. The option no-examples was removed. [ChangeLog][pyside6] Examples are not included in the wheels anymore and the option no-example was removed. Change-Id: I94fb24f9ffd6c55e2762e7c2e380b0f0ffe0bf61 Fixes: PYSIDE-2247 Reviewed-by: Adrian Herrmann <[email protected]> Reviewed-by: Friedemann Kleint <[email protected]>
* build: introduce log levelCristián Maureira-Fredes2023-02-021-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | Removed the "quiet" and "verbose" older approach, and introduced a 3-level configuration so we can switch between them depending of the amount of output we need. By default, the log level is set to INFO, but it can be changed to VERBOSE and QUIET. The older "--verbose-build" and "--quiet" options were deprecated. The new way for setting the log level is: --log-level=quiet --log-level=verbose --log-level=info (default) The default option was made less verbose, controlling the output of the logging module, and cmake: for verbose it uses DEBUG, quiet uses ERROR, and no option uses INFO. Change-Id: Ida0289e3ea0ed09b7489a7513254137bba186fd0 Reviewed-by: Christian Tismer <[email protected]>
* build_scripts: Fix missing MSVC DLLs in PySide dirAdrian Herrmann2023-01-121-14/+15
| | | | | | | | | | | Fix a problem where the MSVC DLLs would only be copied into the shiboken6 directory of the wheel and not the PySide6 directory, leading to missing DLL errors on clean Windows installs. Pick-to: 6.2 5.15 Fixes: PYSIDE-2162 Change-Id: I4c07275906a292e4f314ab68231148664af70c4e Reviewed-by: Friedemann Kleint <[email protected]>
* build_scripts: Remove unused argumentAdrian Herrmann2023-01-111-3/+3
| | | | | | | | | Remove unused _vars argument in copy_msvc_redist_files(). Pick-to: 6.2 6.4 5.15 Task-number: PYSIDE-2162 Change-Id: I9bb28dad335e1349ceebfd9b0e0672b9d890bcc5 Reviewed-by: Friedemann Kleint <[email protected]>
* build_scripts: Change source of bundled MSVC DLLsAdrian Herrmann2022-12-221-23/+38
| | | | | | | | | | | | | | | | | | | | Currently, PySide bundles MSVC DLLs (+ others) sourced from a very outdated self-hosted archive. Best practice would be relying on the redistributable package and installing it if necessary, but we cannot assume that the user has the required admin rights. As a compromise, the bundled DLLs are now sourced from the CI machine, which is assumed to be kept somewhat up-to-date, at least on a better cadence than the current 3+ year old archive. These non-MSVC DLLs are no longer bundled as they are pre-installed on Windows: d3dcompiler (part of DirectX) and ucrtbase (Microsoft C Runtime Library). Only opengl32sw continues to be sourced from the self-hosted archive. Pick-to: 6.2 5.15 Task-number: PYSIDE-2162 Change-Id: I6495f6953cd1c3e78a9777d24ee54e429a63d3d9 Reviewed-by: Friedemann Kleint <[email protected]>
* Rename folder: deploy to deploy_libShyamnath Premnadh2022-12-221-1/+1
| | | | | | | | | | - to distinguish between deploy.py and deploy folder, since both are Python modules. This is especially useful when testing since our tests are located in sources/pyside6/tests/tools. Task-number: PYSIDE-1612 Change-Id: Ideb35b23f454ec64415421e00464cfb1f7055401 Reviewed-by: Friedemann Kleint <[email protected]>
* build system: Further introduce PathlibFriedemann Kleint2022-12-061-8/+7
| | | | | | | | | | | | | Make it possible to pass a Path or a str to copyfile()/copydir() for both arguments or one of them. Turn the variables destination_dir, destination_qt_dir and destination_qt_lib_dir introduced by b32a791ea2c66ae9ef2896ea445d4752e4773f96 into Paths. Task-number: PYSIDE-2080 Change-Id: I13b27179746019b9cbe575d783a67a025dac1ee5 Reviewed-by: Cristian Maureira-Fredes <[email protected]> Reviewed-by: Adrian Herrmann <[email protected]> Reviewed-by: Qt CI Bot <[email protected]>
* Build scripts: Adapt to changed location of the metatypes directory in QtFriedemann Kleint2022-12-021-6/+3
| | | | | | | | | | | metatypes are now located under arch_data after qtbase/4234ce12dc819b9ca76c8dc4c251f5bd4fe0bc9c. Allow for a smooth transition by adding a version check. Change-Id: I15e4d560d4a93c7d2e6f737f6f303fcc0c6a678b Reviewed-by: Adrian Herrmann <[email protected]> Reviewed-by: Qt CI Bot <[email protected]> Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Build system: Introduce variables for the target Qt directoriesFriedemann Kleint2022-12-011-58/+39
| | | | | | | | | | It simplifies the code and paves the way for using identical directories on the various platforms. Pick-to: 6.4 Change-Id: Id50d06f100f13c83ea40b475dcf1a05a08ffa3bd Reviewed-by: Adrian Herrmann <[email protected]> Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* PySide Tools - qmltyperegistrar.exe missingShyamnath Premnadh2022-11-171-1/+1
| | | | | | | | - added missing comma in windows_desktop.py Pick-to: 6.4 6.4.1 Change-Id: I082443696ba8dfef99851d7d8fd115b1dcef203c Reviewed-by: Friedemann Kleint <[email protected]>
* Enforce pathlib - unix.py and windows_desktop.pyShyamnath Premnadh2022-11-171-2/+1
| | | | | | | Amend e52b2c9ed9bb86042811b36a910f79dd94fbe0cc Change-Id: Id1d2d964494c7c03baab43769cc4516a3332aa63 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* PySideTools: install tool only if corresponding Qt tool existsShyamnath Premnadh2022-11-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | - PySide tools which are wrappers around Qt tools are now only installed if the corresponding Qt tool exists. - PySide6 entry points for the Qt tool are now only created if the Qt tool exists in the corresponding Qt installation. - Incase the console entrypoint still exists and the corresponding Qt tool does not exist, the tool would exit stating that the Qt tool does not exist. eg: 'pyside6-uic' is run and 'uic' does not exist. The the tool outputs that the 'uic' does not exist. Ideally as per this change, PySide6 entrypoints for missing Qt tools should not exist at all. - versions.py deleted and contents moved to __init__.py. - Adds warning from Python incase if the tool does not exist. This is in addition to the CMake warning. Fixes: PYSIDE-2097 Pick-to: 6.4 6.2 Change-Id: I3f1b26d103679f7425d9ad85dfed8d9ad17f6fbf Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* build scripts: use proper variable name instead of selfShyamnath Premnadh2022-10-311-14/+14
| | | | | | | | - Remnants of 6fe563b2aa15c2c23369acce353be69f6ea84c77 Pick-to: 6.4 6.3 Change-Id: I664b960324d49db08f7a8ec6cf5244fbcda970d0 Reviewed-by: Friedemann Kleint <[email protected]>
* PySideTools: Add qmlimportscannerShyamnath Premnadh2022-10-251-1/+1
| | | | | | | | | | | - qmlimportscanner tool helps the deployment tools to identify all the imported QML modules in the QML files associated with the project Pick-to: 6.4 Change-Id: Id708e9de618d2cf277f67973f5474d05aa2a0c41 Reviewed-by: Christian Tismer <[email protected]> Reviewed-by: Adrian Herrmann <[email protected]>
* Project Tool: SplitShyamnath Premnadh2022-10-201-1/+1
| | | | | | | | | | | - Split classes into separate Python files - utils and project_data - Project operation still inside project.py - Created class ProjectData out of class Project to store the data of the project Pick-to: 6.4.0 Change-Id: I542b74b90b7a4a01cf415d6d2080cbd6ea914e1d Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* pathlib: migrate build_scripts away from os.pathCristián Maureira-Fredes2022-10-181-11/+18
| | | | | | | | | There is a usage of os.path.relpath that cannot be migrated to pathlib, which remain the only usage of os.path Task-number: PYSIDE-2080 Change-Id: Iac781e9c9324fb8b9d3559b4225912d56782072a Reviewed-by: Christian Tismer <[email protected]>
* Add project generation to pyside6-projectFriedemann Kleint2022-10-141-1/+1
| | | | | | | | | | | Add mode keywords "new-quick", "new-ui" and "new-widget" that create simple applications. [ChangeLog][PySide6] pyside6-project can now generate simple project templates. Change-Id: Id4e457ab3592bd9ac4c8c7f45667e8c166ec4754 Reviewed-by: Cristian Maureira-Fredes <[email protected]>
* Desktop DeploymentShyamnath Premnadh2022-10-101-3/+3
| | | | | | | | | | | | | | | - One step solution to deploy PySide6 applications using nuitka without worrying about the plethora of cli options provided by nuitka, at the same time retaining the option to specify advanced nuitka options. - Target: Windows, Linux, Mac - All options are specified through a config file. This makes it easier for expansion to android deployment - Tested for projects with QML files, ui files and rc files Task-number: PYSIDE-1612 Change-Id: Iefbdb55fa1c999295fac2a86b1f6d9b9ec45a0b1 Reviewed-by: Adrian Herrmann <[email protected]> Reviewed-by: Friedemann Kleint <[email protected]>
* Add an entry point for qtpy2cppFriedemann Kleint2022-09-021-1/+8
| | | | | | | | | [ChangeLog][pyside6] pyside6-qtpy2cpp.py, a Qt-specific, simple tool for converting Python code to C++ has been added. Fixes: PYSIDE-1945 Change-Id: I77659ec6b49c0d3f657b4d19e5866f3057561771 Reviewed-by: Christian Tismer <[email protected]>
* PySideTools: Add qmllsShyamnath Premnadh2022-08-111-1/+1
| | | | | | | | | - added qml language server Task-number: PYSIDE-2004 Change-Id: I79c44588c7db42c87914162a5babd4e390ff9a88 Reviewed-by: Friedemann Kleint <[email protected]> Reviewed-by: Adrian Herrmann <[email protected]>
* PySideTools: Add qmlformatShyamnath Premnadh2022-08-031-1/+1
| | | | | | | | - adds qmlformat Task-number: PYSIDE-2004 Change-Id: I6b5fb160d3f832317b41504184dd27586279c802 Reviewed-by: Friedemann Kleint <[email protected]>
* build: fix readability detailsCristián Maureira-Fredes2022-06-291-3/+3
| | | | | | | | | | | | | | Removing some leftover common anti-patterns: - remove unnecessary dict() usage - remove unnecessary map() - avoid index-based loops - use capitalize() instead of index-based capitalization - use f-strings for concatenation Pick-to: 6.2 6.3 Change-Id: I0ffdf73ec47c6ef537789015052dea0fd047350d Reviewed-by: Friedemann Kleint <[email protected]>
* build: replace the usage of reserved Python wordsCristián Maureira-Fredes2022-06-291-69/+67
| | | | | | | | | | Internally, we were using many words like 'filter', 'vars', and 'dir' which are built-in functions in Python. To avoid confusion and a possible wrong behavior, we renamed them. Pick-to: 6.2 6.3 Change-Id: Idbadda3857705ef3a5f0440112ee923d3a61ffa0 Reviewed-by: Friedemann Kleint <[email protected]>