| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
The default is not compatible with certain Linux accelerations.
This reverts commit 99bfe460b85ccb3562e10f12972852233870e649.
Change-Id: I8b6a2854adc40d6b9949a8d92f0b521a94940ba4
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If '--jobs' option is not specified and environment variable isn't set,
set it to the number of logical CPUs if possible.
I'm adding the option almost every time I run 'setup.py', and probably
other people do it too. So maybe it's a good idea to enable parallel
build by default. I don't know why anyone would want a non-parallel
build, but it's still possible with '--jobs=1'.
Change-Id: Id593b7d472588d33f01c52a21afa1a08eacb04a6
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|\
| |
| |
| | |
Change-Id: I7e3add2bdd36c0fe9fe99122d35a4409fed80773
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| | |
Change-Id: Idd0f8721854614bf7ba2d9d38372627f8ed1b6b1
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
|\|
| |
| |
| | |
Change-Id: Ib2eeca97ebabcff53ef7ddd9fc769be6424db39f
|
|/
|
|
|
| |
Change-Id: I7baa695fe4100e15b108e4eb7df15c6af7db2cbe
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I338d38358f63af544e3cc58c9e6208a8616f98a6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
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>
|