aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* Shiboken: prune non-existent includeJulien Schueller2019-05-281-2/+1
| | | | | Change-Id: I58f872d1e8abf2b624f37434c14e9ef6ea912749 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix build on centOS/conda forgeFriedemann Kleint2019-05-291-0/+2
| | | | | | | | | | | - Check for the OS name case-insensitively - Use the compiler from cmake via a define - Add sysroot header directory to internal include paths - Extend centOS version to 6.10 Change-Id: Ia3977f3331d51f9bc530accb8defa5fcb648bdfe Fixes: PYSIDE-1012 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* shiboken2: Enable documentation generation with libxml2/libxsltFriedemann Kleint2019-04-251-9/+17
| | | | | | | | | | | | | | | As QtXmlPatterns is deprecated in Qt 5.14, the documentation build needs to be changed to work with libxml2/libxslt exclusively. Split the XML functionality into separate files for libxslt and Qt and provide an interface for XPATH queries and XSLT transformations in xmlutils.h. Adapt testmodifydocumentation to work on temporary files as libxslt cannot handle Qt resources. Change-Id: I923f5b2e7c1d2511f15788e4b80c7721daeb2bc3 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Modernize and clean up some of the shiboken build system filesAlexandru Croitor2019-04-201-51/+24
| | | | | | | | | | | | | | Use target_* commands instead of subdirectory based commands for adding link options, compile definitions, include directories, etc. Remove some non-used compile definitions. Move around some of the find_package() and option() calls. Simplify some of the package dependent logic. Replace the qt include and linking variables with CMake targets. Change-Id: I815595344e63a32dce3dc78652359beede3ff593 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix shiboken not to fail building when doc dependencies are missingAlexandru Croitor2019-04-181-6/+3
| | | | | | | | | | | QtXmlPatterns is now deprecated, and until we port to some other library, the CI will not have XmlPatterns anymore. Change the build system of shiboken to skip building the documentation parts if the dependency is missing. Change-Id: I75d38502cd1efa84f7ec148622ffbf26084d0c35 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* shiboken: Move the Api extractor documentation into shibokenFriedemann Kleint2019-04-031-1/+0
| | | | | | | | | | | | | | | | It does not really make sense to have it separately and the reference documentation is currently not accessible from the TOC. Move it over and append it to the TOC. Merge the chapters on ownership chapters (for starters, by simply concatenating). The Api extractor overview chapter is dropped as it is outdated anyways. Partially reverts 0d12d71920067be499d9237b4ad04f7f11047759. Task-number: PYSIDE-363 Change-Id: I02f6b0a4bb91fc54267fa03cefd2ac7d4049f07b Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@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>
* shiboken: Centralize most msg* functions in a separate fileFriedemann Kleint2018-09-101-0/+1
| | | | | | | | | This makes it easier to maintain a consistent style, unclutters the source and allows for re-using formatting helpers. Change-Id: I4f29637a22afb457f629272e2d86f14bedb36008 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* shiboken: Search for Clang builtin-includes at runtimeFriedemann Kleint2018-06-231-7/+0
| | | | | | | | | | Replace the search executed at build time by CMake by a run time search in shiboken since the location at build time typically won't match any more for the deployment case. Task-number: PYSIDE-693 Change-Id: Ib15fbba5d8c3fecf30aaae7195b88a648a7ed0fe Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add references from ApiExtractor to shiboken docCristian Maureira-Fredes2018-04-261-1/+1
| | | | | | | | | | | | | | | | | | | Including intersphinx extension allow us to link the documentation from ApiExtractor to shiboken's. ApiExtractor doc need to be build first, so we can use the inventory that sphinx create, to link it to shiboken's configuration. All the harcoded references were replaced by dynamic references. Also new labels were included to properly cross reference topics. Checked the spell on many rst files too. Task-number: PYSIDE-363 Change-Id: I11a50b1f9eee48a00a3de6f957942eb0823eba47 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add shiboken2/ApiExtractor doc generationCristian Maureira-Fredes2018-04-231-0/+3
| | | | | | | | | | | | Changed the target name because there was a conflict, and now is possible to `make doc_apiextractor` inside the *_build/shiboken2/ApiExtractor/ directory. Task-number: PYSIDE-363 Task-number: PYSIDE-221 Change-Id: I0f330166a89ba25b616b9d665a4a1fcfb2d90241 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* shiboken: Use enum values from ClangFriedemann Kleint2018-04-191-0/+1
| | | | | | | | | | | | | | Remove a lot of ugly value parsing code in favor of clang_getEnumConstantDeclValue() and clang_getEnumConstantDeclUnsignedValue() depending on the type. Introduce a class EnumValue containing a union of qint64 and quint64 values to represent signed/unsigned values correctly and use that in the code model and meta language classes. Change-Id: If2efb7cfd560237907678b8f6fdfb0bc689c0c93 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* shiboken/qtdocgenerator: Fall back to QtXmlPatterns when libxml/libxslt ↵Friedemann Kleint2018-03-071-6/+12
| | | | | | | | | | | | | | | | | cannot be found In PySide2, there is one XSL-based documentation modification which QXmlQuery can handle. However, due to QTBUG-66925, it is not a full replacement, since the issue (XPATH specifying the number of the element to match) might be useful for documentation modification. Add QtXmlPatterns as fallback and modify the test accordingly. Task-number: PYSIDE-363 Change-Id: I969fbe210725bb748d76028c6f542bae6b471a76 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix building on openSuSE and Ubuntu 16.04 CI machinesAlexandru Croitor2017-07-241-0/+7
| | | | | | | | | | | | | | | | | | | | Previously all the GCC header paths were explicitly passed to libclang, which caused redefinition errors of builtin functions or intrisics (like __rdtsc). Instead of passing the include paths explicitly, we rely on libclang itself recognizing that there are GCC paths in the default search locations. Also we need to pass the libclang builtin headers location, because it is not able to find them by itself. Usually the search location for these headers is to get the executable path location (aka the clang++ binary) and navigate to ../lib/clang/VERSION/include relative to that binary. But because the shared library is used instead of the binary, we need to explicitly pass that header location via the -isystem flag. Task-number: PYSIDE-513 Change-Id: I7c1127d85c0cea4c063c5c2a3548a1eef5eadaf3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Shiboken: Set C++ 11 globallyFriedemann Kleint2017-06-281-2/+0
| | | | | Change-Id: I17634ebc245cae87819af16d79704326905e5783 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* move everying into sources/shiboken2 (5.9 edition)Oswald Buddenhagen2017-05-221-0/+90
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.