Commit Graph

24 Commits

Author SHA1 Message Date
Alexandru Croitor
27f299d9b5 CMake Wizards: Advertise manual finalisation
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>
2021-03-17 13:12:18 +00:00
Eike Ziller
b72c1d11e6 CMake Wizards: Add properties that are required for iOS
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>
2021-02-15 08:21:58 +00:00
Christian Kandeler
f19baeb9a5 Wizards: Extend translation support
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>
2021-01-25 14:21:33 +00:00
Kai Köhne
ca992488c0 Fix use of translations in Qt wizards for Qt 6
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>
2020-12-11 16:48:19 +00:00
Kai Koehne
480edb9151 Fix Qt 5 specific comments in Qt applicaton wizards
Change-Id: I031c8d8284efe87009073b5ea0abf99f81a45615
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2020-12-07 14:57:31 +00:00
Assam Boudjelthia
1f9124c976 CMake: update project templates to work with Android for Qt 6
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>
2020-10-26 10:42:06 +00:00
Eike Ziller
a71dbd4b33 Fix different UI aggregation styles for widget project wizard
This got lost during the transition to JSON.
Amends 241efa353d

Fixes: QTCREATORBUG-24422
Change-Id: I51dec2e84adb3c5944ecaf83697f3e776bd3d7f1
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-08-14 07:37:24 +00:00
Christian Kandeler
59b84c8d19 Wizards: Update templates in regard to deprecation warnings
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>
2020-06-30 12:13:41 +00:00
Tobias Hunger
c0bbbc2f70 Wizards: Update CMakeLists.txt files to handle Qt 6 and Qt 5
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>
2020-06-29 07:29:31 +00:00
Alexis Jeandet
77d7bb5014 Meson build plugin initial support
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>
2020-06-08 09:55:17 +00:00
Christian Stenger
03ddc603cf Wizards: Split Application category
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>
2020-01-27 07:00:57 +00:00
BogDan Vatra
e3904f3b13 CMake: Add Android Multi ABI support
Change-Id: Ia5b3fcda29705fefca85833ebc28b4154defba5f
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2019-10-28 05:47:53 +00:00
Christian Kandeler
4702faba06 Wizards: Add the ability to remember user choices
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>
2019-09-23 12:48:56 +00:00
Christian Kandeler
2feb3e5585 Qt wizards: Include translation file, if requested
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>
2019-08-08 08:56:38 +00:00
Cristian Adam
36135aa261 CMake: Small clean-up of CMake Wizards
* 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>
2019-06-12 13:34:58 +00:00
Christian Kandeler
a093dfc65c Wizards: Include namespace in header guards again
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>
2019-06-12 11:05:12 +00:00
Eike Ziller
e0d38ae414 Export Wizard values to JavaScript macro
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>
2019-05-09 11:19:43 +00:00
Christian Gagneraud
27a472aa30 Fix typo in wizard.json
Change-Id: Ie7a51f5bd65a8d82b32dc95dfbcf89ea09c45227
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-05-07 07:27:57 +00:00
Christian Kandeler
24263717f3 Make QtWidgets wizard work with namespaced Qt
Fixes: QTCREATORBUG-19590
Change-Id: Ic003b2b1f580d9a6708e144b690c4cee8d94ff69
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-04-30 10:50:10 +00:00
Christian Kandeler
a296b84dc4 Wizards: Fix include statements
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>
2019-04-30 10:47:44 +00:00
Christian Kandeler
ef9e6fbcd7 Add Qbs support for the QtWidgets application wizard
Change-Id: I7b7b7f0642693900f7ba635414450750380955de
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2019-04-08 08:01:24 +00:00
Eike Ziller
c79fcc8fe3 Widget App Wizard: Remove trailing colon from checkbox label
Change-Id: Ic0bf8ebe4e98a29b6ca08d496c79ea0032e0743f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2019-04-05 07:12:20 +00:00
Eike Ziller
6d6fc18161 Widget App Wizard: Move "Kits" page
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>
2019-04-05 07:12:11 +00:00
Eike Ziller
241efa353d Move Qt Widgets Application wizard to JSON
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>
2019-03-27 09:44:17 +00:00