aboutsummaryrefslogtreecommitdiffstats
path: root/build_scripts
Commit message (Collapse)AuthorAgeFilesLines
* Build script/Linux: Use installed patchelf if presentFriedemann Kleint2018-07-243-15/+15
| | | | | | | | | | Add path search helper and use installed patchelf instead of building the contained source. Task-number: PYSIDE-740 Change-Id: I8043aa58ff9ebc4884eee9f15745865f10bb30fe Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Include manylinux1 in package name for python2 builds on LinuxSimo Fält2018-07-111-7/+9
| | | | | Change-Id: I777cf3bd4f060610782fe6a09acd0e10ef713f0b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Minimize the wheel_override diffChristian Tismer2018-07-021-130/+132
| | | | | | | | | | | | | | | | | | | | | | For some shortcomings of bdist_wheel, it was necessary to write a modified wheel version. This patch reorders the parts a bit and avoids extra indentation to make it easier to compare the resulting diff to bdist_wheel.py with a simple compare tool like sublimerge. The semantics of the patch is not changed at all. The patch itself can be best inspected using a diff tool which ignores whitespace. ----- We should consider to submit a patch to python.org that has the necessary improvements for the wheel format, so we can get rid of this file. Change-Id: I1f54ad7cb93d64b57462311e5334c906e27d84a0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Prepare Limited API for Python 3.7Christian Tismer2018-06-261-1/+1
| | | | | | | | | | | | | | | PySide has successfully been tested with the Python 3.7 branch. There will be no change in the areas that are important for us. It is then safe to bump the supported version and the limited API version checks to fully include Python 3.7. The macro errors in the limited API was fixed by a pull request, but it was too late to get it into 3.7rc1. The error workaround was therefore extracted into pep384_issue33738.cpp and will be deactivated later. Change-Id: Iec3f277b02cac03a5cf44cbcf955ddc690c112e5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Extract Qt Win dependencies to be included in wheelsSimo Fält2018-06-252-0/+26
| | | | | | Task-number: PYSIDE-696 Change-Id: I20a4f80acceee5c056217a6c92e3b494ec34020d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix pyside2-rcc to work on macOS during build processAlexandru Croitor2018-06-221-1/+1
| | | | | | | | | | | | | | | | | When preparing the PySide2 package during a build, regenerate_qt_resources is used on the copied examples to regenerate the qt resource files for Python3. This uses the pyside2-rcc tool. The problem was that it failed to find the Qt libraries, due to missing a rpath entry. Fix the problem as it is done for shiboken currently, by embedding the qt rpath value at build time. This get rids of a bunch of error messages during the build. Change-Id: I65459bf42818bdac0c6487c6fdd58bf5270d150e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Associate Coin snapshot builds with Coin integration IDsAlexandru Croitor2018-06-222-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change adds a new setup.py option called --package-timestamp which allows setting the "dev" part of the version number of a snapshot package. It also modifies coin_build_instructions.py to set the package timestamp to the value of the Coin integration ID. This has a couple of benefits: 1) We can look up the build and test logs of a specific package on testresults.qt.io. This can also be looked up for non-snapshot builds, the "timestamp = Coin integration ID" can also be found in the generated __init__.py file. 2) All the different platform packages within one integration will have the same timestamp, which allows pinning snapshot packages inside a pipenv Pipfile. 3) It's easier to figure out which packages were built as part of the same Coin integration. Task-number: PYSIDE-680 Change-Id: Idb2f2d2313cee213a5d742f88b60315a4e505250 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Merge branch '5.9' into 5.11Alexandru Croitor2018-06-081-1/+2
|\ | | | | | | Change-Id: I7e55b4f27f77e2333b9e0f4cddc8de4b89b6043b
| * Add bindings for QtWebEngine (aka Quick)Alexandru Croitor2018-06-071-1/+2
| | | | | | | | | | | | | | | | | | | | | | There is only one method we really need, QtWebEngine::initialize() which is used for all Qt Quick based WebEngine applications. Otherwise you get a warning upon startup of a Qt Quick WebEngine application, and this might lead to undefined behavior. Task-number: PYSIDE-688 Change-Id: I7de2bbb58c49cb2a41b0e13ffc9de6a3161f3960 Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Merge branch '5.9' into 5.11Alexandru Croitor2018-06-072-1/+4
|\| | | | | | | Change-Id: I2de0fe8456fca242c56ea28520126f9ebbf540d8
| * Error out when using --jobs=x with nmake on WindowsAlexandru Croitor2018-06-061-0/+3
| | | | | | | | | | Change-Id: I6b5f974b15398e0926425b1eae24ee1a4813f48d Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Current limited API packages won't work on Python 3.7 and 3.8Alexandru Croitor2018-06-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This is intentional, because of verification code regarding Python buffers. So instead of lying, we remove those python version bits from the generated package name, aka instead of "cp35.cp36.cp37.cp38" it is now only "cp35.cp36". Change-Id: I2891f64e93821d3a3ccb693f28576c34d1365606 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Refactor accepted CI configurationsSimo Fält2018-06-041-0/+13
|/ | | | | Change-Id: I7baa695fe4100e15b108e4eb7df15c6af7db2cbe Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix minor get_package_version issueAlexandru Croitor2018-05-311-1/+1
| | | | | | | | | The function didn't check the value of pre_release_version_type when printing the version. Change-Id: I29db3f40e6fa8c397432433aa285b30f15b8e3ca Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Don't pass -DFORCE_LIMITED_API=yes from setup.py unless asked forAlexandru Croitor2018-05-311-2/+4
| | | | | | | | | | | | | | | | | | | It was weird seeing "-DFORCE_LIMITED_API=yes" being passed from setup.py to CMake when "--limited-api" is not included on the command line, and then seeing "-DFORCE_LIMITED_API=yes" with Python 2 builds. It gives the impression that maybe it could work with Python 2. Instead, don't pass "FORCE_LIMITED_API=yes" from setup.py by default (but still pass it if it's present on the command line), and instead default to "yes" within the CMake project themselves. In the end nothing changes, limited API builds will still be default, but at least it's not as confusing to see the "-DFORCE_LIMITED_API=yes" lines for Python 2 builds in the CI log. Change-Id: I08c863394dd148d88bec324a6cab35459d75303a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Include manylinux1 in package name for limited API builds on LinuxAlexandru Croitor2018-05-311-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | PyPI only accepts binary Linux packages that are built conforming to PEP 513 / manylinux1 support. The gist of it is that extensions need to be built on CentOS 5, so that they work on most newer distro versions than that. Official Qt can't be built on such an old distro. The minimum requirement is thus CentOS / RHEL 7 (which we used for packaging Qt 5.11.0 on Coin). We do want to upload packages to PyPI, so we have to resort to including "manylinux1" in the name. Currently this is tied to the limited API option. TODO: In the future we should name packages "manylinux1" only when the distro version is acceptable for Qt build requirements (RHEL 7.x). It might get a bit messy though, due to platform.linux_distribution being deprecated, and the necessity to depend on the new "distro" package. Change-Id: Ic4dfccd87d810360cbbfce72b27d5fa31e2a59dd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Adjust wheel names when building with limited apiAlexandru Croitor2018-05-312-38/+208
| | | | | | | | | | | | | Wheel has poor support for naming wheel packages that were built with limited API enabled. We need to override some of bdist_wheel's methods to generate a correct name and correct metadata. Move the pyside_bdist_wheel class into a separate file, and implement the necessary logic. Change-Id: I23d814cbb794052fb18a1e018f7b767c60945254 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* PEP 384-squash: Implement PEP 384Christian Tismer2018-05-302-1/+9
| | | | | | | | | | This is the condensed checkin of 18 commits which created the implementation of PEP 384. Task-number: PYSIDE-560 Change-Id: I834c659af4c2b55b268f8e8dc4cfa53f02502409 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Don't package qml plugin debug symbols on LinuxAlexandru Croitor2018-05-251-0/+1
| | | | | | | | | | | Amends 6f894c2667c77e2580e7312d2ebed05efa7d654e. Reduces Qt 5.11.0 Linux wheel size from ~219MB to ~139MB (~80MB delta). Task-number: PYSIDE-661 Change-Id: Iaae1089183148037d94fe541f26426fd51c0f54d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Format python files to use PEP8Cristian Maureira-Fredes2018-05-233-185/+185
| | | | | | | Change-Id: I8dc16c10565da8f93ba5cb7cace004f8eaf52236 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Select correct Python environment when cross compilingSimo Fält2018-05-171-3/+11
| | | | | | | | | To be able to create 32 bit wheel in 64 bit Windows, we must use correct Python version. Task-number: PYSIDE-646 Change-Id: I72c05e9c5b6f37f16c118e36c3c7ea8f90ee7dff Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add option --skip-modulesCristian Maureira-Fredes2018-05-152-0/+10
| | | | | | | | | | | | Allow the user to skip a set of modules when building the module. An example of using this option: --skip-modules=WebEngineCore,WebEngineWidgets,Multimedia Change-Id: I4b7a25acd60d068a886c1e716ddb7b226814b96f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Reduce generated package size by removing unnecessary filesAlexandru Croitor2018-05-142-9/+51
| | | | | | | | | | 1) Don't copy pdb files for QML plugins on Windows 2) Don't copy debug variants of EGL library on Windows 3) Don't copy debug variants of shared libraries on macOS Task-number: PYSIDE-661 Change-Id: I37c701f3b12f3ad08fbdd24ab70587132ddc0c95 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Move setup call from CI to wrapper scriptSimo Fält2018-05-111-2/+30
| | | | | | | | | It can be pretty long lasting process to get updates to Qt CI. To speed up pyside specific changes we move some of the logic to pyside repository. Change-Id: I7d60bf96324d5990fb408d69c00aa4d7e8e81a2f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* build_scripts/main.py: Fix EngrishAlexandru Croitor2018-05-081-2/+2
| | | | | Change-Id: I794e0b094c7be96853c9c5024ede49ea54731506 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Make sure copied libclang file has write permissionsAlexandru Croitor2018-05-082-2/+15
| | | | | | | | | | | | | | When doing a standalone rebuild on macOS, if the libclang library copied over has no write permissions set, the install procedure will fail with permission denied error. Make sure to make the file owner writable, so that any subsequent rebuilds don't cause a failure. Change-Id: I54bb3f6e8bd8db7f8ed2de17892fcedec09b6c32 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix copying of libclang for standalone buildsAlexandru Croitor2018-05-081-15/+9
| | | | | | | | | | Instead of copying a multitude of symlinks, resolve the path and copy just the libclang library which CMake detected, and thus linked against for the shiboken executable. Change-Id: I02887eb4027d29255a32127fb39aff7a1d127f57 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add option to skip docs generationCristian Maureira-Fredes2018-05-072-11/+17
| | | | | | | Adding option to avoid building the documentation. Change-Id: Ia5595e6686c6e7d31e94818c1efb28238a3fbfc7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Change license from all the filesCristian Maureira-Fredes2018-05-0310-10/+10
| | | | | | | | | | | | | | | | | Removing the word 'project' from all the headers, and changing the PySide reference from the examples to Qt for Python: The following line was used inside the source/ and build_scripts/ directory: for i in $(grep -r "the Qt for Python project" * |grep -v "pyside2-tools" | awk '{print $1}' | sed 's/:.*//g');do sed -i 's/the\ Qt\ for\ Python\ project/Qt\ for\ Python/g' $i;done and the following line was used inside the examples/ directory: for i in $(grep -r "of the PySide" * |grep -v "pyside2-tools" | awk '{print $1}' | sed 's/:.*//g');do sed -i 's/of\ the\ PySide/of\ the\ Qt\ for\ Python/g' $i;done Change-Id: Ic480714686ad62ac4d81c670f87f1c2033d4ffa1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Fix typo on build_scripts/utils.pyCristian Maureira-Fredes2018-05-031-1/+1
| | | | | Change-Id: I338d38358f63af544e3cc58c9e6208a8616f98a6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Split and move various setup.py parts into different filesAlexandru Croitor2018-04-3010-0/+3528
This is an initial effort to clean up setup.py. A new directory called build_scripts contains most of the logic for building, leaving setup.py as an entry point. The build_scripts directory contains the usual qtinfo, utils, and the setup.py content has been split into main.py and platform specific files under platforms subfolder. The testrunner script has been modified to find the new location of the utils module. Task-number: PYSIDE-558 Change-Id: I3e041d5116ca5c3f96c789317303b65a7b1bbd70 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>