aboutsummaryrefslogtreecommitdiffstats
path: root/popenasync.py
Commit message (Collapse)AuthorAgeFilesLines
* Allow building shiboken2 and PySide2 as separate wheelsAlexandru Croitor2018-10-121-360/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Change license from all the filesCristian Maureira-Fredes2018-05-031-1/+1
| | | | | | | | | | | | | | | | | 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>
* Reformat and remove of trailing spaces from filesCristian Maureira-Fredes2018-04-191-31/+39
| | | | | | | | Continuing the 72/79 reformatting with the remaining Python files. Change-Id: I4fc0abd720326a16ed4b2d431fd703de71fe02e9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix popenasync.py for non-Ascii charactersChristian Tismer2017-04-281-3/+3
| | | | | | | | | | | | | | | | | Some windows guy had some files with funny characters in the file names. This caused a crash because no error handling was defined. The script then got very confused and ran even into code which was for linux, barfing about a missing fcntl module, and that created a total mess, because the guy installed some funny fcntl module and got even worse errors. The simple fix was to ignore the error, which made the guy very happy. Happened with python3 on windows. Python2 does not have this issue. I’m not sure if we should continue to use this module at all? Task-number: PYSIDE-497 Change-Id: I48099a135702225c12cf7d8e62f058c50f612e5f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix licensesFriedemann Kleint2017-04-051-0/+39
| | | | | | | | | | | | | | | | | | Fix license checker error messages when run in default mode (git ls-files in pyside-setup): Failed test '.../pyside-setup/header.LGPL re-defines a license of type LGPL originally defined in .../qtbase/header.LGPL' not ok 2 - docs/conf.py does not appear to contain a license header not ok 3 - docs/make.bat does not appear to contain a license header not ok 4 - ez_setup.py does not appear to contain a license header not ok 5 - popenasync.py does not appear to contain a license header not ok 7 - qtinfo.py does not appear to contain a license header not ok 11 - utils.py does not appear to contain a license header Task-number: PYSIDE-491 Change-Id: Ia10ff40ef39c64ac717f36ed073b1d1675a150d1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Don't use the 'mswindows' private attributeempyrical2015-09-171-4/+1
|
* Fix subprocess.mswindows check for Python 3.5empyrical2015-09-171-2/+7
|
* Initial commit (copy of lck/pyside-dist repo)Roman Lacko2012-06-041-0/+311