Commit Graph

133 Commits

Author SHA1 Message Date
xster
e1ae4dfcae
Move v1 embedding migration warning from plugin consumers to all apps (#64181) 2020-08-19 22:32:08 -07:00
Jonah Williams
16df32b1eb
[flutter_tools] handle invalid yaml in plugin dependency (#63526) 2020-08-11 19:31:03 -07:00
Nolan Scobie
43c1b34cf5
Add punctuation for unterminated sentences in doc comments (#62755)
* Add punctuation for unterminated sentences in doc comments

* Addressing review nit
2020-08-06 19:18:52 -04:00
Jenn Magder
0aafdf9aa9
Change minimum iOS version from 8.0 to 9.0 (#62902) 2020-08-06 13:46:15 -07:00
huangchaoyang
9da74f66ca
Show correct errors when plugins yaml forgot the 'flutter.plugins.pla… (#61338) 2020-07-22 18:24:03 -07:00
xster
8bd2e6585b
Remove v1 Android create templates (#61203) 2020-07-11 12:15:19 -07:00
Jonah Williams
846418b60b
[flutter_tools] fix crash if the platform section was a list (#60927)
Missed validation to go with cast. Added test case to reproduce.
2020-07-07 10:24:42 -07:00
stuartmorgan
4b12050112
Switch Windows to CMake (#60629)
* First pass at CMake files; untested

* First pass of adding CMake generation logic on Windows

* Misc fixes

* Get bundling working, start incoprorating CMake build into tool

* Fix debug, exe name.

* Add resources

* Move cmake.dart

* Rip out all the vcxproj/solution plumbing

* Fix plugin cmake generation

* Build with cmake rather than calling VS directly

* Adjust Windows plugin template to match standard header directory structure

* Pass config selection when building

* Partially fix multi-config handling

* Rev template version

* Share the CMake generation instead of splitting it out

* VS build/run cycle works, with slightly awkward requirement to always build all

* Update manifest

* Plugin template fixes

* Minor adjustments

* Build install as part of build command, instead of separately

* Test cleanup

* Update Linux test for adjusted generated CMake approach

* Plugin test typo fix

* Add missing stub file for project test

* Add a constant for VS generator
2020-07-06 12:59:16 -07:00
Jonah Williams
82a6f9bf0b
[flutter_tools] remove most use of global packages path (#60231)
The global packages path could cause tests to fail when it would be overriden to unexpected (in test setup) values. Remove most usage and make it a configuration on buildInfo, along with most other build information. Cleanup the asset builder to require the .packages path and the resident runners to no longer require it, since they already have the information in build_info.

It needs to stick around for the fuchsia deps we do not control.

Filled #60232 for remaining work.
2020-06-25 12:52:14 -07:00
Chris Yang
2e63b7d4f8
Add --platforms to flutter create -t plugin command (#59507) 2020-06-23 17:38:03 -07:00
stuartmorgan
61c198e766
Switch Linux to the GTK embedding (#59287)
Updates the tooling to use the GTK embedding, rather than the GLFW embedding:
- Adds new requirements to `doctor`
- Updates the app and plugin templates to make GTK-based runners and plugins
- Stops downloading and installing the GLFW artifacts

Final part of #54860, other than cleanup.
2020-06-16 13:31:24 -07:00
Marcus Tomlinson
1fe0f22645
Remove use of BundleUtilities in Linux build (#59080)
* Explicitly install the Flutter library

* Publish ${FLUTTER_LIBRARY} to parent scope

* Bundle plugin libraries

* Bundle <plugin_name>_bundled_libraries too

* BUNDLED_LIBRARIES -> PLUGIN_BUNDLED_LIBRARIES

* Update Linux plugin test

* Address review comments
2020-06-11 22:00:28 +01:00
Jonah Williams
8e765c7f6a
[flutter_tools] put system clock on globals (#57447) 2020-05-18 09:56:22 -07:00
Jonah Williams
b19b744bb7
[flutter_tools] check for Runner.sln when parsing for plugins (#57392)
Throw a toolExit if the windows plugin logic runs on an invalid windows project. Update the supported project check to validate the existence of a Runner.sln file
2020-05-18 09:24:51 -07:00
stuartmorgan
8abf0a6d8c
Switch to CMake for Linux desktop (#57238)
Updates the Linux templates to use CMake+ninja, rather than Make, and updates the tooling to generate CMake support files rather than Make support files, and to drive the build using cmake and ninja.

Also updates doctor to check for cmake and ninja in place of make.

Note: While we could use CMake+Make rather than CMake+ninja, in testing ninja handled the tool_backend.sh call much better, calling it only once rather than once per dependent target. While it does add another dependency that people are less likely to already have, it's widely available in package managers, as well as being available as a direct download. Longer term, we could potentially switch from ninja to Make if it's an issue.

Fixes #52751
2020-05-16 15:07:34 -07:00
Jonah Williams
7b1d24216e
[flutter_tools] Make packages not required for local engine (#55882) 2020-04-28 14:53:53 -07:00
Jonah Williams
d46da3ae11
[flutter_tools] remove PackageMap and finish PackageConfig migration (#55244) 2020-04-21 19:55:15 -07:00
Francisco Magdaleno
e012752634
[flutter_tools] Don't generate native registrant classes if no pluginClass is defined (#53785) 2020-04-03 11:51:01 -07:00
Jenn Magder
c9323bdccd
Convert cocoapods_validator_test to testWithoutContext (#53177) 2020-03-24 11:34:57 -07:00
stuartmorgan
685e9d1e47
Add pre-stable support for create on Windows (#51895)
Adds initial support for flutter create of apps and plugins. This is derived from the current FDE example app and sample plugin, adding template values where relevant.

Since the APIs/tooling/template aren't stable yet, the app template includes a version marker, which will be updated each time there's a breaking change. The build now checks that the template version matches the version known by that version of the tool, and gives a specific error message when there's a mismatch, which improves over the current breaking change experience of hitting whatever build failure the breaking change causes and having to figure out that the problem is that the runner is out of date. It also adds a warning to the create output about the fact that it won't be stable.

Plugins don't currently have a version marker since in practice this is not a significant problem for plugins yet the way it is for runners; we can add it later if that changes.

Fixes #30704
2020-03-23 10:42:26 -07:00
Finn
9e848f3c78
Add ignore public member api docs in template (#52422) 2020-03-12 10:36:02 -07:00
Emmanuel Garcia
4049889d9e
Make --androidx flag a noop in flutter create (#52340) 2020-03-10 20:05:41 -07:00
stuartmorgan
dd2756c36a
Generate a makefile for Linux plugins (#51520)
When generating the plugin registrant for Linux, also generate a
makefile that can be included in the app-level Makefile to manage all of
the plugin targets and flags, exporting them in a few known variables
for use in the outer makefile.

Part of #32720
2020-02-27 09:45:22 -08:00
Jonah Williams
3b5668c996
[flutter_tools] hide usage of package:mustache behind interface (#51500) 2020-02-27 09:17:42 -08:00
Jenn Magder
e31521eab5
Validate empty pubspec plugin section (#51503) 2020-02-26 15:44:35 -08:00
stuartmorgan
22c807773a
Automatically add plugin projects to Windows .sln (#51246)
Adds utility code for managing list of plugin projects within a solution file, updating them as the plugins change.

This is a prototype of an approach to solution-level portion of Windows plugin tooling; it may not be what the final plugin handling on Windows uses, but it makes things much better in the short term, and gives us a baseline to evaluate other possible solution management systems against.

Part of #32719
2020-02-25 14:16:27 -08:00
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