Commit Graph

107 Commits

Author SHA1 Message Date
Alexandre Ardhuin
7d7ac7c32b
start multiline strings with newline (#50825) 2020-02-20 10:16:28 +01:00
stuartmorgan
f4177a6dde
Generate a Property Sheet for Windows plugins (#50740)
Generates a Property Sheet for Windows builds containing link and include path
information for any included plugins. This allows automating part of the process
of integrating plugins into the build that is currently manual.

To support this change, refactored msbuild_utils into a PropertySheet class so that
it can be used to make different property sheets.
2020-02-13 12:53:28 -08:00
stuartmorgan
7bdd4757ec
Create plugin symlinks for Windows and Linux (#50599)
This makes ephemeral symlinks to each plugin, for use by build systems.
This is similar to the logic implemented in the Podfile on iOS and
macOS, but managed internally to the Flutter tool.

Exploration for addressing #32719 and #32720
Related to #41146
2020-02-12 16:23:27 -08:00
Zachary Anderson
2c51efef29
[flutter_tools] Make Config context-free (#49834) 2020-01-31 12:51:20 -08:00
Jenn Magder
7f715628b0 Replace FlutterVersion.instance with FlutterVersion context fetch in global.dart (#49462) 2020-01-27 17:38:01 -08:00
Jenn Magder
8a3c98633a
Disallow empty platforms and specific platforms when parsing manifest for plugins (#49262) 2020-01-22 10:52:23 -08:00
Alexandre Ardhuin
3800bb7b10 fix missing spaces in adjacent strings (#49159) 2020-01-21 16:43:03 -08:00
Francisco Magdaleno
fcf341e4f3
Reland "[flutter_tools] Removes the need of a no-op plugin implementations #48614" (#49085) 2020-01-17 14:43:34 -08:00
Jenn Magder
b225cb8d53
Revert "[flutter_tools] Removes the need of a no-op plugin implementations (#48614)" (#49005)
This reverts commit 5eb394e084.
2020-01-16 16:19:54 -08:00
Francisco Magdaleno
5eb394e084
[flutter_tools] Removes the need of a no-op plugin implementations (#48614) 2020-01-16 12:42:05 -08:00
Zachary Anderson
29490887e0
Reland: [flutter_tools] File system utilities (#48757)
* Reland: [flutter_tools] File system utilities

* Remove unused imports
2020-01-14 09:40:39 -08:00
xster
9eb9ea0ffa
Let the tool warn about all old API plugins (#48282) 2020-01-13 21:30:42 -08:00
Zachary Anderson
ef62092b9b
Revert "[flutter_tools] File system utilities (#48738)" (#48755)
This reverts commit 0349660622.
2020-01-13 14:30:37 -08:00
Zachary Anderson
0349660622
[flutter_tools] File system utilities (#48738) 2020-01-13 13:17:45 -08:00
Alexandre Ardhuin
4f9b6cf017
enable lint prefer_final_in_for_each (#47724) 2020-01-07 16:32:04 +01:00
Jonah Williams
ee7a37f1d3
[flutter_tools] Ensure that global variables are easily identifiable (#47398) 2020-01-06 11:04:20 -08:00
Devon Carew
c924f499f5
ignore a (potentially) unused import in generated code (#47593) 2020-01-03 11:04:03 -08:00
Alexandre Ardhuin
4adad2c652
update list of lints (#47661) 2019-12-23 18:40:56 +01:00
Alek Åström
853c8c569f [flutter_tools] Add violating plugin name to validation errors (#46601) 2019-12-17 14:08:03 -08:00
Ian Hickson
449f4a6673
License update (#45373)
* Update project.pbxproj files to say Flutter rather than Chromium

Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright.

* Update the copyright notice checker to require a standard notice on all files

* Update copyrights on Dart files. (This was a mechanical commit.)

* Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine.

Some were already marked "The Flutter Authors", not clear why. Their
dates have been normalized. Some were missing the blank line after the
license. Some were randomly different in trivial ways for no apparent
reason (e.g. missing the trailing period).

* Clean up the copyrights in non-Dart files. (Manual edits.)

Also, make sure templates don't have copyrights.

* Fix some more ORGANIZATIONNAMEs
2019-11-27 15:04:02 -08:00
Michael Klimushyn
901eb0fc81
Add a note to generated plugins files (#45557)
There has been some confusion about whether or not
.flutter-plugins-dependencies should be tracked in version control or
not. Added a comment to both it and .flutter-plugins explaining that
it's generated and shouldn't be.

.flutter-plugins-dependencies is parsed through JSON, and the JSON spec
doesn't support comments. So unfortunately the note is living in an
arbitrary "_info" key instead of an obvious top level comment.
2019-11-25 11:47:20 -08:00
Alexandre Ardhuin
980f14e0c5
implicit-casts:false on flutter_tools (#45153)
* implicit-casts:false on flutter_tools

* use castStringKeyedMap

* address review comments

* address review comments

* fix issues after rebase
2019-11-24 06:54:43 +01:00
Emmanuel Garcia
b6e92003c8
Add .flutter-plugins-dependencies to the project, which contains the app's plugin dependency graph (#45379) 2019-11-22 15:02:20 -08:00
Amir Hardon
e43a69a9fe
Allow a no-op default_package key for a plugin platform (#45364) 2019-11-21 16:37:34 -08:00
Amir Hardon
53c7ca7d5a
Allow unknown fields in pubspec plugin section (#45303) 2019-11-20 17:00:46 -08:00
Alexandre Ardhuin
adc7351046
implicit-casts:false on flutter_tools/lib (#44447)
* implicit-casts:false on flutter_tools/lib

* address review comments

* use castStringKeyedMap

* introduce {bool,string,strings}Arg

* fix ci
2019-11-19 07:57:42 +01:00
xster
9e0df259df
Show a warning when a module uses a v1 only plugin (#44499) 2019-11-11 15:56:43 -08:00
Ian Hickson
f4da9f72eb
Deprecation cleanup in flutter_tools (#44469)
One deprecated member was no longer used; removed it.

The other probably shouldn't be deprecated, because it's not the
parser that's deprecated so much as the format it's parsing. The code
itself will live on until we decide to stop supporting the format,
it's not like people calling the member should use something else.
2019-11-08 16:31:34 -08:00
Emmanuel Garcia
cb614d1339
Fix v1 embedding support heuristic for plugins (#44214) 2019-11-07 08:24:19 -08:00
Michael Klimushyn
02aac5072c
Revert "Exit tool if a plugin supports the embedding v2 but the app doesn't (#44026)"
This missed some plugins that _do_ support the v1 embedding
(shared_preferences as one known case) so caused unexpected breakages.

This reverts commit b94c1a41ca.
2019-11-05 14:38:09 -08:00
xster
ba26f926c7
Add Android embedding version analytics (#44043) 2019-11-05 12:38:42 -08:00
Emmanuel Garcia
b94c1a41ca Exit tool if a plugin supports the embedding v2 but the app doesn't (#44026) 2019-11-04 13:37:51 -08:00
Emmanuel Garcia
ade8dfac3d
Move the plugin registrant to io.flutter.plugins and add the @Keep annotation (#44011) 2019-11-01 16:58:26 -07:00
Emmanuel Garcia
7e60a65ff0
Don't read AndroidManifest.xml if it doesn't exit (#43669) 2019-10-29 16:05:13 -07:00
Harry Terkelsen
eba69caf97
Don't html-escape in the plugin registrant templates. (#43448)
* Don't html-escape in the plugin registrant templates.

Fixes #43382

* Add test
2019-10-25 15:00:05 -07:00
Emmanuel Garcia
0a93f4eb75
Remove isNewAndroidEmbeddingEnabled flag when reading an existing pro… (#42684) 2019-10-16 12:47:04 -07:00
Jenn Magder
649cf82018
use_modular_headers (#42204) 2019-10-15 12:36:50 -07:00
Emmanuel Garcia
5961bcc505
Generate projects using the new Android embedding (#41666)
* Generate projects using the new Android embedding

* Add comment about usesNewEmbedding:true

* Feedback

* Rework way to detect new embedding in new apps
2019-10-04 06:23:03 -07:00
Alexandre Ardhuin
f0553ba58e
Missing trailing commas (#41473)
* add missing trailing commas

* add more missing trailing commas

* add more and more missing trailing commas
2019-09-30 18:48:23 +02:00
stuartmorgan
56d68a9071
Add the beginnings of plugin support for Windows and Linux (#41015)
Adds very preliminary support for Windows and Linux plugins:
- Adds those platforms to the new plugin schema, initially supporting just a plugin class.
- Adds C++ plugin registrant generation for any Windows or Linux plugins found.

This doesn't have yet have any build tooling for either platform, so anyone using the generated registrant still needs to do manual build configuration. This reduces the manual work, however, and creates a starting point for future tooling work.

As with all Windows and Linux work at this time, this is not final, and subject to change without warning in the future (e.g., Windows could potentially switch to a C# interface, or
'linux' may change to 'gtk' or 'linux_gtk' in pubspec.yaml).
2019-09-26 14:01:57 -07:00
Alexandre Ardhuin
b873162194
fix some bad indentations (#41172) 2019-09-24 21:03:37 +02:00
stuartmorgan
c32e543207
Invalidate macOS pods on plugin changes (#40730)
When the plugin list changes, iOS pods are invalidated, but that was
never wired up for macOS.

Should fix #39327
2019-09-18 21:42:57 -07:00
Zachary Anderson
e2340c641d
[flutter_tool] Use curly braces around single statment control structures (#40446) 2019-09-13 14:51:35 -07:00
Jenn Magder
b80b9bea38
Set DEFINES_MODULE for FlutterPluginRegistrant to generate modulemap (#40302) 2019-09-13 11:03:46 -07:00
Jenn Magder
ba13aa943c
Make FlutterPluginRegistrant a static framework so add-to-app can use plugins with static frameworks (#40401) 2019-09-12 18:51:49 -07:00
stuartmorgan
ef97a69dab
Make Swift plugin template swift-format compliant (#40195)
swift-format will alphabetize import statements, so Flutter* should be
before Foundation. Also, separating the "Generated file" comment
prevents the formatter from thinking that the comment is associated with
the following import, rather than the file, if it does re-order.
2019-09-11 07:43:50 -07:00
Harry Terkelsen
83da35fbbc
If there are no web plugins, don't generate a plugin registrant (#39910) 2019-09-06 12:54:31 -07:00
Harry Terkelsen
d33cf11556
Automatically generated registrants for web plugins (#39628)
* WIP on web plugin registry

* WIP on registering plugins

* WIP on web plugin registration

* Only generate `package:flutter_web_plugins` imports if plugins are
defined

* Add parsing test

* Add documentation

* Fix analyzer warnings

* add license headers

* Add tests for package:flutter_web_plugins

* Run `flutter update-packages --force-upgrade`

* Fix analyzer errors

* Fix analyzer error in test

* Update copyright and remove flutter SDK constraints

* Enable tests since engine has rolled

* add flutter_web_plugins tests to bots

* Create an empty .packages file for WebFs test
2019-09-03 10:37:34 -07:00
Kaushik Iska
fc05c3738c
Flutter Plugin Tool supports multi-platform plugin config (#38632) 2019-08-29 21:51:31 -07:00
Zachary Anderson
b7c714e84c
[flutter_tool] Use a timeout for xcode showBuildSettings (#39280) 2019-08-28 10:03:53 -07:00