aboutsummaryrefslogtreecommitdiffstats
path: root/setup.py
Commit message (Collapse)AuthorAgeFilesLines
* Fix MACOSX_DEPLOYMENT_TARGET being set by distutils.spawn()Alexandru Croitor2018-02-141-0/+11
| | | | | | | | | | | | | | | | Even though a user might specify a CMAKE_OSX_DEPLOYMENT_TARGET value, this will not automatically set the regular MACOSX_DEPLOYMENT_TARGET environment variable, which is picked up by the compiler to decide which standard library to use. Because CMake is invoked via run_process -> distutils.spawn(), spawn might decide to set its own value of MACOSX_DEPLOYMENT_TARGET. That is undesirable. Make sure to always specify the environment variable based on given value, or current OS version. Change-Id: I7f2dcc546c447d30fc1585cda220e3437cee9491 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2018-02-091-119/+142
|\ | | | | | | Change-Id: I7ff12fd3c9ac969cbbbbe4d520d6f55b572b4de8
| * Fix deployment of Qt libraries on macOS for standalone packagesAlexandru Croitor2018-02-061-14/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously there was a selection process to choose which libraries to copy over in order to save time and space by not copying libraries for which there are no bindings. The logic was incomplete, and it would be a burden to always update it. Instead it seems that WebEngine is the predominant time consumer when copying, so just simplify the logic to the following: 1) If WebEngine bindings were generated, copy WebEngine Qt libraries 2) If not, don't 3) Copy all other Qt libraries Task-number: PYSIDE-604 Change-Id: Iaa832b5281c9c328f056fd5f9f42e251d55be75f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Add setup.py option to set the OS X minimum deployment targetAlexandru Croitor2018-02-061-0/+16
| | | | | | | | | | | | | | | | | | This is necessary to create binaries that will run on systems older than the system on which the binaries are build. Task-number: PYSIDE-603 Change-Id: Iab1e155d63f0a0cde5de7bbf54ca2c906d8bf188 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Add setup.py option to output compiler command line invocationAlexandru Croitor2018-02-061-0/+5
| | | | | | | | | | | | | | | | Useful for debugging incorrect command line arguments (especially for CI builds). Change-Id: I2c291c1ede5c2e17cdd877f788e8b62876568367 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Improve libICU deployment on LinuxAlexandru Croitor2018-02-061-37/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the --standalone build process would download and extract an archive of ICU libraries, regardless of which ICU Qt was built against. The build process will now detect which ICU libraries QtCore depends on and copy the libraries over to the destintation libdir. Something similar might be needed in the future for macOS and Windows. Change-Id: I0db0c8c628d3c095a8a4a1e361f8fafe18da2ec3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Rename usage of 'dist_dir' to 'pyside_package_dir'Alexandru Croitor2018-02-061-62/+62
| | | | | | | | | | | | | | | | | | | | The value of 'dist_dir' always meant the 'pyside_package' directory, yet it always added some confusion that it might be something else. Thus remove all mentions of 'dist_dir' to make things more clear. Change-Id: I5037d7a272e96d89424a333adb9c6dc4510d492a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Improve logging of all relevant build folders that are written toAlexandru Croitor2018-02-061-7/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | This change improves the output of which directories are used when a build is done, as well as adds output for the correct final installation destination (deduced automatically by setuptools, or specified by --prefix option). The change aims to reduce the usual confusion of figuring out which files are written where. Change-Id: I038be7bc657a7fa68e242c38076ffc4ba0548a0b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2018-02-021-8/+22
|\| | | | | | | Change-Id: I777970f7bb17db766660d82556559eadd7293355
| * Improve documentation about OpenSSLAlexandru Croitor2018-02-021-8/+22
| | | | | | | | | | | | Task-number: PYSIDE-599 Change-Id: Iea11cca0c5de0aec82ce504ce8ac14d9778c08dd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Remove the wiki submoduleFriedemann Kleint2018-02-011-4/+2
| | | | | | | | | | | | Change-Id: Iad43ac9dd8b51dee4eaba7f844d90639912cae73 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Cristian Tarsoaga <cristian.tarsoaga@gmail.com>
* | Remove examples submoduleFriedemann Kleint2018-01-251-8/+0
| | | | | | | | | | Change-Id: I0e4e3472e1d5644db281fb46ce4ba4ddfc1eafae Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2018-01-191-1/+3
|\| | | | | | | Change-Id: I5f2e1660a27efafa445592898db4dfe3250306e0
| * setup.py: Fix bundling of pyside2uic.CompilerFredrik Averpil2018-01-171-1/+3
| | | | | | | | | | | | | | | | | | | | Add the compiler. Task-number: PYSIDE-357 Change-Id: I7138c583382d60933a921fd2f0dc4ef880a0c31b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Fredrik Averpil <fredrik@averpil.com>
* | Move examples from submodule to pyside-setupFriedemann Kleint2018-01-121-12/+8
| | | | | | | | | | | | | | | | | | | | Move PySide2 examples that are owned by the Qt Company to a new examples directory. Done-with: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Task-number: PYSIDE-363 Change-Id: I14099764d9eef2bc35e067086121427955862e3a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2018-01-121-0/+46
|\| | | | | | | Change-Id: I18387b329e61646e8d68e678140b533281e359cd
| * Extract iculibs for linux standalone wheelSimo Fält2018-01-111-0/+46
| | | | | | | | | | | | | | | | | | When creating PIP wheel for linux from Qt CI binaries we have to include ICU libs among Qt binaries. Change-Id: I30adf7041784cf3558c064d6ab6ad295ed1f5551 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | setup.py: Ensure that the Qt source path is correctVenugopal Shivashankar2018-01-051-6/+14
| | | | | | | | | | | | | | | | | | | | | | - Add the -qt-src-dir option - Set qtSrcDir variable only if the -qt-src-dir option is None (auto-detect SDKs and in-source builds) Task-number: PYSIDE-363 Change-Id: Iac63c5b4fde0c9f6769ae4fc7e0e899e8bf84b76 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2017-11-291-1/+1
|\| | | | | | | Change-Id: Ibef497a2439a05114eb2123e5f39c00aec8dc460
| * FIXUP: Make standalone option work on LinuxAlexandru Croitor2017-11-281-1/+1
| | | | | | | | | | | | | | | | | | There was an indentation error in the rpath linux handling function, which ended up not adding any rpaths in regular builds, thus breaking PySide2 module importing. Change-Id: I18488f78aca50435f69ce091e46a77e4ec55d396 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2017-11-271-35/+264
|\| | | | | | | Change-Id: I79637555fbfbd596dee4313baf80149d03bb5206
| * Update description of standalone option in setup.pyAlexandru Croitor2017-11-151-1/+3
| | | | | | | | | | | | | | | | | | Mention that it is usable on Linux and macOS, whereas on Windows it is used implicitly. Change-Id: I17f2086e7d4f9ac9ac084bddbcf73644af4bc0d4 Task-number: PYSIDE-558 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Make standalone installations relocatableAlexandru Croitor2017-11-151-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is achieved by registering a qt.conf file with a Prefix pointing to a directory relative to the loaded PySide2 module (e.g. QtCore). Thus Qt does not crash due to not finding platform plugins. Because this change would affect tests, which are ran before the PySide package is installed, a new environment variable called PYSIDE_DISABLE_INTERNAL_QT_CONF is introduced. This variable disables the registration of the internal qt.conf file, thus it will not point to a not yet created location, which will allow tests to run as before. Change-Id: I5a96037adfafe1f08ea57535aa4a2a0d1660dfaf Task-number: PYSIDE-558 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Make standalone option work on WindowsAlexandru Croitor2017-11-151-0/+20
| | | | | | | | | | | | | | Change-Id: Ib2429a3cefb9ecc8804d384f9560e15d27d48198 Task-number: PYSIDE-558 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Make standalone option work on LinuxAlexandru Croitor2017-11-151-35/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | Changes were made to copy the correct Qt shared libraries into the package (updated to Qt5 naming). A new rpath value will be inserted alongside $ORIGIN, to point to the copied over libraries. Also because symlinks are not supported by wheels, the actual Qt libraries have to be copied instead of the symlinks. Change-Id: I656a89a0b0136a290752bca141125bdeb5bb44d5 Task-number: PYSIDE-558 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Fix rpath handling on LinuxAlexandru Croitor2017-11-151-1/+10
| | | | | | | | | | | | | | | | | | | | | | In addition to adding $ORIGIN, add an RPATH to the Qt lib directory (the one used when building PySide) so that there is no necessity to set LD_LIBRARY_PATH. Change-Id: I0d54da2ef084abbe503bd427b0773481264334e6 Task-number: PYSIDE-558 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Make standalone option work on macOSAlexandru Croitor2017-11-151-31/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements standalone option on macOS, both for .dylib Qt build and framework build. Multiple rules are applied to figure out which files need to be copied into the final package. We also take care to embed a proper LC_RPATH for the PySide libraries, so that they point to the copied over Qt libraries. Change-Id: I442749e7c2318a66a22e3a1dd0ae703fb8943acf Task-number: PYSIDE-558 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Preserve symlinks instead of duplicating filesAlexandru Croitor2017-11-151-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change overrides some of the commands provided by distutils / setuptools to preserve symlinks when copying directories. This is mostly to decrease the time spent and amount of space used by copying into the pyside_package, build/xxx and site-packages directories (copying around WebEngine libraries takes a bit of time and space). It is not useful for bdist_wheels or eggs, because Python's zip module does not preserve symlinks when archiving the files. Ultimately this will probably go away, once we figure out which if any of the symlinks are needed. Task-number: PYSIDE-495 Change-Id: I8766266c9ab51d610c9a5377618ab06020637d7d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Fix rpath handling on macOSAlexandru Croitor2017-11-151-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change ultimately allows running python scripts that use PySide2 without setting DYLD_LIBRARY_PATH / DYLD_FRAMEWORK_PATH. It is achieved by embedding a @loader_path LC_RPATH into all PySide shared libraries, so that they can load each other if they have dependencies. Also an additional LC_RPATH is embedded to point to the Qt libraries directory which was used for building PySide2. A new option "--rpath='your_value'" is available to allow manually specifying the rpath value to be embedded into the libraries. Change-Id: Id783196e908877692312b1d40fef4ad0b09f3e68 Task-number: PYSIDE-558 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Allow building subset of Qt modulesFriedemann Kleint2017-11-141-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Collect the list of essential and optional modules in list variables and concatenate them to a list variable MODULES unless its value was passed in on the command line with -D. Remove the additional parameter indicating the module type to COLLECT_MODULE_IF_FOUND() and let it determine that by checking the essentials list instead. Add a command line option --module-subset to setup.py which can be used like "--module-subset=QtCore,QtGui,QtWidgets,QtTest" to specify the modules to be built. Change-Id: Ibb0fa16a8d9b0d7aeeaf8a8cfcbd50cb910ecc97 Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2017-09-281-0/+10
|\| | | | | | | Change-Id: I47521e21977b1f17fcc65590f565270b2440a48b
| * Implement introspection with __signature__ packageChristian Tismer2017-09-201-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The signature module was turned into a package under 'PySide2/support/signature'. The package is completely isolated so that nothing is leaking into the normal import machinery. The package is also not initialized unless a __signature__ attribute is accessed. The only change to Python during a PySide run is the existence of the __signature__ attribute. As a side effect, all tests run at the same speed as before this extension. The module does not actively import PySide modules. Instead, it inspects sys.modules and reloads its mapping.py if needed. Example usage: >>> PySide2.QtWidgets.QGraphicsAnchorLayout.addAnchors.__signature__ >>> PySide2.QtWidgets.QGraphicsAnchorLayout.__signature__ The module has been thoroughly tested on macOS. I consider this ready. Task-number: PYSIDE-510 Change-Id: Ibb231a7fbb4ccc1a7249df55e3881a4e21a19c0d Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2017-08-281-13/+0
|\| | | | | | | Change-Id: I073b05f8b39c0af32aa57ce3589c1aac2d712213
| * Streamline Qt5 detection on macOSAlexandru Croitor2017-08-241-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This consists of a few things: - Remove the detection and usage of ALTERNATIVE_QT_INCLUDE_DIR in setup.py, because CMake takes care of finding the correct Qt include headers. - Add detection of framework / non-framework includes in the CMake rules, instead of in the setup.py script. - Don't pass QT_QMAKE_EXECUTABLE from setup.py to CMake, because it is not being used. It was previously used for detecting Qt4 via the CMake FindQt4.cmake file. Now it is done by find_package() which detects qmake from the environment. - Get rid of the old "/Library/Frameworks" QT_INCLUDE_DIR, which was where the official Qt 4.8.x packages installed Qt. - Deprecate usage of ALTERNATIVE_QT_INCLUDE_DIR. Now it is only used if CMake fails to detect the proper include headers of Qt5 (which should not happen). Change-Id: I829b92bc0d40ae7eb418be27c735fc095e557820 Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2017-07-141-17/+40
|\| | | | | | | Change-Id: I1dd2958b252b82e8699e8d2212afdce0086a16d2
| * Fix Windows module extensions and tests to work with --debug buildAlexandru Croitor2017-07-121-14/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the same imp.get_suffixes() mechanism as on Unix, to determine the suffix part of module extension files. This fixes debug builds to work on Windows. Note that the whole build stack has to use the same configuration, no mixing is allowed on Windows. For release build you need: python.exe + setup.py without --debug flag + release build of Qt5. For debug build you need: python_d.exe + setup.py with --debug flag + debug build of Qt5. Change-Id: I6188c859b5757d11e87d6a9e32b9ba558f7f609e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
| * Improve suffix names for shared libraries and cmake config filesAlexandru Croitor2017-07-121-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change decouples the naming of general shared libraries, python module extensions, and cmake configuration files. All of them are now computed depending on the python version and python build configuration, and can also be manually set via CMake variables. The module extensions names now use the most detailed 'import' prefix, which usually informs whether a debug or release python was used, or the Python ABI flags (for Python >= 3.2). When a debug Python interpreter is used for building PySide2, the preprocessor define Py_Debug is now correctly propagated to PySide2 sources, which fixes previous crashes in debug builds. This affects only Linux and macOS builds. There is a subsequent change for making it work for Windows builds. All in all, this now allows proper mixing of debug / release versions of the Python interpreter with debug / release versions of PySide2 on Linux and macOS. Task-number: PYSIDE-508 Change-Id: I88a05c3ada0fb32c7c29bdb86d7a2c15acc963b8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2017-06-091-1/+1
|\| | | | | | | Change-Id: I73f39966a2af7aa935e1890e29c9b71573aae97c
| * utils: Handle SymlinksFriedemann Kleint2017-06-091-1/+1
| | | | | | | | | | | | | | | | | | Try to recreate the .so version symlinks correctly on Linux instead of copying the files. Task-number: PYSIDE-526 Change-Id: I3b015efe4f2f57abe418f171a8631d194ed08f65 Reviewed-by: Christian Tismer <tismer@stackless.com>
* | testrunner.py/Windows: Add Clang to the pathFriedemann Kleint2017-06-061-17/+1
| | | | | | | | | | | | | | | | | | | | | | It is required for shiboken's ApiExtractor tests. Move subroutine detectClang into utils.py for usage by testrunner.py/setup.py. Task-number: PYSIDE-431 Change-Id: I9f1984ea9fc9857ad3e7fddf621884fdc96ef52f Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2017-06-021-1/+1
|\| | | | | | | Change-Id: Ia6485d1b1caa93c4ecdd02b0544f19d197a43fb0
| * Fix .so filter for LinuxFriedemann Kleint2017-06-021-1/+1
| | | | | | | | | | | | | | | | | | | | Previously, libpyside.so would not match .so.* and so, the libraries were not copied. Task-number: PYSIDE-526 Change-Id: I407db564beaee1f443dc7b816bc0bf798c8aacf1 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2017-05-231-9/+7
|\| | | | | | | Change-Id: Iae075ebf8614dd016166bcb5f105f695e7dc3de2
| * setup.py/prepare_coin_sources.py: Adapt to repository mergeFriedemann Kleint2017-05-231-7/+7
| | | | | | | | | | | | | | | | Remove the former submodules pyside2/shiboken2 from the modules lists. Change-Id: I41de78f5519c24cce1e649eaf3b2f2d1cabcc9b0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | setup.py/Windows: Add Clang to PATHFriedemann Kleint2017-05-191-1/+31
| | | | | | | | | | | | | | | | | | | | This removes the need for PATH to be added by COIN and makes provisioning easier. It should be revisited once Clang is shipped as 3rdparty library for Qt. Task-number: PYSIDE-431 Change-Id: I6868a2cfda4b519065c8db33e0779e6c48ba9fae Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.9Friedemann Kleint2017-05-191-19/+49
|\| | | | | | | Change-Id: I551cb95411e934d2a9f2b747ca70cf9a063b65c1
| * Fix Python libraries to be found for macOS Python 2.6 interpreterAlexandru Croitor2017-05-031-18/+40
| | | | | | | | | | Change-Id: I0dbd65a23bde599f923811c74d0565f329116c93 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Fix Python libraries to be found on OpenSuSE 13.01Alexandru Croitor2017-05-031-0/+2
| | | | | | | | | | Change-Id: I8bc9f18e5e85ff22ab4e6f24d9bf0917730b7a23 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Fix syntax error for format method on Python 2.6Alexandru Croitor2017-05-031-2/+2
| | | | | | | | | | Change-Id: I5f2ecb29ca904b6b5a011f461debda62f38dbdc2 Reviewed-by: Christian Tismer <tismer@stackless.com>
| * Fix CMake bug where incorrect CMAKE_OSX_SYSROOT was chosenAlexandru Croitor2017-04-281-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | Apparently in earlier versions of CMake, if the OS version found in CMAKE_OSX_DEPLOYMENT_TARGET did not have a corresponding SDK with the same version in XCode, the CMake build would fail. Make sure to use the latest SDK available to XCode. Change-Id: Ie2317c1d285377b0cd5c7a75c94628b03aef557e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>