summaryrefslogtreecommitdiffstats
path: root/util/cmake/pro2cmake.py
Commit message (Collapse)AuthorAgeFilesLines
* Bump version to 6.8.0Jani Heikkinen2023-12-111-1/+1
| | | | | Change-Id: I407e6fd7a766450bb6fe00da7f6ebbd49496e5cd Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Bump version to 6.7.0Jani Heikkinen2023-06-121-1/+1
| | | | | Change-Id: I69954ccc5cfb44e7bf02b8fcab18e9320e7e8748 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Remove GENERATE_METATYPESAmir Masoud Abdol2023-01-181-2/+2
| | | | | | | | | It doesn't seem like that it is being used anymore, except an instance in pro2cmake which I replaced by NO_GENERATE_METATYPES. Pick-to: 6.5 Change-Id: I135cf47e6041e98b354fb684f0079dad30689dea Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Bump version to 6.6.0Jani Heikkinen2022-12-141-1/+1
| | | | | Change-Id: I957e8a980542f16d3a3b493b41406bbeb884c2dc Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* CMake: Fix typosKai Köhne2022-06-131-1/+1
| | | | | | | | Found by codespell Pick-to: 6.4 Change-Id: I4907e423b6b345acf82f2d7e0ed62479719d694e Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Bump version to 6.5.0Jani Heikkinen2022-06-061-1/+1
| | | | | Change-Id: I83a4f915a914bdc18f6706bb902f3e3b13da074f Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Use SPDX license identifiersLucie Gérard2022-05-161-27/+2
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* pro2cmake: Introduce qmake2cmake convenience scriptsJoerg Bornemann2022-03-081-53/+105
| | | | | | | | | | | Add qmake2cmake[.bat] wrapper scripts that can be used to convert user projects to CMake. For now, user projects are internally handled as Qt examples with one difference: the generation of example-specific installation code is suppressed. Fixes: QTBUG-98655 Change-Id: I1a57f6d12efe0bdf383592ab33682a611692db80 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Handle QT_(MAJOR_|MINOR_|PATCH_)VERSION conditionsJoerg Bornemann2022-03-081-0/+22
| | | | | | Task-number: QTBUG-98852 Change-Id: I4c86fff7bbcc6c42cd04094f2409c3d04779597c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Remove INSTALL_LOCATION from qt_add_qml_module callsJoerg Bornemann2022-03-081-1/+1
| | | | | | | This function does not handle installation. Change-Id: I02fdc244f49b5935aa1ac51bff8a25970ad3a335 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Generate find_package call for Qt5/Qt6 for examplesJoerg Bornemann2022-03-081-2/+14
| | | | | | | | This makes the QT_VERSION_(MAJOR|MINOR|PATH) variables available. Task-number: QTBUG-98852 Change-Id: I7e40f2a7ac09975ce21e45cda384af928e1fa629 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Handle optional Qt modulesJoerg Bornemann2022-03-081-6/+40
| | | | | | | | | ...and write a separate find_package(Qt6 OPTIONAL_COMPONENTS Foo Bar) call for those. Task-number: QTBUG-96799 Change-Id: I3386487774c386edde6767dca92ce433bfed906e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Enable AUTOUIC only if the project has FORMSJoerg Bornemann2022-03-081-1/+5
| | | | | Change-Id: I1bf232fa3c389eb86707d3af04de6cf9eb09451a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Write only one find_package call for Qt packagesJoerg Bornemann2022-03-081-2/+18
| | | | | | Task-number: QTBUG-96799 Change-Id: I1eb8ac05f360b74e5ae1217b5535a33227b5084b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Make generated examples use qt_add_qml_module()Joerg Bornemann2022-03-081-197/+342
| | | | | | | | | | | | | | | | We prefer it when the CMakeLists.txt project files for examples use qt_add_qml_module() when adding resource files, rather than qt6_add_resource(). A bit of refactoring was needed to re-use the code that extracts resource information from the .pro file. The new function write_qml_module is now responsible for writing qt_add_qml_module calls. Task-number: QTBUG-96799 Change-Id: I74dc2d681dcf4fc848e1147b3232ce9a9e0946c9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Fix indentation of INSTALL_EXAMPLESDIR assignmentJoerg Bornemann2022-03-031-1/+1
| | | | | Change-Id: If1f5d8b5afc76fac62fdf9836a17c4ab87ddc1b1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Set a project version for examplesJoerg Bornemann2022-02-281-1/+2
| | | | | | | | | | | | | | | | For example projects, change the generated project() call to project(foo VERSION 1.0 LANGUAGES CXX) Some CMake API derives default values from the project version, and it's generally advisable to set a project version number. The version number is read from qmake's VERSION variable. That's actually a target version number, but it might be the right thing in most cases. Fall back to version 1.0 if VERSION is not set. Task-number: QTBUG-96799 Change-Id: Ia0c551cf62621eb217e1dd541dcbd8945f78138e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Re-format sources with blackJoerg Bornemann2022-02-281-19/+19
| | | | | | | ...to have a consistent baseline for further improvements. Change-Id: Iba8e83a7a5cf5ca0cdf509f79e7d2dc2d8f42fec Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Bump version to 6.4.0Jani Heikkinen2022-01-311-1/+1
| | | | | Change-Id: Ie0e2133d6c9125b901364c979c60b6efd585f026 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Don't set CMAKE_AUTORCC in pro2cmake.pyJoerg Bornemann2022-01-211-1/+0
| | | | | | | | | To tool generates calls to qt6_add_resources instead, and we don't want to promote the usage of CMAKE_AUTORCC. Task-number: QTBUG-87643 Change-Id: I58458416514949a6ffc9b93c7eb6d24bc2ed01ca Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Don't use libs in /usr/local for configure tests by default on macOSJoerg Bornemann2021-10-081-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit f3c7d22dd04afe8d889585fb5d6426f3d4591e74 we do not use libraries from /usr/local and other non-system locations on macOS. But our configure tests still did. This led to discrepancies between find_package calls in configure tests and the Qt project itself. Mentioned commit removed /usr/local and friends from CMAKE_SYSTEM_PREFIX_PATH. But we can't pass this variable to the configure tests, because CMake sets it up and overwrites our value. Pass CMAKE_SYSTEM_PREFIX_PATH and CMAKE_SYSTEM_FRAMEWORK_PATH as QT_CONFIGURE_TEST_CMAKE_SYSTEM_{PREFIX|FRAMEWORK}_PATH variables to tests. Tests with separate project files that call find_package() must add code like this after the project() command: if(DEFINED QT_CONFIGURE_TEST_CMAKE_SYSTEM_PREFIX_PATH) set(CMAKE_SYSTEM_PREFIX_PATH "${QT_CONFIGURE_TEST_CMAKE_SYSTEM_PREFIX_PATH}") endif() if(DEFINED QT_CONFIGURE_TEST_CMAKE_SYSTEM_FRAMEWORK_PATH) set(CMAKE_SYSTEM_FRAMEWORK_PATH "${QT_CONFIGURE_TEST_CMAKE_SYSTEM_FRAMEWORK_PATH}") endif() Adjust pro2cmake accordingly. Task-number: QTBUG-97076 Change-Id: Iac1622768d1200e6ea63be569eef12b7eada6c76 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Generate public CMake API code for projects by defaultAlexandru Croitor2021-09-271-4/+43
| | | | | | | | | | | | | | | | | | | | | | | | | Previously pro2cmake assumed that all .pro were internal Qt projects like qtbase/src/corelib.pro and generated private api calls like qt_internal_add_module(). Public CMake API calls (like qt_add_executable) were only generated if an --is-example command line flag was passed to the script or if the .pro file was located under the examples subfolder of a qt repo source directory (indicated by the presence of a .qmake.conf file). Change the logic to always generate public CMake API code by default, unless a .cmake.conf/.qmake.conf file is encountered with a valid repo module version inside, in which case apply the old heuristic of checking for the ./examples subfolder. The intention is to have a sensible default so that Qt users can use the script to more easily migrate their qmake projects without having to explicitly specify the --is-example flag. Pick-to: 6.2 Task-number: QTBUG-96799 Change-Id: I38f4f1b349a5b9688cf7bc5914d4fde72e660a98 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* pro2cmake: Augment searching of .qmake.conf with .cmake.confAlexandru Croitor2021-09-271-42/+58
| | | | | | | | | | | | | | | | | | Adapt to fb656c036db0549180073e133773862d08f6cd24 which removes .qmake.conf files in repos by searching for either .qmake.conf or .cmake.conf. The locations of those files are only used to compute relative paths based on the directory where the conf file is. For now, remove the warning if a conf file is not found, because we intend to change the script to generate user project code by default, instead of Qt internal project code and the warning looks scary. Pick-to: 6.2 Task-number: QTBUG-96799 Change-Id: I301e93d2ce5c05a52877eb6ed9eb9cee54fc5b15 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Skip unnecessary commands when cross-building toolsJoerg Bornemann2021-09-271-0/+3
| | | | | | | | | | | | | | | Introduce a new macro qt_internal_return_unless_building_tools which simply calls return() if tools are not built. This macro is supposed to be called after qt_internal_add_tool(). Using this macro avoids having to special-case code for when qt_internal_add_tool() creates imported targets in cross-builds. Adjust pro2cmake accordingly. Task-number: QTBUG-85084 Change-Id: I9e1c455c29535dd8c318efa890ebd739c42effc1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Bump almost all cmake_minimum_required calls to 3.16Alexandru Croitor2021-09-221-1/+1
| | | | | | | | | | | | Needed for subsequent change that will check and error out if the version is lower than 3.16. We do that to ensure all policies introduced by CMake up to version 3.16 have their behavior set to NEW. Pick-to: 6.2 Task-number: QTBUG-95018 Change-Id: Ieaf82c10987dd797d86a3fd4a986a67e72de486a Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* pro2cmake: Fix reported make flake8 issuesAlexandru Croitor2021-09-091-1/+0
| | | | | | | | | pro2cmake.py:458:5: F841 local variable 'is_parent_path' is assigned to but never used Pick-to: 6.2 Change-Id: I1c61efe5cf568fa0c99b07eed28b93d3444a5fac Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* pro2cmake: run make format to fix styling issuesAlexandru Croitor2021-09-091-4/+6
| | | | | | Pick-to: 6.2 Change-Id: I718e34d628576bb709096c0672da3a69b71ae8df Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* pro2cmake.py: generate examples with properties in qt_add_executable()Oliver Eftevaag2021-09-081-5/+18
| | | | | | | | | | | | | | | | This patch will slightly change the output of CMakeLists.txt files that are generated for examples. * set_target_properties() will no longer be added to the top-level scope. If the WIN32 and MACOSX_BUNDLE properties should be added, they will instead be added to qt_add_executable(). * The version in cmake_minimum_required() will now be 3.16, rather than 3.14. Pick-to: 6.2 Change-Id: I79e1865dace5538d2b7ff264da02f9e28a655ae9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Bump project versionsAlexandru Croitor2021-08-021-1/+1
| | | | | | Fixes: QTBUG-95454 Change-Id: I2467d3ae27b54424e59a7a4ab00d364eaec517d5 Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
* Bump versionJani Heikkinen2021-06-101-1/+1
| | | | Change-Id: I4a862360d627f1ea18a27920bb440da28ddc5b22
* Add the 'Private' suffix to the internal module name by defaultAlexey Edelev2021-05-311-0/+1
| | | | | | | | Modify pro2cmake to add the 'Private' suffix to the internal module name by default. Change-Id: Ia7b2fce387fad5f207a7379ac738173ff9262071 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix BASE argument of qt_add_resourcesJoerg Bornemann2021-05-181-12/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The BASE argument of qt_add_resources now denotes the root point of the alias of the file. Before, BASE was merely prepended to every file that got passed to qt_add_resources. Old behavior: qt_add_resources(app "images" PREFIX "/" BASE "../shared" FILES "images/button.png") Alias is "../shared/images/button.png", and pro2cmake generated QT_RESOURCE_ALIAS assignments to fix this. New behavior: qt_add_resources(app "images" PREFIX "/" BASE "../shared" FILES "../shared/images/button.png") The alias is "images/button.png". No extra QT_RESOURCE_ALIAS assignment is needed. The new behavior is in effect for user projects and for Qt repositories that define QT_USE_FIXED_QT_ADD_RESOURCE_BASE. Qt repositories will be ported one by one to this new behavior. Then the old code path can be removed. Pick-to: 6.1 Task-number: QTBUG-86726 Change-Id: Ib895edd4df8e97b54badadd9a1c34408beff131f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Add support for standalone CMake test configurationCristian Adam2021-04-271-0/+6
| | | | | | | | | | | | This patchset adds the bits needed for manual tests to work standalone. Amends ebaa1c15a101579d9296336491e36c63b979f18d Pick-to: 6.1 Task-number: QTCREATORBUG-25389 Change-Id: Ifc70391bda2a3eea3c7492a58353a703cdc3114c Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: pro2cmake: Use latest project version for qml import versionAlexandru Croitor2021-04-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Use PROJECT_VERSION instead of CMAKE_PROJECT_VERSION when setting the version of a qml module, which extracts the version of the latest project() call rather than the top-level one. Using CMAKE_PROJECT_VERSION caused issues in top-level builds where the qtdeclarative version is 6.2, but the top-level project version is still 6.1 and hasn't been updated to 6.2, causing qml module import errors. This was probably an oversight during initial implementation of qml support in pro2cmake. So projects that define qml modules should be adapted accordingly. Amends cce8ada8141d786c1deda78fdba485b4c67f9687 Amends 28fff4a5519c8e1068450a052cb19fb2149e9726 Pick-to: 6.1 6.0 Task-number: QTBUG-92861 Change-Id: I494784694e997501a5bc4fd0c0eac458ddc248aa Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* pro2cmake: Set default API version to the latest versionJoerg Bornemann2021-03-091-2/+2
| | | | | Change-Id: I83ac2eb3ca36e1454d34fd0181ce0dccc775b47f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Update pro2cmake to require CMake 3.16Andreas Buhr2021-01-221-1/+1
| | | | | | | | pro2cmake generated CMakeLists.txt with cmake_minimum_required(3.15.0). But 3.16 is required now. This patch updates pro2cmake.py accordingly. Change-Id: I8283e1c4da4d2d36e1d9127cab410c7bfc58830c Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* pro2cmake: Raise QT_REPO_MODULE_VERSION to 6.1.0Joerg Bornemann2021-01-201-1/+1
| | | | | | | | Modules that are ported for dev should get this version now. Change-Id: I11d47504f163798d53c51e56ef978edaa711d93a Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* pro2cmake: Handle conditions for feature system_webpJoerg Bornemann2020-12-091-0/+1
| | | | | | | This is needed for the qtimageformats build with bundled libwebp. Change-Id: I4d32392d7362f254e9633197497b6d78e12da559 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Fix is_public_module calculationJoerg Bornemann2020-11-301-5/+19
| | | | | | | | | | | | | | | | | | | write_library_section traverses the parent/child hierarchy of scopes to determine whether the scope belongs to a public Qt module. This doesn't work for scopes that stem from included .pri files, because each included file has its own parent/child hierarchy. We already have an include scope hierarchy in the form of Scope._included_children, but lack a way to get to the including scope. Add Scope._including_scope and adjust the is_public_module calculation to take that into account after hitting the top of the parent/child hierarchy. Pick-to: 6.0 Change-Id: I8fee1cfbf048e7afc6783b0a52eaca75be17072f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: pro2cmake: Reformat scripts using black8 againAlexandru Croitor2020-11-121-19/+20
| | | | | Change-Id: I1b024867e76baa2e443e95a5e980745b65ee1f19 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: pro2cmake: Handle AUX_QML_FILES installationAlexandru Croitor2020-11-121-0/+65
| | | | | | | | | | | | | | | | | | | | | | Generate copy and installation rules for AUX_QML_FILES entries. These are usually handled by mkspecs/features/qml_module.prf. For the purposes of unblocking the Designer team, instead of creating AUX_QML file specic functions that would handle installation, generate qt_copy_or_install() rules. To ensure installation destination is correct, we need to group file paths by base directory and specify those in the DESTINATION parameter. Otherwise the file hierarchy would be flattened. This is usually handled by file_copies.prf and the equivalent qmake install mechanism. In CMake we need to handle it manually. Also detect usage of wildcards to ensure we use globs for installation. Task-number: QTBUG-87818 Change-Id: I8a5db445274fb670d90cf90b38598a6b3326bc44 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* pro2cmake.py: support for PAST_MAJOR_VERSIONS in qml_modulesFawzi Mohamed2020-11-111-0/+5
| | | | | | | | | | maps qmake QML_PAST_MAJOR_VERSIONS to PAST_MAJOR_VERSIONS in cmake qml modules, introduced in qtdeclarative qmltyperegistrar: Add past-major-version option Change-Id: Ifbee7c87318cc9dc7d7961db80cad518e67ecffe Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Add handling of PLUGIN_EXTENDS for generic pluginsAlexey Edelev2020-11-091-0/+4
| | | | | | | | | | Modify pro2cmake converter to add extra argument to qt_internal_add_plugin. DEFINE_IF FALSE is added to generic plugins those had "PLUGIN_EXTENDS = - " specified in .pro files. Fixes: QTBUG-87861 Change-Id: I9269df19a32a088f5261f50e7ffff6d29c3d605f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Support QML_PAST_MAJOR_VERSIONSFabian Kosmale2020-11-061-0/+5
| | | | | | Change-Id: I47504d6c032c9a6ace7440580f0081cc5f254038 Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: pro2cmake: Generate correct CONFIG_MODULE_NAME valuesAlexandru Croitor2020-10-301-7/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CONFIG_MODULE_NAME option to qt_internal_add_module is used to specify what the name of a Qt module's pri file should, as well as some of the key names assigned in that file, as well as what should be passed to QT += in qmake projects. When it is not specified, the computed value is the lower case of the CMake target name. E.g. for qt_internal_add_module(Core), the computed CONFIG_MODULE_NAME is 'core'. The qmake variable that determines the above value is the MODULE variable. If it is not explicitly assigned, it's computed from the .pro file name, rather than from the TARGET variable value. Thus there is an inconsistency in how the value is auto-computed in CMake compared to qmake. We had a few special cases in projects that assign a correct CONFIG_MODULE_NAME when the auto-computed value was wrong. Teach pro2cmake to detect these inconsistencies and pass a correct CONFIG_MODULE_NAME value based on the .pro file name. This way we get rid of the special cases as well. Aka if there is no explicit MODULE assignment in the .pro file, and the auto-computed value by CMake is different from the one computed by qmake, explicitly write out a CONFIG_MODULE_NAME value with what qmake would have computed. Task-number: QTBUG-88025 Change-Id: I166b29767e87cd6b0c681fa53238098355a177f9 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: pro2cmake: Handle CONFIG+=console app_bundle in examplesAlexandru Croitor2020-10-271-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that qt_add_executable doesn't set the WIN32_EXECUTABLE and MACOSX_BUNDLE properties anymore, pro2cmake needs to look at the qmake example projects and generate appropriate set_target_properties calls. The relevant CONFIG entries to look at are windows, console, app_bundle and cmdline. CONFIG += windows implies 'subsystem windows' on Windows, which maps to WIN32_EXECUTABLE == TRUE. CONFIG += console implies 'subsystem console' on Windows, which maps to WIN32_EXECUTABLE == FALSE. Aka the opposite of CONFIG += windows. Whichever is the last one set, cancels out the other one. CONFIG += app_bundle implies a macOS bundle executable, which maps to MACOSX_BUNDLE == TRUE. CONFIG += cmdline is the same as CONFIG += console and CONFIG -= app_bundle, aka WIN32_EXECUTABLE and MACOSX_BUNDLE set to false. In qmake, if no CONFIG is specified in an example project, the default is CONFIG += windows app_bundle, aka WIN32_EXECUTABLE and MACOSX_BUNDLE set to true. The script uses a heuristic to try and not write the properties for every single subscope, except for values different from the default. This is not strictly correct, but it covers most use cases, and keeps the generated projects a bit cleaner. Task-number: QTBUG-87664 Task-number: QTBUG-86827 Change-Id: If05606ec3205e0fe7c1803c07e114d9fd9c3e4f7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* pro2cmake: Fix singleton declarationJoerg Bornemann2020-10-191-1/+1
| | | | | | | | The singleton modifier must be written without square brackets. Task-number: QTBUG-87684 Change-Id: I924bbf97789edd7f2b4f2b9bbca2cb99841d2906 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Rename add_qt_gui_executable to qt_add_executableAlexandru Croitor2020-10-191-1/+1
| | | | | | | | | | | | | | | | | | Also adjust pro2cmake to use the new qt_add_executable name instead of add_qt_gui_executable. No compatibility functions provided this time, so we'll need to follow through all repos and regenerate all examples. Two reasons for not providing compaitibility functions: 1) We don't intend add_qt_gui_executable to be public API 2) A previous case with qtquickcontrols2 and qttools pointed out that making top-level builds work with cross-compatibility API is not simple. So just go ahead and regenerate everything. Task-number: QTBUG-87661 Change-Id: I2f228827b786ae03bf7e1bf3908ea02a8794ed52 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* pro2cmake: Translate qmake's install_qmltypes CONFIG optionUlf Hermann2020-10-081-0/+3
| | | | | | | | | We do want to install our qmltypes files ... Change-Id: I9769da852f92fcd9b1b8a8d093931f8c27d8a3d8 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Maximilian Goldstein <max.goldstein@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* pro2cmake: Allow optional imports in qmldirUlf Hermann2020-10-071-6/+21
| | | | | | | | | In order to funnel this through CMakeLists.txt we add an OPTIONAL_IMPORTS entry in addition to the existing IMPORTS. Task-number: QTBUG-87130 Change-Id: I57e882e75d17f5bc68d99ce7837425981fe6938b Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>