summaryrefslogtreecommitdiffstats
path: root/util/cmake/helper.py
Commit message (Collapse)AuthorAgeFilesLines
* CMake: Add library mapping for xcb-fixesLeander Beernaert2020-04-151-0/+7
| | | | | Change-Id: Ida893674fa0782446acdac4ee5dfec4849d4605f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Update pro2cmake and friend to convert QtVirtualkeyboardLeander Beernaert2020-04-151-0/+1
| | | | | | | | | | | | Expand $$MODULE_BASE_DIR to ${QT_BUILD_DIR}. Add library mappings for Hunspell. Add test mappings for QtVirtualKeyboard regarding 3rdparty Hunspell and T9Write. Change-Id: Ief007456d0471cbcf9a03d819291edec5f63680f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Add library mapping for QtHttpServerMikhail Svetkin2020-04-091-0/+6
| | | | | Change-Id: I3e12f164f7f6891c60c0d9da700b888850021e53 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Handle finding of OpenSSL headers correctlyAlexandru Croitor2020-04-081-5/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Coin when provisioning for Android, we download and configure the OpenSSL package, but don't actually build it. This means that find_package(OpenSSL) can find the headers, but not the library, and thus the package is marked as not found. Previously the openssl_headers feature used the result of finding the OpenSSL package, which led to it being disabled in the above described Android case. Introduce 2 new find scripts FindWrapOpenSSL and FindWrapOpenSSLHeaders. FindWrapOpenSSLHeaders wraps FindOpenSSL, and checks if the headers were found, regardless of the OpenSSL_FOUND value, which can be used for implementing the openssl_headers feature. FindWrapOpenSSL uses FindWrapOpenSSLHeaders, and simply wraps the OpenSSL target if available. The find scripts also have to set CMAKE_FIND_ROOT_PATH for Android. Otherwise when someone passes in an OPENSSL_ROOT_DIR, its value will always be prepended to the Android sysroot, causing the package not to be found. Adjust the mapping in helper.py to use the targets created by these find scripts. This also replaces the openssl/nolink target. Adjust the projects and tests to use the new target names. Adjust the compile tests for dtls and oscp to use the WrapOpenSSLHeaders target, so that the features can be enabled even if the library is dlopen-ed (like on Android). Task-number: QTBUG-83371 Change-Id: I738600e5aafef47a57e1db070be40116ca8ab995 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Add Qt Core5Compat to the library mappingSona Kurazyan2020-04-031-0/+1
| | | | | | Change-Id: Iad613c75705b09f7ae043cff417b0fcf3f5dd946 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Make sure that the library config.test is used for assimpAlexandru Croitor2020-04-031-1/+9
| | | | | | Change-Id: Ia5b2a2ffca2dda460a323fd3f564c548be84c0aa Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Add support for bundled SQLite libraryLeander Beernaert2020-03-251-0/+1
| | | | | Change-Id: I4d3f6e3bf04eb2fcf337e2c5dbc04b6e6f8ebe0b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Remove APPLE prefix from platform namesTor Arne Vestbø2020-03-161-8/+8
| | | | | | | None of the other platforms have it. Change-Id: Ib448c2c03ba03f711b507ef391977c0e6aa7c192 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Fix naming when referring to Apple macOSTor Arne Vestbø2020-03-161-4/+4
| | | | | Change-Id: Iafb5e448d0d65d42f788464fc600594a5666f9af Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Reformat the python scripts using blackAlexandru Croitor2020-03-121-9/+18
| | | | | | Change-Id: I1e2eba46eb7c9dfefd267be91790be7898634c3a Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Remove old 3rdparty mechanism for double conversionAlexandru Croitor2020-03-101-1/+1
| | | | | | Change-Id: I2b20d4d9d95a1f7f59bc506046a1ebc20eb305f7 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Handle configure.json library testsLeander Beernaert2020-03-061-2/+13
| | | | | | | | | | | | | | | | | | | This patch updates configurejson2cmake.py to generate compile tests for library entries. The test also support the inherit keyword, which is currently limited to one level of inheritance. LibraryMapping has been extended with a test_library_overwrite as a means to overwrite the mapped library during a compile test. Certain tests such as openssl_headers form src/network are mapped with *_nolink libraries which do not exist when the test is run. Failing to do so will cause the test to run as it is skipped when the library target isn't found. To avoid redundant checks, the library tests need to be opt in by setting run_library_test to True on an instance of LibraryMapping. Change-Id: I607b24eda389fa67afad301c616e31bb7ab38d20 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Allow building bundled 3rd party libraries in qtbaseAlexandru Croitor2020-02-251-12/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A few things are needed to accomplish that: - the python scripts do not ignore certain system_foo features anymore (it is a hardcoded list for now just to be safe) - configurejson2cmake now outputs qt_find_package(WrapSystemFoo) calls for bundled libraries (see below) - the harfbuzz .pro file is modified to accommodate pro2cmake not being able to correctly parse some conditional scopes - the freetype .pro file is modified to make sure linking of the library succeeds without duplicate symbol errors, which qmake doesn't encounter due to magical exclusion of cpp files that are included in other cpp files (presumably for include moc_foo.cpp support) - feature evaluation for Core, Gui, Network now happens in the qtbase/src directory, so that bundled libraries can be conditionally built - for each bundled library there are now two FindWrap scripts: - FindWrapSystemFoo which finds an installed library in the system - FindWrapFoo which either uses the system installed library or the built bundled one depending on a condition - projects that intend to use bundled libraries need to link against WrapFoo::WrapFoo instead of WrapSystemFoo::WrapSystemFoo targets (this is handled by pro2cmake). Unfortunately manually added qt_find_package(WrapFoo) calls might still be needed as is the case for WrapFreetype and others. - a new cmake/QtFindWrapHelper.cmake file is added that provides a macro to simplify creation of WrapFoo targets that link against a bundled or system library. The implementation is fairly ugly due to CMake macro constraints, but it was deemed better than copy-pasting a bunch of almost identical code across all FindWrapFoo.cmake files. - a qtzlib header-only module is now created when using bundled zlib, to provide public syncqt created headers for consumers that need them. These are projects that have 'QT_PRIVATE += zlib-private' in their .pro files (e.g. qtimageformats, qtlocation, qt3d, etc.) This is unfortunately needed due to QtNetwork using zlib types in its private C++ API. The change includes support for building the following bundled libraries: - zlib - libpng - libjpeg - Freetype - Harfbuzz-ng - PCRE2 The following 3rd party libraries are still using an old implementation within the CMake build system, and should be migrated to the new one in the near future: - double-conversion - Old harfbuzz The are a few libraries that are not yet ported: - system-sqlite - systemxcb - maybe others Among other things, this change allows building qtbase on Windows without requiring vcpkg. Task-number: QTBUG-82167 Change-Id: I35ecea0d832f66c1943c82e618de4a51440971a5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
* CMake: Fix X11 and xkb library usage in the platform projectsAlexandru Croitor2020-02-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | This is a prerequisite for building the bundled 3rd party libraries. Because the feature evaluation will be moved into src/CMakeLists.txt, some of the X11 packages were found in the src dir, and then a second time inside the x11-related projects. These qt_find_package calls in the x11 related projects tried to promote the imported targets to global, which failed, because they were created in a different directory scope. To avoid this, the special case qt_find_package calls are removed from the nested projects. Also, fix the mapping of some of the x11 libraries to be correct - xkbcommon_x11 was incorrectly mapped to XKB::XKB instead of the xkb common x11 library - xlib was mapped to xcb, whereas X11 is the correct CMake target Change-Id: I30781b2ecbdd478c98419b14baa0492037e49c61 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Move QOpenGLWidget from QtOpenGL to its own moduleJohan Klokkhammer Helsing2020-02-181-0/+1
| | | | | | | | Same pattern as QtQuickWidgets. Gets rid of QtOpenGL's dependency on QtWidgets. Task-number: QTBUG-74409 Change-Id: I4f9b55c23e25a1e0519734037b768a16e870c7d2 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Add library mapping for QtShaderToolsMårten Nordheim2020-02-121-0/+1
| | | | | | Change-Id: Ideefd13d75bdd4e0463c0f7b1e15c0781cfffe8c Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add necessities for qtquick3dMårten Nordheim2020-02-061-0/+1
| | | | | Change-Id: I39aadda7ed2b088a475ba5f940d1cb65b5b62f94 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Run make formatLeander Beernaert2020-01-161-6/+2
| | | | | Change-Id: If1107aefbfd374d6b664a94b21b9bbb5ed4cc178 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add library mappings for QtAxContainer and QtWekKitWidgetsLeander Beernaert2019-12-111-0/+6
| | | | | Change-Id: I5d5b77e86437f752465bf8ae7c6dd6730b3bf471 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add library mapping for QtToolsLeander Beernaert2019-12-091-0/+3
| | | | | | Change-Id: I59fdad5b56875b965a4831b07b5d8d13f9d7b10f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
* Post merge fixesLeander Beernaert2019-11-251-0/+6
| | | | | Change-Id: I78d3c9687f99c0a32da04257e297e88ef0b02581 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add FindWrapHarfbuzzAlexandru Croitor2019-11-251-1/+1
| | | | | | | | | | Apparently we didn't have a wrap find module for it before. Add one, and add special support to handle a Gentoo broken Config file which is exported by an autotools build of harbuzz. Change-Id: I83cbeb817caf2610104c16713d4eac6ab6f8c63b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CMake Build Bot
* Fix formatting in helper.pyLeander Beernaert2019-11-251-5/+9
| | | | | Change-Id: I8ee2abd27064bfc5bf3f291c2743570d11227fcf Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add parts needed for QtQuick3DMårten Nordheim2019-11-221-6/+5
| | | | | | | | | | | There is a patch in progress to add mappings for Qt3D, so reuse the old broken Qt3D mappings, delete the duplicates. QtOpenGLExtensions is needed, so this patch includes it. Change-Id: I27896ee88b9e6873c8cd52d86afc330e309e1e14 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
* pro2cmake: Reformat code with blackAlexandru Croitor2019-11-131-1/+4
| | | | | | | Change-Id: I699031d4a05dad84a0807039dcdba17fd5acf2e3 Reviewed-by: Qt CMake Build Bot Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add mapping entry for LinuxOfonoSupportLeander Beernaert2019-11-121-0/+3
| | | | | Change-Id: I4c88b58cad6b4f4a88f02a38dd84d3a667bcc063 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Regenerate files after dev -> wip/cmake mergeAlexandru Croitor2019-10-141-0/+1
| | | | | | | | | | Note the following bigger things that had to be done: Handle GSS library / feature with a new custom find module. Implement rudimentary support for relocatability (does not currently handle extprefix). Change-Id: Ic6cd27dda7ebca9829f51cb42ea76fff6d1767ef Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix styling of configurejson2cmake script to make flake8 happyAlexandru Croitor2019-10-111-2/+2
| | | | | | | Amends a986455d108d99ebc8234b9bfab2407c33422e41 Change-Id: I5a6327f5bfd9d73e518f0ec1d9bb418282c45077 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* configurejson2cmake: Re-add wayland_server library for qtbaseAlexandru Croitor2019-10-111-1/+2
| | | | | | | | | | Now there are two of them, one used in qtbase and one in qtwayland. In the future we should merge them. Amends 08aba5ea0ab4196779c79a4e8d8ba6d510b14e12 Change-Id: Ife98df28c762836277a02a34dd07e82ce7a1e871 Reviewed-by: Johan Helsing <johan.helsing@qt.io>
* cmake scripts: format with blackFrederik Gladhorn2019-10-111-4/+11
| | | | | | | | There is agreement to use black for formatting, run it and make flake8 happy with its output. Change-Id: I800d764a50cacba0eac1d8efb5c1dee0cf10a4ad Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* cmake scripts: flake8 cleanupFrederik Gladhorn2019-10-101-1/+1
| | | | | | | At least setting the example install dir looks like a bug. Change-Id: Ibcced739d05de5445fa455e509cc6f42b9ed935b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake scripts: do not redefine built-insFrederik Gladhorn2019-10-081-3/+3
| | | | | | | | Try not to override built-ins, the code becomes confusing to editors and people. Change-Id: I9e9421e1506a206551ccfc550f882a075e208181 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
* Make SDL2 library-mapping use a wrapperMårten Nordheim2019-10-031-1/+1
| | | | | | | | | | Since at least one system provides config files without an included target. Change-Id: If1f336aab4cec9704412349d7951849ee8c3dabb Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Qt CMake Build Bot
* pro2cmake: Add qtremoteobjectsJoerg Bornemann2019-10-011-0/+1
| | | | | | Change-Id: I6cb2ee0c83e0dd3bf830a063f5790e35cbf73285 Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add CMake support for directfb plug-inJean-Michaël Celerier2019-09-301-0/+1
| | | | | | Change-Id: I126545e1da54018ce081b42a29e62ca30ee04d64 Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Add BlueZ to the list of libraries used by Qt (connectivity)Oliver Wolff2019-09-251-0/+1
| | | | | | | Task-number: QTBUG-78181 Change-Id: I4eda42c4e42ccb28ebb64eb060d02a33c3af6b03 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
* CMake: Add missing library-mappings for QtWaylandJohan Klokkhammer Helsing2019-09-251-0/+6
| | | | | | | | | | I haven't checked if the config for wayland-kms actually works, as that requires building for a target that supports it (RCar M3 or similar). Task-number: QTBUG-78177 Change-Id: Ib30a63a4e5feb955d17763c37e32ad3f2c13d358 Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Adapt string formatting in util/cmakeCristian Maureira-Fredes2019-09-211-12/+8
| | | | | | | | Second and final batch of changes related to string formatting styling. Change-Id: Ifc0e999ee95fe52fd076ac2f001b4a58f82ab5be Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add platform mapping for emscriptenSimon Hausmann2019-09-201-0/+1
| | | | | | | | EMSCRIPTEN is the name in cmake land as per emscripten's toolchain file. Change-Id: I11fa444204003f25f14fbf993ecf6766bf37d884 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* cmake: Add scxml to the library mappingJoerg Bornemann2019-09-191-0/+1
| | | | | | Change-Id: I86653af25fbbc2d269eb439ceefaa2f4d4ebde28 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
* Add SDL2 to 3rd-party library mappingMårten Nordheim2019-09-181-0/+1
| | | | | | Change-Id: I9f9df259340271b22a75ddfa6112ecba0f25bbbf Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Improve styling of util/cmake scriptsCristian Maureira-Fredes2019-09-181-287/+508
| | | | | | | | | | | | | | | | | | | | | | flake8 was used to evaluate the file, with a couple of exeptions: E501,E266,W503 black was used to reformat the code automatically The changes were: * Added a README that explains how to use pipenv and pip, * Remove unnecessary return statements, * Remove '\' from the end of the lines, * Use f-strings (>= 3.6) since we are requiring Python 3.7, * Commenting unused variables, * Adding assert when Python >= 3.7 is not being used, * Wrapping long lines to 100 (Qt Style), * Re-factoring some lines, * Re-ordering imports, * Naming `except` for sympy (SympifyError, TypeError) Change-Id: Ie05f754e7d8ee4bf427117c58e0eb1b903202933 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: add Qt::TextToSpeech to library mappingFrederik Gladhorn2019-09-181-0/+1
| | | | | Change-Id: Ib682dede7d8e99461b146e9ef71e6d455daa8b6e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* CMake: add library mapping for QtSpeechFrederik Gladhorn2019-09-181-0/+3
| | | | | | Change-Id: I274e7382b1593dcb010f5f03ba0e2ccc9a37e5b8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
* cmake: Add library mappings for qtwaylandJohan Klokkhammer Helsing2019-09-171-1/+5
| | | | | | Change-Id: I9d394229073579df104e21c539bbbb614ef8efbd Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
* Add initial support for QtKnx cmakeKarsten Heimrich2019-09-171-0/+1
| | | | | | Change-Id: I419d15ca0bb0b02e11001b75d0c612dddfa3abec Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
* Add a mapping for QtSerialBusAlex Blasche2019-09-171-0/+1
| | | | | Change-Id: I3664dfe5a7aa064ea4fa8f9455242815a359f346 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add Qt Coap to the library mappingSona Kurazyan2019-09-171-0/+1
| | | | | | Task-number: QTBUG-78308 Change-Id: I6ba6f84354d7d008e128c784e24db00ecd67647a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake: Enable building of the oci pluginVille Voutilainen2019-09-051-0/+1
| | | | | | Change-Id: I003d6da10c7e47402fb373d3956817817328cf0f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CMake Build Bot
* cmake: Enable building of the db2 pluginVille Voutilainen2019-09-041-0/+1
| | | | | | Change-Id: I26810cccba5f3128cb47e0bf53b5ec78de2eec8c Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>