aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/PySide2/QtGui/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* Add QColorConstants namespaceCristián Maureira-Fredes2020-09-221-0/+2
| | | | | | | | | | | The colors inside the namespace are defined: constexpr Q_DECL_UNUSED QColor Black {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; Fixes: PYSIDE-1224 Change-Id: I84ba5fae74e336ab01b3bac467c8fc6e2b45d14b Reviewed-by: Christian Tismer <tismer@stackless.com>
* CMake: Use the portable Qt feature propertiesFriedemann Kleint2020-06-301-1/+2
| | | | | | Task-number: PYSIDE-904 Change-Id: I15ebd4057c52c78d584de7c34e74ebb858cb0011 Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide2: Add QRegularExpressionValidatorFriedemann Kleint2020-06-051-0/+1
| | | | | | | It replaces the deprecated QRegExpValidator. Change-Id: I18833a3f83bdaf2e72d05c529d846aa07582884c Reviewed-by: Christian Tismer <tismer@stackless.com>
* pyside2: Prepare build system for Qt 6Friedemann Kleint2020-05-181-8/+13
| | | | | | | | | | | - Introduce a version variable to the CMakeLists. - Emulate the Qt5Core_INCLUDE_DIRS, Qt5Core_LIBRARIES variables by retrieving them from the INTERFACE - Raise the language level Task-number: PYSIDE-904 Change-Id: Ie4e43e7e6a9a2631d666038b80f306e2d9af47b1 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add bindings for Qt 5.14Friedemann Kleint2019-09-251-0/+4
| | | | | | Task-number: PYSIDE-487 Change-Id: I52b4c13f881599812a311f01937fde92ba4c0f3f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken: Make it possible to extend namespacesFriedemann Kleint2019-05-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt has some modules, where functions and classes are added to namespaces of other modules. For example, QtGui adds the free functions mightBeRichText() and convertFromPlainText() to the "Qt" namespace and Qt3DQuick adds a namespace "Quick" to the namespace "Qt3DCore" started in Qt3DCore. Shiboken was unable to handle this since the name of the index constant was derived from the namespace name and would thus clash. Also, all code model items from the base module would be re-generated into the extended namespace. To fix this: - No longer join namespace code model items in clang builder. - Search for pre-existing namespaces in traverseNamespace() before creating a new one, continuing populating it. - Add a "files" attribute taking a regular expression to match header names to the namespace type entry, making it possible to restrict code model items by files when extending namespaces (as otherwise, all base items are again added). - Add "extends" attribute specifying the package name of the namespace to extend, which will be used as base type in CPython. - Disambiguate the SBK indexes of namespaces and the init_ functions by adding the module name. Change-Id: Ib552e878911942fa4d52d2bb0c6695e5b2c4c341 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Modernize cmake buildAlexandru Croitor2019-02-071-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Make it hard to use the create_pyside_module function incorrectlyAlexandru Croitor2018-12-071-10/+9
| | | | | | | | | | | | Rewrite the function to use keyword arguments instead of ordered arguments. Also add error detection when required arguments are not passed, or have a typo in them. Adjust all the module cmake files to use keyword arguments. Change-Id: I7bb0c6561d7dca1e7f673e29eb457da50ae5df04 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Move old glue code to snippets filesCristian Maureira-Fredes2018-11-301-5/+1
| | | | | | | | | | | | | | | | | Most of the old glue code was directly injected into the typesystem, so it was possible to add them as snippets. There are still a couple of header files that will remain there, because the include tag does not have the file/snippet tags. A few lines of code were modified in favor of "modern" C++, and good practices. Task-number: PYSIDE-834 Change-Id: I3072298b16d7280550c6a7f6abae045250663ba6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Install snippets glue codeCristian Maureira-Fredes2018-11-281-3/+6
| | | | | | | | | | | | | 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>
* PySide2: Replace macro check_qt_class by the Qt configure systemFriedemann Kleint2018-10-011-4/+14
| | | | | | | | | | | | Query the feature properties of the configure system to check whether a class is present instead of running a compile test in QtGui and QtNetwork. Remove the macro invocation from QtWigets since the results (QtWidgets_OPTIONAL_SRC, QtWidgets_DROPPED_ENTRIES) were not used. Change-Id: I06e03fe1eef85f2340ab4cdb130b8b31b08f7f14 Reviewed-by: Christian Tismer <tismer@stackless.com>
* PySide2/QtGui: Fix build of Debian/armel,armh (OpenGL ES 2)Friedemann Kleint2018-08-061-4/+11
| | | | | | | | | Add optional class checks to QtGui and use them for QOpenGLTimeMonitor and QOpenGLTimerQuery. Task-number: PYSIDE-764 Change-Id: Ib33ec1d64c40f53aa31059e4ca9422707636375d Reviewed-by: Christian Tismer <tismer@stackless.com>
* QtGui: Remove duplicate entry for QAccessibleFriedemann Kleint2018-05-141-1/+0
| | | | | | | Amends e8291778cd1bab2679033cecf3f756bb2d2935ab. Change-Id: I6aa0b153575cb1eac1912e5e1970d71a0a388501 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add more QtGui classesFriedemann Kleint2018-05-111-0/+21
| | | | | | | | | | | | | | Add QAccessible, acccessibility events and interfaces. Fix the polymorphic-id-expression of the acccessibility events; they no longer inherit QEvent in Qt 5. Add QInputMethod, QInputMethodQueryEvent, QNativeGestureEvent, QScrollEvent, QScrollPrepareEvent, QOpenGLTextureBlitter and QPointingDeviceUniqueId. Task-number: PYSIDE-487 Change-Id: I609ece08cbab78d2fe75eaf6cb0b10531aac9b25 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move QStringListModel to QtCoreJulien Schueller2018-03-191-1/+0
| | | | | | | | | | Seems this was in QtGui at the time of Qt 4, but now it's in QtCore: http://doc.qt.io/archives/qt-4.8/qstringlistmodel.html http://doc.qt.io/qt-5/qstringlistmodel-members.html Task-number: PYSIDE-614 Change-Id: I918cbffd64fb8da9e81123073ff57cd2126e5cae Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Clean up pyside2_global.hFriedemann Kleint2017-11-111-0/+3
| | | | | | | | | | Make it possible to prepend or append something to the global module header by providing a .pre/.post.h file. This removes the need to have global includes and defines in pyside2_global.h and reduces module dependencies. Change-Id: I517c5765212813732b5694dcfcc86d2492e71a57 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* PySide2: Simplify typesystem path handlingFriedemann Kleint2017-11-061-4/+1
| | | | | | | | | | | | | | Modify the typesystem.xml files such that all dependent files are loaded via module (for example, QtCore/typesystem_core.xml). As a result, it is no longer necessary to add each dependent directory to the typesystem path; it is sufficient to pass the binary and source path of PySide2 and the source directory of the Qt module only. This requires rewriting the dependency checking for --reuse-build so that it loops over the source directories of the dependent Qt modules. Change-Id: Ib234c2673f4ee93cc8a3282fac69bcfcfaebd0ac Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* move everying into sources/pyside2 (5.9 edition)Oswald Buddenhagen2017-05-221-0/+224
in preparation for a subtree merge. this should not be necessary to do in a separate commit, but git is a tad stupid about following history correctly without it.