In qmake projects it is possible to run arbitrary qmake commands after
the whole project is parsed, which is used extensively by Qt to do
things like importing qml plugins, generating android deployment
files, etc.
In CMake this feature was implemented in 3.19+ and we leverage this
feature to do all the things described above when such a version is
used.
But when projects are built with earlier CMake versions, it's better
for users to do these steps manually, rather than letting them to
happen at qt_add_executable call time, which limits certain
configurability.
That can be achieved by adding a call to qt_finalize_executable at the
very end of the directory scope where the target was created,
in addition to adding the MANUAL_FINALIZATION option to the
qt_add_executable call.
Augment the wizard templates to advertise the existence of
qt_finalize_executable, as well as making sure that projects created
by Creator can work reasonably well with older CMake versions as well.
Change-Id: Icf60eae993cf815f6cce6ed659fe35264b016f62
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Running applications on iOS requires declaring a bundle identifier and
version numbers in the application's Info.plist file.
Unconditionally add them, since they also make sense for desktop
applications, even if they are not strictly required.
Fixes: QTCREATORBUG-25297
Task-number: QTCREATORBUG-23574
Change-Id: I2269bec2d4eaf3e8dd3332a027b284049b3b8b42
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Don't just create the ts file, but also make sure it is embedded in the
application (if supported by the build system) and make the application
load it if it matches the current locale.
Task-number: QTCREATORBUG-25079
Change-Id: Ie3a0b1975531b12acb008e8c1312dab97f158751
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
qt_create_translation was introduced in Qt 5.15. But we also still
support older Qt versions, so we cannot use it unconditionally.
Fixes: QTCREATORBUG-25070
Change-Id: I81de7e19b42e0e8cb9cb23e14909e71c534dc0da
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Qt 6 introduces qt_add_executable() function, which for Android
make sure to call few Android specific functions like:
* qt_android_generate_deployment_settings()
* qt_android_add_apk_target()
* qt_android_apply_arch_suffix()
Using add_library() only the user would otherwise need to reimplement
what's already implemented in add_qt_gui_executable().
Task-number: QTCREATORBUG-24681
Change-Id: Iec3984139844fe1cbac2d9a583b3c40bdaa308a0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This got lost during the transition to JSON.
Amends 241efa353d
Fixes: QTCREATORBUG-24422
Change-Id: I51dec2e84adb3c5944ecaf83697f3e776bd3d7f1
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
The QT_DEPRECATED_WARNINGS macro has no effect anymore, so let's remove
it along with the huge chunk of comments that took up an inordinate
amount of space in the resulting project file. The concise comment for
the QT_DISABLE_DEPRECATED_BEFORE macro is perfectly sufficient.
Fixes: QTCREATORBUG-24244
Change-Id: I549c16c2c037bb64c2833e4807047ab3a8b2103f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Update wizards to produce CMakeLists.txt files that can work with both
Qt 5 and Qt 6.
Bump minimum CMake version to 3.14 since that is the first version that
accepts Qt with major version 6 in AUTOMOC/AUTOUIC.
Task-number: QTCREATORBUG-24206
Change-Id: I2ff462e67f01d84939c02be579579f358bc0b20e
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Most basic project management is implemented:
- Project config/build
- Build options accessible to user
- Lists most build targets
- Meson and Ninja added to kit setup
- Basic project file tree with files known by Meson
- Some basic meson and ninja process output parsing
- Some project templates
Missing features, that will come later:
- Configurable project tree layout
- Locators for Meson
- Build importer
- Access to Machine files for better user fine tuning
- ...
Fixes: QTCREATORBUG-18117
Change-Id: I2811e71562c113fb0fc6b6177bcf0698fa71ef63
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
It lately became messy and it feels like it is
time to clean up these a bit.
Change-Id: I7b5da97cd7ad4231e28db13c98db16c656c8a6b0
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Wizard authors can now provide a persistence key to values where that
makes sense.
For now, we make use of it for the build system type in all wizards and
the minimum Qt version as well as the virtual keyboard settings in the
QtQuick wizards.
Fixes: QTCREATORBUG-16657
Change-Id: I179930665bd163b1cf198467ab8b43bc72f8ec4a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Provide all wizards for Qt-based projects with the ability to set up a
skeleton .ts file and add it to the generated project.
Task-number: QTCREATORBUG-7453
Change-Id: I4dfb34c0101062edd0209173f83737e69063e27a
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Updated CMake minimum version to 3.5 (Ubuntu LTS 16.04)
* Lowercase commands
* Used the target name instead of ${PROJECT_NAME}, which nobody uses in practice
* No string quotes around the source filenames, which do not contain spaces
Change-Id: Ide9b3eb85535213798c6c35e08624cae080ebd9d
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This was broken in 63c339ffba while trying to fix a different bug.
Fixes: QTCREATORBUG-18157
Change-Id: Iec7e14de257195ed9bb20314b8031d3ef59df2ae
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Registers a new function "value('name')", available to the wizard json
files, which returns the value of the variable "name" as a JavaScript
object. So, variables with a string value are actual JavaScript strings,
booleans are booleans, lists are lists, and dictionaries are
dictionaries.
The patch also makes it actually possible to assign JSON lists and
dictionaries to values.
This removes some hacks involving creating complex JavaScript objects
through string substitution.
Change-Id: I4ac6da22bc5bccc9fadee97694c2fa14d44c9307
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The header file must be referenced relative to the location of the
source file.
Task-number: QTCREATORBUG-15599
Change-Id: Ib7d4aa5a62a94541cbe32cd340a8a1e7d6ef35e5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
The other JSON based project wizards first show the respective "Project
Details" page, and the kits just before the summary. This makes sense,
make the Qt Widgets Application wizard consistent.
Change-Id: I8f91795498c6c5e432453b181fa11f0618080e3e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Adding support for CMake as well as QMake
Task-number: QTCREATORBUG-17308
Change-Id: I615b58921918ec87f935e0f11d3dd23ec20f0ac1
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>