Commit Graph

1898 Commits

Author SHA1 Message Date
hjk
36f720907c Android: Use device types as restrictions on project configurations
Change-Id: I3f7ff05f27c76dadec9a9ff0ae02848830655472
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2017-12-19 10:52:28 +00:00
hjk
cc88302309 De-emphasize PluginManager::getObjects<Type>()
... by additionally keeping local (currently non-owning) pools per
"interesting" type.

Current situation:
  - The global object pool does not scale well for looking up
    objects, as iteration plus qobject_cast typically iterates
    over all pooled objects.
  - User code that can use typed results from the object
    pool need to have access to the full type definition anyway,
    i.e.  depend on the plugin of the target class anyway.

The patch here solves the scaling problem is to have local
type-specific pools to which objects register in their
constructors and deregister in their destructors.

This patch here does *not* change the ownership model of the
pooled objects, however, it opens the possibility to change
the ownership model per type (e.g. by not putting things into
the global pool at all anymore and make the local pool 'owning')
and the intent is to handle that in later patchs.

Even without the follow-up patches this here is a performance
improvement for the cases that access the local pools instead
the global one, i.e. "practically all".

Change-Id: Ib11a42df2c4ecf5e1155534730083a520dd1995b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2017-12-15 07:08:05 +00:00
Christian Kandeler
3ef82e8fe2 Android: Fix qbs build
Change-Id: Iff9147e69a3c9d025496c2e2ad7837dae32e02d9
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-12-13 17:23:08 +00:00
Oliver Wolff
224576506d Fix compile
Change-Id: I65a387f9d3358ef450c02b7bf90ae498039ce542
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-12-13 06:47:32 +00:00
hjk
1f3ba4ce15 QmakeAndroidSupport: Move AndroidPackageInstallationStep to Android plugin
There's nothing Qmake related in there (anymore?).

Change-Id: I8842d4824065cf3cba61d50b6f333ec3b52e3851
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2017-12-12 16:05:20 +00:00
hjk
53a151074a ProjectExplorer/all: Re-organize BuildSteps/{Deploy,Build}Config setup
This follow the rough pattern of recent *RunConfigurationFactory changes
for build and deploy configurations.

- Collapse the two lines of constructors similar to what
  890c1906e6 did for RunConfigurations
  * Deploy* was purely mechanical
  * Build* ctors are split in connects() in the ctor body
    to create "empty shell for clone" etc
    and build step additions in initialize() functions which
    are only used in the create() case.
  -- Allows to collapse the shared 'ctor()' functions, too.

- Move FooBuildConfigurationFactory::create() implementations
  to FooBuildConfiguration() constructor. That was a strange
  and unneeded ping-pong between factories and objects, and
  furthermore allows one level less of indirection (and for a
  later, left out here, some reduction of the
  FooBuildConfiguration interfaces that were only used to
  accommodate the *Factory::create() functions.

- Most {Build,Deploy}Configuration{,Factory} classes had a canHandle(),
  but there wasn't one in the base classses. Have one there.

- Most canHandle() functions were checking simple restrictions on
  e.g. project or target types, specify those by setters in the
  constructors instead and check them in the base canHandle()

- clone() is generally replaced by a creation of a "shell object"
  and a fromMap(source->toMap()), implemented in the base, there
  are two cases left for Android and Qbs that needed(?) some extra
  polish

- generally use canHandle() in base implementation, instead
  of doing that in all Derived::canFoo()

- as a result, canCreate/create/canClone/clone reimplementations
  are not needed anymore, keep the base implementation for
  now (could be inlined into their only users later), but
  de-virtualize them.

- Combine Ios{Preset,DSym}BuildStepFactory. There was only one
  'dsym' build step they could create.

- Split the 'mangled' id into the ProjectConfiguration subtype
  specific constant identifier, and a QString extraId() bit.
  Only maintain the mangled id in saved settings.

- Make ProjectConfiguration::m_id a constant member, adapt
  all constructors of derived classe.

Not done in this patch:

- Finish possible cosmetic changes on top

- Add a way to specify restrictions to supported Qt versions
  (used in Android/Ios), as the base implementation does not
  depend on the qtsupport plugin

- Combine the QList<X> availableFoo() + createFoo(X) function
  pairs to somthing like a direct
   QList<struct { X; std::function<X()>; }> fooCreators()
  to avoid e.g. the baseId.withSuffix() <-> id.suffixAfter(base)
  pingpong

- Remove the *Factories from the global object pool

- Do something about priority(). Falling back to plain
  qmake in android+qmake setup is not helpful.

Change-Id: I2be7d88d554c5aa8b7db8edf5b93278e1ae0112a
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-12-08 11:17:55 +00:00
Tobias Hunger
18f38ff18e Project: Make Project::files return a FileNameList
Change-Id: I75ceb22ac65b8288d824f229d44089cba6fc8ea3
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-12-08 09:09:59 +00:00
Eike Ziller
e2baa116ca Merge remote-tracking branch 'origin/4.5'
Change-Id: I86852d289c22210a0439e8e297819dc7276a96de
2017-11-29 09:56:22 +01:00
Nikolay Shalakin
54498da3b4 avoid crash during Android Virtual Device Manager launch
Change-Id: I9d496fd8e6b976f2cdfe891139475636ad3be018
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-11-28 09:53:06 +00:00
Christian Stenger
c738198185 Android: Fix compile with Qt5.6 and gcc4.9
Change-Id: Id353723112bb3086e695f483c3ce4ec53ba425d8
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-11-22 12:04:48 +00:00
Ivan Donchevskii
08e3d8f011 Clang: Android: fix clang code model errors
Add missing gcc include directories in Android toolchain.
This introduces the similar "magic" that we have in qmake
(*qtsource*/qtbase/mkspecs/common/android-base-head.conf)
but allows us to have those paths wherever we use android
toolchain.

Change-Id: I5740f1f2339fd30670567f24db2be2454f665f41
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-11-22 10:56:10 +00:00
Eike Ziller
89f9f22035 Merge remote-tracking branch 'origin/4.5'
Conflicts:
	src/plugins/clangcodemodel/clangutils.cpp
	src/plugins/cpptools/clangcompileroptionsbuilder.cpp
	src/plugins/cpptools/compileroptionsbuilder.cpp

Change-Id: I0728f08171103259407bbbb35f93b70c2f2e18d0
2017-11-21 13:28:55 +01:00
Vikas Pachdha
59e3d9af1e Android: Enable emulator tool installation
Let Android sdk manager UI install the emulator tool. AVD needs this
tool to manage AVD's.

Task-number: QTCREATORBUG-19332
Change-Id: If836c511ca4a5673470d42c14115afa21b1b96fd
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-11-21 10:53:20 +00:00
Ivan Donchevskii
ebdeb87241 Android: fix make command for latest NDK
Change-Id: I8c54ac146a96c11d6df5a7e5c791314799119b5f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2017-11-20 11:08:56 +00:00
Ulf Hermann
9fef8ff319 Android: Add support for QML preview
Change-Id: Ib1dc4f21686c14abf15e8a8bda82bff34ec019b4
Reviewed-by: hjk <hjk@qt.io>
2017-11-08 09:11:45 +00:00
Eike Ziller
a3d845815a Fix build error after merge
Change-Id: Idc8bd0cece32fa2095598cef931a369f35d6be11
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-10-25 19:29:52 +00:00
Eike Ziller
7f626b1182 Merge remote-tracking branch 'origin/4.5'
Change-Id: Iceaa4ca40b5318744bde8a76c6d3ccca08df71bb
2017-10-25 16:07:21 +02:00
Eike Ziller
4d0bf8a093 Android: Fix translation issues
Add missing Q_OBJECT macros

Change-Id: Ic2b01374e4426a7c90e9a8b4c3676e00c200300d
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-10-24 14:36:06 +00:00
Leena Miettinen
af97d0ce62 Android: Fix UI text
Change-Id: Ifae94cbd89c2af06b2c44c6a3872a24726b30c59
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-10-20 12:38:15 +00:00
Ulf Hermann
f846e488dd ProjectExplorer: Make sure toolControlChannel URLs come with a scheme
QML Profiler won't accept URLs without schemes anymore.

Change-Id: I54995ae7e9c1bcdb9f55fe5d56a45931f14cf890
Reviewed-by: hjk <hjk@qt.io>
2017-10-19 16:26:21 +00:00
Orgad Shaneh
7a04014f9f Merge remote-tracking branch 'origin/4.5'
Change-Id: I2d78020f10aa66fdded63883030313e0c411ce02
2017-10-15 00:23:08 +03:00
Jake Petroules
e2bacb1dc9 Android: Fix qbs build
Amends ec4fe5f04f and 476b133e91.

Change-Id: I0ecd76bdbd096a6325132011522e417d633de7a5
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
2017-10-13 16:19:27 +00:00
Ulf Hermann
b1a8743f6c Android: Set scheme on QML server URL
The QML connection manager won't accept URLs without scheme anymore.

Task-number: QTCREATORBUG-19046
Change-Id: Ic31787b806ab965f57a4585ee55681a488a88c56
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-10-13 10:15:52 +00:00
Eike Ziller
a83755157b Merge remote-tracking branch 'origin/4.5'
Change-Id: I0a4a1b6787afc817acf2b7a1c3fd2b881c35f57a
2017-10-13 11:59:49 +02:00
Vikas Pachdha
fa43c0d2b9 Android: Fix a possible race condition in SDK manager
QFutureWatcher connections are made after calling  setFuture. This
can lead to race condition

Task-number: QTCREATORBUG-19082
Change-Id: I87379c2b14c722cf4d4a9a374bd1ac1e72b52d5c
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-12 10:23:45 +00:00
Vikas Pachdha
5754b7d09f Android: Fix Sdk manager system environment
Android native tools fail if JAVA_HOME environment variable is
not defined

Task-number: QTCREATORBUG-19072
Change-Id: I3db910b34d9bdd9ebc9ba052b5300ecf5ef3ce15
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-12 07:59:52 +00:00
Eike Ziller
1c1dd45bfe Merge remote-tracking branch 'origin/4.5'
Change-Id: Iebd340258966aff910fb9ab0e45b5149e8f242f0
2017-10-12 09:49:14 +02:00
Vikas Pachdha
35689db652 Andriod: Check Android SDK pending licenses
Pending licenses are checked before installing any package and
the user is provided with an option to agree to license terms and
conditions

Task-number: QTCREATORBUG-19000
Change-Id: I4e149b4a6ac84c1f336bb7c50b0d62a2019c7868
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2017-10-11 12:02:46 +00:00
Vikas Pachdha
5002372533 Android: Auto installation of missing necessary SDK packages
Task-number: QTCREATORBUG-18978
Change-Id: Iac3e2c956ac3da717c6509f28b8d810827947ea0
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-11 12:01:48 +00:00
Vikas Pachdha
c52ee5238b Android: Enable common arguments for SDK manager command
Task-number: QTCREATORBUG-18978
Change-Id: I9f3e2b16a77ff949268960d2b5c5aa1896fa3770
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2017-10-11 12:01:29 +00:00
Vikas Pachdha
476b133e91 Android: Android SDK manager user interface
Task-number: QTCREATORBUG-18978
Change-Id: I421ea66fcd4f3cf38e6cfd3be58a35b3f9204c6f
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2017-10-11 12:01:02 +00:00
Vikas Pachdha
4b1429de55 Android: Add APIs to install, uninstall and update SDK packages
Task-number: QTCREATORBUG-18978
Change-Id: I3e19d665fb5b8a3a562010484735022d7ed333a1
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-11 12:00:47 +00:00
Vikas Pachdha
e70179e14f Android: Add API to check whether to use native SDK UI tools
Task-number: QTCREATORBUG-18978
Change-Id: I1cf4749e81b3b49de14ff88a5876569886d2cdfe
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-11 11:59:46 +00:00
Vikas Pachdha
daee6f6f33 Android: Enable Android build, platform and SDK tools parsing
Task-number: QTCREATORBUG-18978
Change-Id: I84d4ead3180ab818493aff9975a7a9b813fba8d0
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-11 11:59:34 +00:00
Vikas Pachdha
0ca97ab2bd Android: Enable parsing of available Android SDK packages
Task-number: QTCREATORBUG-18978
Change-Id: Icb9ba0a3afc3ca4386f056aa9e3de057dc9cdf7b
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-11 11:59:18 +00:00
Vikas Pachdha
4c4500c605 Android: Make SDK package parsing logic generic
Task-number: QTCREATORBUG-18978
Change-Id: I7e643842d6378a172fcfe5984cec931621ff9c41
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-11 11:58:35 +00:00
Vikas Pachdha
ec4fe5f04f Android: Refactor Android SDK packages
Introduce a hierarchy for Android SDK packages and refactor the
code accordingly. This is ground work for sdk management and
automatic android setup

Task-number: QTCREATORBUG-18978
Change-Id: Idef545e3b3a8e33e920be52b26094fb8046afcd3
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-11 11:58:16 +00:00
Vikas Pachdha
240d310a81 Android: Re-design android settings
Make Android setup related issues visible to user

Change-Id: Ib543c41edd9031d2bf12ac2e87b84bf4791781b7
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2017-10-11 11:57:46 +00:00
Jake Petroules
845271e957 Android: turn "use Ministro" into a checkbox
Ministro is an advanced deployment option which requires knowledge of
how to set up and maintain a Ministro repository. Place it with the
other advanced options instead of as a checkbox alongside the normal
deployent mechanism which is used by default and probably in the vast
majority of cases, in order to reduce cognitive load on the user and
clean up the UI a bit (since two options in a radio selection doesn't
make much sense).

Task-number: QTBUG-62995
Change-Id: If33b3c73db4fcc66717dd4ff0f7923f0250e8418
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-10-10 14:41:12 +00:00
Eike Ziller
07bec99e8f Merge remote-tracking branch 'origin/4.5'
Conflicts:
	src/plugins/debugger/debuggerruncontrol.cpp
	src/plugins/projectexplorer/gcctoolchain.cpp

Change-Id: Iaad0659293681cce4266fc3e4ba2a4f2068de911
2017-10-09 12:09:27 +02:00
Ulf Hermann
fb370f460d Move URL utilities from ProjectExplorer to Utils
This way we can access them from the qmldebug library.

Change-Id: I90ba80228f44a9d5ea825ad59f4bd1572969980e
Reviewed-by: hjk <hjk@qt.io>
2017-10-05 08:54:39 +00:00
Orgad Shaneh
5e8e619dd0 Merge remote-tracking branch 'origin/4.4' into 4.5
Change-Id: I9b7cb3d845628abf69a73a279f5a79202c0976c2
2017-10-04 16:11:17 +03:00
Ulf Hermann
defcb6a55a QtSupport: Add a method to retrieve the QML path
We check that qmake property in many different places.

Change-Id: Ifd5efe4ad2831385493bd3afe8538929578e8fb4
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-09-29 08:26:33 +00:00
Vikas Pachdha
66a42a7ffb Android: Fix the SDK platforms parsing for SDK tools 26.1.1
Task-number: QTCREATORBUG-18962
Change-Id: I780193be482ebc151931196792068d7c4d1ad808
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-09-28 12:34:59 +00:00
Tobias Hunger
3d8be750b9 Environment: Use Utils::FileName for path() and related methods
Update users accordingly.

Change-Id: I9432e82308e9d0630514c6c8632aeb6b6ee0cf90
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-09-27 07:37:26 +00:00
Ulf Hermann
63a99936ab QmlProfiler: Unify local and tcp connection mechanism
Use the URL scheme to distinguish between them, check that in
QmlProfilerClientManager and test all possible combinations of URL
parts.

Change-Id: I6583e5bf18eda0344a299a279c12578c4ebc7ffe
Reviewed-by: hjk <hjk@qt.io>
2017-09-21 14:54:57 +00:00
Tobias Hunger
899c518c6d Android: Fix ma-make detection
Broken by 71b56d2b9c

Change-Id: I8d92cb1f0ecfcb401f063ba49c357acac8cc832c
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2017-09-20 11:49:01 +00:00
Alessandro Portale
5e89fae10f Unify the dimensions for all mode/action bar icons
Having icons of all different kinds of sizes makes it difficult to get
the painting right in all cases. It definitely fails when the szsytem is
running in multi-monitor mode with different scaling factors. Unifying
the dimensions makes it possible.

This change should not cause any visual difference in a purely scaled or
unscaled screen.

Task-number: QTCREATORBUG-18869
Change-Id: I3a864c9a86036b4f4f3b350a489077b247ca85b7
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2017-09-19 13:54:30 +00:00
Vikas Pachdha
bc32c380a5 Android: Remove python support checking for the NDK's GDB
The check and the warning was for the super old NDKs which are
not supported anymore

Change-Id: I13cb0d3aa1deb3e5cff284ac4e4960e4d23950b4
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2017-09-14 09:16:40 +00:00
Vikas Pachdha
027383814a Android: Remove Ant and make gradle as the default java build tool
All GUI options to choose between  ant and gradle are removed.
Gradle is the only java build tool used now.

Change-Id: I309ff66256c5d40920a5d77a8331c5917c53c185
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2017-09-14 09:01:12 +00:00