aboutsummaryrefslogtreecommitdiffstats
path: root/build_scripts
Commit message (Collapse)AuthorAgeFilesLines
* Fix wrong "only package" condition in build_scripts/main.pyAlexandru Croitor2019-10-071-1/+1
| | | | | | | | | | | | build_extension was meant to not run either when --only-package is passed, or when the shiboken-generator is built as part of a top-level build. Fix the condition to represent that. Amends 43fe3494a9d902034896e3afa7b5158c77163be0 Change-Id: I9dbc8694b932c88227fcd3a987cd1413bc55c286 Reviewed-by: Simo Fält <simo.falt@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Disable Android target from CISimo Fält2019-09-201-1/+1
| | | | | Change-Id: I4945620d3328cfd26a713306730beb64445136f4 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Merge remote-tracking branch 'origin/5.12' into 5.13Jukka Jokiniva2019-08-272-1/+2
|\ | | | | | | Change-Id: Id820dfc57338b9630b77448a697aa9da029ddadf
| * Add Proprietary License to be show in metadataSimo Fält2019-08-261-0/+1
| | | | | | | | | | | | | | | | | | | | Adding Proprietary License to METADATA to indicate possibility for commercial licencing. License will be shown in pypi.org with LGPL possibility. Change-Id: Ic389adc2a867b9ea1118574fdf627e78acb02ba2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
| * Fix Xcode sdk value embedded into PySide2 binariesAlexandru Croitor2019-08-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously when building on the Coin VMs, the incorrect Xcode sdk value of "10.0" was embedded into all the built shiboken and PySide2 binaries. This causes issues when trying to notarize a PySide2 app. The reason why this happens is described as a long investigation on the respective bug report. The fix is to ask xcrun to report an SDK path which contains the version number in the SDK path (/path/to/MacOSX10.14.sdk vs just /path/to/MacOSX.sdk). Change-Id: I3f02510953e2f54032c19a48cb8a7162814bf9e7 Fixes: PYSIDE-1066 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Simo Fält <simo.falt@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into 5.13Friedemann Kleint2019-08-161-1/+2
|\| | | | | | | Change-Id: I0f71c6ca75fae7e1eff6675d787891507d4dd965
| * Exclude SLES_12,15 from COIN buildsFriedemann Kleint2019-08-151-1/+2
| | | | | | | | | | | | Change-Id: I6ba6cb1799837ebcf093404ca3415c893584f21e Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Simo Fält <simo.falt@qt.io>
* | Unpin wheel packageSimo Fält2019-06-181-7/+0
|/ | | | | | | | The fix we were waiting for has landed to released wheel package. Change-Id: I1d83be7cd9662ca2e076e9c03c03c38f1b0c9ecb Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Disable Ubuntu 18.04 NoGui configuration from CISimo Fält2019-05-311-1/+1
| | | | | | Change-Id: I57783a5da7b403e45463068900c1248fbd3651f9 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Avoid too much stickiness when using --reuse-buildChristian Tismer2019-04-261-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We had some unwanted cache effects and needed to manually remove certain files before building. Otherwise it could happen that a build pretended to be ok, although there was a bug that prevented generation of the ".pyi" files. Further investigation showed: Using option "--reuse-build" with "no" and then with "yes" creates errors in the signature module. This makes "reuse-build" useless in this case. We now add an "a" to "pyside3d_build" as "pside3da_build" if "--limited-api=yes" was given. (different proposals welcome.) That solved most of the stickiness problems. A left-over lock directory is removed now, since it would prevent re-computation of the .pyi files. This is implemented by a recursive call to the script, where the subprocess does the work and the main process checks if there was a crash and removes the lock. The "--skip" parameter of generate_pyi.py was refined: When set, it is checked if the time stamp of all imported modules is less than the ".pyi" file time stamp. Only then the generation is skipped. By editing any involved python file, the ".pyi" files will be regenerated. Task-number: PYSIDE-560 Change-Id: I1b1d8ffbc58db3d4b38bf65e3795efcad7e7870c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Automatically Test Small Example With PyInstallerChristian Tismer2019-04-081-1/+1
| | | | | | | | | | | | | | | | | | | A simple hello.py script was modified for running in PyInstaller and stopping to execute after 2 seconds. The reason is to test that PyInstaller works correctly together with the embedded mode of the signature extension on all platforms. The script did first not work on Windows. This is now solved, after an import in pyside2_config.py is fixed. Currently, there are several configuration errors in COIN. Errors are therefore skipped in the PyInstaller build. The test tests only if the generated script works. Change-Id: I7a1b1e738d523b83cc3fe5beafa7e2579f9c7f48 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Use correct environment variable to detect when running in CoinAlexandru Croitor2019-04-081-2/+2
| | | | | | | | | | | | | | | | | | The code for shipping MSVC redist dlls used to check for the "QTEST_ENVIRONMENT" environment variable to decide when to download and extract the libraries. This was incorrect, because it is only set in a Coin test phase, and not when building the project. Revert to using the old "COIN_LAUNCH_PARAMETERS" environment variable which is set during the Coin build phase. Amends 9e13465a992a5079c0a038e5f9417896dcfd6f3a . Fixes: PYSIDE-993 Change-Id: I96d1e010ffc4b3a5951bdd28699f657e3a5f4a3f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Log for debug purposes whenever MSVC redist is not downloadedAlexandru Croitor2019-04-081-0/+2
| | | | | | | | | Will be easier to see from Coin logs when it happens. Task-number: PYSIDE-993 Change-Id: I5eeb36c32be2e2e6c32eb8a5d7136797d4a925a2 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Say hello to qp5_tool.pyFriedemann Kleint2019-03-051-0/+261
| | | | | | | | | | | | | | | | | qp5_tool.py is a developer helper tool modeled after the qt5_tool Perl script of Qt 5. It maintains a configuration file where per-directory values (build options, module subsets) can be given. Creating an up-to-date Build is then done by calling: python build_scripts/qp5_tool.py -c -p -b in each directory, Change-Id: Ifdcf414f7ff89512bb81a132c0bfd2e49275ed24 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Move the .pyqtc files to .pyproject filesFriedemann Kleint2019-03-012-18/+9
| | | | | | | Use the new project file format. Change-Id: I69f488c285343500edd999b746ce244a56504030 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add dependency version for shiboken2Cristian Maureira-Fredes2019-02-131-2/+2
| | | | | | | | | | | | | | | | | Since we specify: install_requires = ["shiboken2"] without a version, when trying to install: pip install PySide2==5.12.0 will install the latest shiboken version (5.12.1), and then of course there will be many issues related to the mismatch. This patch add the package_version to the shiboken2 dependency. Fixes: PYSIDE-929 Change-Id: I459cb22fc1506acfc861d33044bc3f7d2a85d85a Reviewed-by: Simo Fält <simo.falt@qt.io>
* setup.py: Retry to downloading dependenciesFriedemann Kleint2019-02-111-4/+9
| | | | | | | Fix frequent timeouts in COIN. Change-Id: I2a85fd6a72891a937a758e0f5c38aacdcb83de8f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix environment check regarding msvc redist libraries, take 2Friedemann Kleint2019-02-111-1/+1
| | | | | | | Check the bool value. Amends 263df6601717b52237f62c08ad1f6bc536093e45 Change-Id: Ibcca3e34477da80999e87918ff03cf1639bc40d5 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Modernize cmake buildAlexandru Croitor2019-02-072-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a CMake super project that includes the shiboken2, PySide2 and pyside2-tools subprojects, so that it's possible to build everything from Qt Creator (or any other IDE that supports CMake) with minimal set up effort, and thus inform the IDE CMake integration of all relevant files, for easier code editing, navigation and refactoring. This also lays the foundation for allowing 3rd parties to use the shiboken2 generator to generate custom modules. This is achieved by eliminating various hardcoded paths for libraries and include directories. Start using CMake targets throughout the build code to correctly propagate link flags and include dirs for libshiboken and shiboken2 executable targets. Same for the libpyside target. Generate two separate cmake config files (build-tree / install-tree) that can be used with find_package(Shiboken2), to make sure that the PySide2 project can be built as part of the super project build. This is currently the only way I've found to allow the super build to work. Note that for the build-tree find_package() to work, the CMAKE_MODULE_PATH has to be adjusted in the super project file. The generated config files contain variables and logic that allow usage of the installed shiboken package in downstream projects (PySide2). This involves things like getting the includes and libraries for the currently found python interpreter, the shiboken build type (release or debug), was shiboken built with limited api support, etc. Generate 2 separate (build-tree and install-tree) config files for PySide2, similar to how it's done for the shiboken case, for pyside2-tools to build correctly. Install shiboken2 target files using install(EXPORT) to allow building PySide2 with an installed Shiboken2 package (as opposed to one that is built as part of the super project). Same with PySide2 targets for pyside2-tools subproject. Make sure not to redefine uninstall targets if they are already defined. Add a --shorter-paths setup.py option, which would be used by the Windows CI, to circumvent creating paths that are too long, and thus avoiding build issues. Output the build characteristics / classifiers into the generated build_history/YYYY-MM-DD_AAAAAA/build_dir.txt file, so it can be used by the test runner to properly filter out blacklisted tests. This was necessary due to the shorter paths options. Fix various issues regarding target includes and library dependencies. Remove certain duplicated cmake code (like limited api check and build type checks) in PySide2, given that that information will now be present in the exported shiboken2 config file. Include a short README.cmake.md file that describes how to build the super project. References used https://rix0r.nl/blog/2015/08/13/cmake-guide/ https://pabloariasal.github.io/2018/02/19/its-time-to-do-cmake-right/ https://gist.github.com/mbinna/c61dbb39bca0e4fb7d1f73b0d66a4fd1 https://cliutils.gitlab.io/modern-cmake/chapters/basics/functions.html https://cmake.org/cmake/help/v3.0/manual/cmake-packages.7.html https://github.com/ComicSansMS/libstratcom/blob/master/CMakeLists.txt Abandoned approach using ExternalProject references: https://cmake.org/cmake/help/latest/module/ExternalProject.html https://stackoverflow.com/questions/44990964/how-to-perform-cmakefind-package-at-build-stage-only Fixes: PYSIDE-919 Change-Id: Iaa15d20b279a04c5e16ce2795d03f912bc44a389 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Build scripts: Make location of 7z a bit smarter on WindowsFriedemann Kleint2019-02-061-2/+12
| | | | | | | | Check for the default install location in case it was not added to the path. Change-Id: I6f21353147552ed6f556f79878e6ba89dc40cb43 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix environment check regarding msvc redist librariesAlexandru Croitor2019-02-061-2/+1
| | | | | | | | Empty string is not the same as None. This caused the redist libraries to always be downloaded. Change-Id: Ib4951ba0e56c87749aa85cb3b815ce222ecb95cd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Avoid __pycache__ directoriesCristian Maureira-Fredes2019-02-062-2/+12
| | | | | | | | We are currently shipping the __pycache__ directory of the examples, so this filter will remove them. Change-Id: Ia387108d8867cf08f8bfc2677f166fb33b521ad5 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix shiboken description issueCristian Maureira-Fredes2019-02-011-2/+2
| | | | | | | | | | The comma at the end of the string generate an ugly tuple-like string on pypi. Change-Id: I3fb9b1d23fad939dc46c3e323dd95210eab8da2c Reviewed-by: Simo Fält <simo.falt@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Include MSVC dlls in the shiboken module packageAlexandru Croitor2019-01-311-22/+41
| | | | | | | | | | | | | The libshiboken library uses C++ code, therefore we have to ship the MSVC redistributable DLLs along with it. They were distributed before for the shiboken2-generator package, but not for the module package. Amends 43fe3494a9d902034896e3afa7b5158c77163be0 Fixes: PYSIDE-914 Change-Id: I5981bfbcf3316e7742a0854051ddbd3b4bf4a938 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Disable WebAssembly config from CISimo Fält2019-01-221-1/+1
| | | | | | | Qt for Python is not supporting that configuration. Change-Id: I4821ca84c1706cc60d3d43d5f20efbbda10e9c07 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* setup.py: Fix running under non-UTF8 localeFriedemann Kleint2019-01-162-5/+2
| | | | | | | | | | Redirecting stderr to stdout causes an error when running under non-UTF8 locales. For the build scripts, it is also not desired to mix the output channels, so, remove the redirection. Change-Id: I6e3d05ede00537c3cc4c022780e8d0ed27bb0cad Fixes: PYSIDE-880 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix wrong METADATA for generated wheelsCristian Maureira-Fredes2019-01-111-3/+2
| | | | | | | | | | | | | | | | | | | | | For the 5.12.0 release, we noticed that a couple of strings in the wheel METADATA were not properly formed. The first case was the type of the description content: 'text/markdown', got interpreted as a tuple ('text/markdown',), which was not recognize as a valid format. The second issue was the summary. It was a two-line string: ('Python bindings ... ', '....') which got wrongly parsed, and we ended up missing some title information, and even getting the parenthesis on the description. Change-Id: I2f3e8b23e3d9a39355e6eb30ab79f581bde33d30 Fixes: PYSIDE-874 Task-number: QTQAINFRA-2455 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Make quiet builds really quietAlexandru Croitor2018-12-075-38/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change does a couple of things: - Sets the distutils / setuptools --verbose option to 0 - Sets the distutils / setuptools --quiet option to 1 - The options above end up calling distutils.log.set_verbosity(0) - Passes the QUIET_BUILD cmake option from setup.py to every CMake invocation, when --quiet is passed to setup.py - Sets the CMAKE_INSTALL_MESSAGE variable to silence messages regarding installation of files - Sets the CMAKE_RULE_MESSAGES variable to disable progress report in makefiles when building each source file - Overrides the CMake message function, not to display STATUS / info / untyped messages (still displays warnings and errors) - Changes the build / install elapsed time messages to always be printed even in quiet mode - Reverts the previously introduced set_quiet function in utils, because log.set_verbosity() now takes care of silencing those messages As a result, there's a lot less clutter when doing a quiet build. Warnings, errors and shiboken output is still displayed. Change-Id: Ie05c593ce7dc0aa04554c2d2859ce655233ddb9f Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Generate Hinting Stubs AutomaticallyChristian Tismer2018-12-032-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The script is now automatically called in the cmake build, as part of the create_pyside_module macro. The script runs after every module build and tries to generate .pyi files. This does not need to succeed, but will generate all files in the end. The script has been prepared to allow partial runs without overhead. After integration of the .pyi generation into cmake, these files are also installed into the install directory by cmake. For wheel building, setup.py has entries, too. Building a full project with all modules revealed a bug in the signature module that allowed unsupported function objects. Module enum_sig had to be changed to suppress types which have no ancestry in shiboken. PYTHONPATH was avoided because it was not Windows compatible. Instead, the script was changed to accept "--sys-path" and "--lib-path" parameters. The latter evaluates either to PATH or LD_LIBRARY_PATH. The necessity to create .pyi files while the project is in the build process showed a hard to track down error condition in PySide_BuildSignatureProps. Simple logging was added as a start of introducing logging everywhere. Task-number: PYSIDE-735 Change-Id: I6b3eec4b823d026583e902023badedeb06fe0961 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Install snippets glue codeCristian Maureira-Fredes2018-11-282-0/+14
| | | | | | | | | | | | | The module-specific glue files as well as the standalone glue files are now installed into the PySide2 package. The glue files are now also listed as dependencies for the shiboken generator run, which means that modifying those files will now correctly force a shiboken re-run for the relevant modules. Change-Id: I545c7ada379fafb7f225d0b0f5ce495bf6d4795d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Build scripts: Add support for ninjaFriedemann Kleint2018-11-271-15/+16
| | | | | | | | | ninja will be recommended build tool/CMake generator for Qt due to its speed. Streamline the option parsing code and add it. Adapt the test runner to find the ctest command in the ninja build file. Change-Id: I61dd6fd4fb26a50af21432e10e7da86123240e0f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Build scripts: Print elapsed timeFriedemann Kleint2018-11-221-5/+8
| | | | | Change-Id: Ifdacba5202c573192b57a834df510776597ccf61 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Build scripts: Implement --quietFriedemann Kleint2018-11-213-16/+32
| | | | | | | | | Add a _verbose setting to the utils module and set it depending on option --quiet. Depending on this, suppress the messages about copying files, shortening the build log by over 1000 lines. Change-Id: I3f9abce3b145d43c4fe615f624ca4e2769a269f8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* setup.py: Deprecate option --jobsFriedemann Kleint2018-10-301-3/+14
| | | | | | | | | Check for the standard (build command) options --parallel/-j and deprecate --jobs. Fixes: PYSIDE-809 Change-Id: Ice5eaa787f84f093db6e7b3d2168332d5dfbab1f Reviewed-by: Christian Tismer <tismer@stackless.com>
* Build scripts: Fix warnings about invalid escape sequencesFriedemann Kleint2018-10-301-1/+1
| | | | | | | | | | | Fix: setup.py:243: DeprecationWarning: invalid escape sequence \O """ build_scripts\main.py:143: DeprecationWarning: invalid escape sequence \d pattern = "Programming Language :: Python :: (\d+)\.(\d+)" Change-Id: Id9574077d6ad82a5a6852d8c6e02e931f8a079de Reviewed-by: Christian Tismer <tismer@stackless.com>
* setup.py: Warn about options occurring multiple times on the command lineFriedemann Kleint2018-10-291-22/+33
| | | | | | | | | | Remove all occurrences of the option in question and output a warning should it appear multiple times. Task-number: PYSIDE-809 Change-Id: Ic78b753e28032081cd99a17da93c0deab9e85210 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Don't redirect stderr to stdout by default when calling setup.pyAlexandru Croitor2018-10-182-3/+8
| | | | | Change-Id: I49b7491be9649979f9f9487e983bdc4be355de07 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Build scripts: Fix warning about invalid escape sequencesFriedemann Kleint2018-10-171-3/+2
| | | | | | | | | | | | ...\build_scripts\utils.py:548: DeprecationWarning: invalid escape sequence \d '[\d.]+\)') ...\build_scripts\utils.py:695: DeprecationWarning: invalid escape sequence \d version_re = re.compile('(\d+)\.(\d+)\.(\d+)') Change-Id: Ic03cf2997885a5806141bf4b05527f5f005290ae Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add tests to install built wheels and build some examplesAlexandru Croitor2018-10-121-0/+10
| | | | | | | | | | | | | | | | | | | | 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>
* Allow building shiboken2 and PySide2 as separate wheelsAlexandru Croitor2018-10-1210-697/+1518
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add entry points for native toolsSimo Fält2018-10-022-0/+10
| | | | | | Task-number: PYSIDE-779 Change-Id: I3888ba58f186a2fca84414fed3243a41650f6774 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Revert "setup.py: parallel build by default"Friedemann Kleint2018-09-202-12/+1
| | | | | | | | | The default is not compatible with certain Linux accelerations. This reverts commit 99bfe460b85ccb3562e10f12972852233870e649. Change-Id: I8b6a2854adc40d6b9949a8d92f0b521a94940ba4 Reviewed-by: Christian Tismer <tismer@stackless.com>
* setup.py: parallel build by defaultAleksandr Mezin2018-09-182-1/+12
| | | | | | | | | | | | | 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>
* setup.py: Add a small Qt Creator Python project file for editingFriedemann Kleint2018-09-171-0/+13
| | | | | | Change-Id: I9165a8a5ad78909f345c505fa0a56cd58c1bb69e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Merge remote-tracking branch 'origin/5.11' into devFriedemann Kleint2018-08-291-2/+15
|\ | | | | | | Change-Id: I302543eef74bc1f3dc6340cdfab7510a66ea1b6a
| * shiboken: Fix naming of shipped libclangFriedemann Kleint2018-08-241-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | Determine the library name by resolving just one symlink so that the name containing only the major version is used as target name (libclang.so.6 instead of libclang.so.6.0 obtained by completelely resolving the symlinks). Task-number: PYSIDE-756 Change-Id: If70f292b2f1d0002d2d944fb019838ea4a623882 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Merge branch '5.11' into devAlexandru Croitor2018-07-253-15/+15
|\| | | | | | | Change-Id: I7e3add2bdd36c0fe9fe99122d35a4409fed80773
| * 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>
* | Enable macOS 10.13 in CISimo Fält2018-07-251-2/+2
| | | | | | | | | | Change-Id: Idd0f8721854614bf7ba2d9d38372627f8ed1b6b1 Reviewed-by: Christian Tismer <tismer@stackless.com>
* | Merge remote-tracking branch 'origin/5.11' into devFriedemann Kleint2018-07-131-7/+9
|\| | | | | | | Change-Id: I85c005419736d5abf65077ff259509610853af4e