summaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* Add add_qt_manual_test()Leander Beernaert2019-11-121-1/+13
| | | | | | | | | | | This patch adds add_qt_manual_test() which is a simple wrapper around add_qt_executable() which does not build under ${CMAKE_BUILD_DIR}/bin or install the targets. This could potentially be used later to tag manual tests. Change-Id: Ic4e0a1d133009f5a858b9394347a0996cf42683f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Consider _LOADED operations as always processedAlexandru Croitor2019-11-121-0/+1
| | | | | | | To remove wrong unused keys comments from the project file. Change-Id: Ib52b1738b6136a54f6accb86156b9b2609f331c3 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
* pro2cmake: Handle operation evaluation order when including childrenAlexandru Croitor2019-11-123-43/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | Instead of processing included_children operations either before or after the parent scope, collect all operations within that scope and its included children scopes, and order them based on line number information. This requires propagating line numbers for each operation as well as line numbers for each include() statement, all the way from the parser grammar to the operator evaluation routines. This should improve operation handling for included_children (via include()), but not for regular children (introduced by ifs or elses), aka this doesn't solve the whole imperative vs declarative dilemma. Sample projects where the improvement should be seen: tests/auto/gui/kernel/qguiapplication and src/plugins/sqldrivers/sqlite. This amends f745ef0f678b42c7a350d0b427ddafeab4d38451 Change-Id: I40b8302ba6aa09b6b9986ea60eac87de8676b469 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>
* pro2cmake: Allow skipping subdirs projects via command lineAlexandru Croitor2019-11-122-0/+28
| | | | | | | | | | Pass either --skip-subdirs-project to pro2cmake or --skip-subdirs-projects to run_pro2cmake. Change-Id: Ic444858f6fc6deb3c893782c0770993aa39d5579 Reviewed-by: Qt CMake Build Bot Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Fix incorrect replacement of x86 conditionsAlexandru Croitor2019-11-121-1/+1
| | | | | | | | | | | | The regular expression used to eat the character that comes after the x86 token, which was incorrect when matching x86SimdAlways. Fix the regular expression to use a lookahead with a negative character class of word characters. Change-Id: I9ed8f9a490369bf5704b752f8bba3b7118a2cd5b Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Fix formatting and mypy errorsAlexandru Croitor2019-11-121-5/+7
| | | | | | Change-Id: Ic41998c39f5f5b890b3aa8ec43c6f3f03fee54da Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Skip errors regarding not found generated .pri filesAlexandru Croitor2019-11-121-1/+4
| | | | | | | | | | A lot of project files include files like qtsqldrivers-config.pri which do not exist when running pro2cmake. It should be safe to hide this error messages when converting projects. Change-Id: I4205010e537f67f9b276b4cb94ec30f847c43c68 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Clean up debug messagesAlexandru Croitor2019-11-122-18/+25
| | | | | | | | | | | Don't needlessly show a bunch of special case debug messages unless debugging is enabled. There used to be a barrage of scary message when using run_pro2cmake. Change-Id: I49ab3522e11844a99653034b5f15a634a368d227 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Make standalone tests build via top level repo projectAlexandru Croitor2019-11-081-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously repo/tests/CMakeLists.txt was a standalone project on which CMake could be called. This was useful for Coin to be able to build and package only tests, but was a bit troublesome because that means having to specify the usual boilerplate like minimum CMake version, which packages to find in every tests.pro project. Instead of having a separate standalone project, modify the top level project and associated CMake code to allow passing a special QT_BUILD_STANDALONE_TESTS variable, which causes the top level project to build only tests, and find Qt in the previously installed qt location. This also means that when building a repo, we generate a ${repo_name}TestsConfig.cmake file which does find_package on all the modules that have been built as part of that repo. So that when standalone tests bare built for that repo, the modules are automatically found. qt_set_up_standalone_tests_build() is modified to be a no-op because it is not needed anymore. Its usage should be removed from all the other repos, and then removed from qtbase. Non-adjusted tests/CMakeLists.txt projects in other repositories should still be buildable with the current code, until they are updated to the new format. Adjust the Coin build instructions to build the standalone tests in a separate directory. Adjust pro2cmake to generate new structure for the tests/tests.pro projects. Adjust the qtbase tests project. Fixes: QTBUG-79239 Change-Id: Ib4b66bc772d8876cdcbae1e90ce5a5a5234fa675 Reviewed-by: Qt CMake Build Bot Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add condition maps for special cases in tests/manualLeander Beernaert2019-11-081-0/+3
| | | | | Change-Id: I426766c68f6f118d0706455689d968534e406d3d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add generic lessThan|greaterThan|equal condition map to pro2cmake.pyLeander Beernaert2019-11-081-0/+18
| | | | | Change-Id: Ib611aa9a808a05b38a83bd3fd7d95081bdf6e256 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix Android x86 buildsLeander Beernaert2019-11-081-1/+1
| | | | | | | | | | | | Replace condition x86 to i386 to match other platforms. Regenerate src/gui/CMakeLists.txt Disable SSE4 on android x86 to match qmake. Change-Id: Ic0d330206f2d70a79d72553aa3ff0f91ff58119c Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add support for benchmark conversionLeander Beernaert2019-11-041-8/+25
| | | | | | | | | | | | | Convert benchmark executables to add_qt_benchmark(). Currently add_qt_benchmark just calls add_qt_executable() and ensures that it they build under CMAKE_CURRENT_BUILD_DIR and do not install. Add QT_BUILD_BENCHMARKS option to enable/disable building of benchmarks. Change-Id: Id0bc676698d21d50048d97d9abef51d92ccb6638 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Prevent infinite recursionFrederik Gladhorn2019-11-011-0/+3
| | | | | | | | | In qtvirtualkeyboard/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/lipicommon.pri we have TARGET = $$TARGET$$qtPlatformTargetSuffix which keeps on recursing. Change-Id: Ia0e020c7258cd87bba9b9681ed7b4568e8f0c9c2 Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix formatting to conform to black rulesSimon Hausmann2019-10-292-24/+14
| | | | | | | | Ran make format. Change-Id: Ib4fc021c30834a69a9a5df653435dd92dc6a9c05 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add replacement for '*g++*' to pro2cmake.pyLeander Beernaert2019-10-281-0/+1
| | | | | Change-Id: I3dc04a6169a98b7ff22392b979e743c41d6e0475 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Distinguish between qt_plugin and regular pluginsLeander Beernaert2019-10-281-4/+18
| | | | | | | | | If we do not encounter the load(qt_plugin) statement in the .pro file but we do see the entry CONFIG+=plugin, treat the target as a regular CMake library instead of treating it as a qt_plugin by default. Change-Id: I67ad5c865a1a5ab691a6b0d86c2db4b686aa04dd Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Convert ANDROID_PACKAGE_SOURCE_DIR for android (pro2cmake)Leander Beernaert2019-10-231-1/+2
| | | | | | Change-Id: I76730852e4433d095bc42ff617254a77f2d1bf51 Reviewed-by: Qt CMake Build Bot Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake scripts: do not override local target through includesFrederik Gladhorn2019-10-231-3/+3
| | | | | | | | | | This is needed for tests/auto/gui/kernel/qguiapplication which includes the qcoreapplication test. Without this change, the target name is taken from the included .pro file, instead of from the current file. Change-Id: I2d8a207fd70a49ad956fb9a83a59811d89682082 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* cmake scripts: do not add spaces in empty linesFrederik Gladhorn2019-10-231-1/+5
| | | | | | | | | | When adding resources inside a condition, we'd end up with lines containing just spaces. Change-Id: I623203d042e2492bdd72f97d8b9d90517040b0df Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* cmake scripts: handle aix-g++Frederik Gladhorn2019-10-231-0/+1
| | | | | | Change-Id: I62b9e9fa9aae3350dc8c668a98453c2373c1a709 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Handle Library dependencies in compile testsLeander Beernaert2019-10-211-10/+21
| | | | | | | | Update configurejson2cmake.py to also write out the libraries compile tests depend on. Change-Id: I22dbc227a33b9b5d39a2198c6ee6062e7e1bf3de Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Add conversion code for Java codeLeander Beernaert2019-10-181-1/+42
| | | | | | | | | | Add support to pro2cmake to convert java code for android. Add support to override API_LEVEL for the Android sdk jar file. If the sdk is not found, we'll default to the one located by QT_ANDROID_JAR. Change-Id: If0b746dc7f9148ac43e6592a4a4dd23d46bbd4cd Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix C++ standard detectionSimon Hausmann2019-10-171-13/+11
| | | | | | | | | | | We cannot use a generator expression in an if statement, it does not work. Instead, we could inspect the CMAKE_C/CXX_COMPILE_FEATURES list, but unfortunately that's not reliable. For example it detects that ICPC supports C++17 when in fact that depends on the installed libstdc++. Therefore this patch revives our own configure tests. Change-Id: Ic3bc5762fbe81837722523e3881ac16e84628519 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix message about missing portalockerOliver Wolff2019-10-151-1/+1
| | | | | Change-Id: Ia82c0aab7c9085eee8a07c4a15485c0804e65e5a Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
* Fix add_qt_resource condition scopesLeander Beernaert2019-10-151-5/+14
| | | | | | | | Calls to add_qt_resource from extend_target were not being wrapped in a condition scope. Change-Id: I78cf889fcf4663660fd870bfb93eec90a4ca1c47 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Update android arch condition conversionLeander Beernaert2019-10-151-6/+6
| | | | | | | | | | Only convert the architectures if they are in a stand alone form. This means conditions such as 'if(x86 OR x86_64)', 'if(x86)', among others. This also correctly converts statements such as 'equals(QT_ARCH,x86)'. Change-Id: I1c3b8580ff9e4077c03a229d894d2bd3d95dba3d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Regenerate files after dev -> wip/cmake mergeAlexandru Croitor2019-10-142-0/+5
| | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/dev' into wip/cmakeAlexandru Croitor2019-10-141-64/+38
|\ | | | | | | Change-Id: I4a78428a8ea273b6960792e3b8043f816fa37fcf
| * QUnicodeTables: use array for case folding tablesMarc Mutz2019-09-041-60/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of four pairs of :1 :15 bit fields, use an array of four :1, :15 structs. This allows to replace the case folding traits classes with a simple enum that indexes into said array. I don't know what the WASM #ifdef'ed code is supposed to effect (a :0 bit-field is only useful to separate adjacent bit-field into separate memory locations for multi-threading), but I thought it safer to leave it in, and that means the array must be a 64-bit block of its own, so I had to move two fields around. Saves ~4.5KiB in text size on optimized GCC 10 LTO Linux AMD64 builds. Change-Id: Ib52cd7706342d5227b50b57545d073829c45da9a Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * QUnicodeTables: pack Properties structMarc Mutz2019-09-041-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC doesn't like the sequence : 5 : 5 : 8 : 6 : 8 and inserts a :6 padding between the :5 and the :8 and a :2 padding between the :6 and the :8, growing the bitfield by 8 bits of embedded padding and another byte to bring the struct back to sizeof % 2 == 0. Fix by reshuffling the elements and adding a static_assert for the next round. Saves ~5KiB in QtCore executable size. Change-Id: I4758a6f48ba389abc2aee92f60997d42ebb0e5b8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Fix up android architecture suffixingSimon Hausmann2019-10-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | Don't globally map any variable use of QT_ARCH to ANDROID_ABI, as that'll break if somebody uses it in a different context. Instead the CMAKE_SYSTEM_PROCESSOR variable provides a reasonable value and it is also set by the Android toolchain files. Change-Id: Ibf203c39db586bbec5b800a365d83b3a509dbb62 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Fix Android build from multi-arch qmake changesLeander Beernaert2019-10-141-0/+9
| | | | | | | | | | | | | | | | | | | | Add condition replacements for the android ABIs. Add a replacement for QT_ARCH to ANDROID_ABI, since QT_ARCH is only used with the android build for now. Change-Id: I553d7910546de32236f723ec2e9a05a18da76130 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Run blake on pro2cmake.pyLeander Beernaert2019-10-141-3/+9
| | | | | | | | | | Change-Id: I16cc7058f817d22e2c72fb6d42c472250a7e6cfb Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Handle empty contents for condition scopes in examplesLeander Beernaert2019-10-141-15/+23
| | | | | | | | | | | | | | Only print condition scopes when there is something to print. Change-Id: I24151ca4834317940712b6173046abe91aac5628 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Merge remote-tracking branch 'origin/wip/qt6' into wip/cmakeAlexandru Croitor2019-10-113-68/+173
|\| | | | | | | Change-Id: I3a1d7673c3c20019ab12a2ea0a60f1619920a34c
| * Add support for the Islamic Civil calendarSoroush Rabiei2019-08-223-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This has its own locale data, extracted from CLDR. This data may potentially be shared with other variants on the Islamic calendar, so is handled by a separate base-class, QHijriCalendar, on which such variants may base their implementations. [ChangeLog][QtCore][QCalendar] Added support for the Islamic Civil calendar, controlled by feature islamiccivilcalendar, with locale data that can be shared with other implementations, controlled by feature hijricalendar. Fixes: QTBUG-56675 Change-Id: Idf32d3da7034baa8ec5e66ef847e59a8a2f31cbd Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * Add support for the Jalali (Solar Hijri or Persian) calendarSoroush Rabiei2019-08-213-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | This has its own locale data, extracted from CLDR. [ChangeLog][QtCore][QCalendar] Added support for the Jalali (Persian or Solar Hijri) calendar, controlled by feature jalalicalendar. Fixes: QTBUG-58404 Change-Id: Id5c56a10db05a4fd612aafc01615273db81ec743 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * Add support for calendars beside GregorianSoroush Rabiei2019-08-203-54/+138
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add QCalendarBackend as a base class for calendar implementations and QCalendar as a facade via which to access it. QDate's implicit implementation of the Gregorian calendar becomes QGregorianCalendar and QDate methods now support choice of calendar. Convert QLocale's CLDR data for month names to a locale-data component of each supported calendar and relevant QLocale methods now support choice of calendar. Adapt Python scripts for locale data generation to extract month name data from CLDR (keeping on version v35.1) into the new calendar-locale files. The locale data for the Gregorian calendar is held in a Roman calendar base, for sharing with other calendars. Add tests for basic uses of the new API. [ChangeLog][QtCore][QCalendar] Added QCalendar to support diverse calendars, supported by implementing QCalendarBackend. [ChangeLog][QtCore][QDate] Allow choice of calendar in various operations, with Gregorian remaining the default. Done-with: Lars Knoll <lars.knoll@qt.io> Done-with: Edward Welbourne <edward.welbourne@qt.io> Fixes: QTBUG-17110 Fixes: QTBUG-950 Change-Id: I9d6278f394269a183aee8156e990cec4d5198ab8 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * Extract a large format string as a module constant valueSoroush Rabiei2019-08-081-14/+15
| | | | | | | | | | | | | | | | | | The template for the "This is a generated file" notice made a clumsy intrusion in the code in which it appeared, so split it out as a constant of the module and access it by name where it's used. Change-Id: Ic4dfb8e873078c54410b191654d6c21d082c9016 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | pro2cmake: Translate C++ standard version checksJoerg Bornemann2019-10-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Translate checks like contains(QT_CONFIG, c++11) to cxx_std_11 IN_LIST CMAKE_CXX_COMPILE_FEATURES Also allows contains(CONFIG, c++11) and different versions of course. Change-Id: I0f51a1ee7c92df6b87c31d0fb64c22fdba2002ec Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | pro2cmake: Handle source files in example scopesAlexandru Croitor2019-10-111-0/+7
| | | | | | | | | | Change-Id: I653801d6b13eb144719a4e6eac4779b1cd15e75c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | pro2cmake: Handle simd assignments in scopesAlexandru Croitor2019-10-111-3/+27
| | | | | | | | | | | | | | | | Make sure to process simd assignments in scopes by enclosing the add_qt_simd calls into if blocks. Change-Id: I3c7f2466cfa5bb0136d40deffb190ea8aabfb572 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Expand test install pathLeander Beernaert2019-10-111-1/+1
| | | | | | | | | | | | | | Expand target.path value for tests. Change-Id: Ic35122b0ef1440950c0ef2ba9a04e8697ca2cdfe Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Minor fix to qt_process_qlalr APISimon Hausmann2019-10-111-1/+1
| | | | | | | | | | | | | | | | | | It's probably best to make it follow the usual calling convention that the associated (consuming) target is the first parameter of the function. So first this change accepts both formats. Change-Id: I1f20706b23d5e819e0eb689eecedb3afb49df3b7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Add SKIP_INSTALL to add_qt_plugin()Leander Beernaert2019-10-111-0/+2
| | | | | | | | | | | | | | | | Provide a SKIP_INSTALL argument to add_qt_plugin for test cases with plugins lacking install information. Change-Id: Iddb3843fab1790d69d64686530a46057a2ff0477 Reviewed-by: Alexandru Croitor <alexandru.croitor@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-113-5/+20
| | | | | | | | | | | | | | | | 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>