Commit Graph

25 Commits

Author SHA1 Message Date
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
dd88b20435
[flutter_tools] quality pass on Linux build (#55556)
- Update the Linux build to support most of the build configuration, though like windows most only make sense for profile/release.
- Ensure VERBOSE_SCRIPT_LOGGING is set when the logger is verbose
- Automatically run pub get like other build commands
2020-04-25 19:02:03 -07:00
Jenn Magder
ba57ea09d1
Revert "Move processUtils into globals (#53209)" (#53301) 2020-03-25 14:59:03 -07:00
Jenn Magder
9ccac00599
Move processUtils into globals (#53209) 2020-03-25 11:23:08 -07:00
Jenn Magder
f6a55125d2
Add usage event for failed iOS project migration (#51879) 2020-03-06 12:14:29 -08:00
stuartmorgan
8d8439f8e3
Add pre-stable support for create on Linux (#51832)
Adds initial support for `flutter create` of apps and plugins. This is derived from the current FDE example app and sample plugin, with a few changes:
- Added template values where it makes sense.
- Moved some likely-to-change values into separate files for now, to simplify the delete/recreate cycle that will be necessary until it's stable.
- Added some minor Makefile flag handling improvements

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.
2020-03-03 22:42:52 +01: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
Alexandre Ardhuin
f15c887c63
change quote to avoid escapes (#50368) 2020-02-11 20:58:27 +01:00
stuartmorgan
58d6c425e4
Check for desktop project files before building (#48350)
Moves the checks that projects have been configured for desktop to a lower level, where they will cover more codepaths (e.g., 'run'), and improves them to check for native build projects, rather than just directories, to catch cases where the directory exists (e.g., due to accidental creation of generated files).

Also adds links to the error messages pointing to instructions on adding desktop support to a project.

Fixes #47145
2020-01-08 12:39:49 -08:00
Jonah Williams
ee7a37f1d3
[flutter_tools] Ensure that global variables are easily identifiable (#47398) 2020-01-06 11:04:20 -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
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
Jonah Williams
450a72488d
set trace to true for desktop builds (#43577) 2019-10-28 10:27:11 -07:00
Jonah Williams
480342899e
Switch desktop build commands to use process utils (#42373) 2019-10-09 18:58:27 -07:00
Jonah Williams
14c1c211d5
Catch argument error from Make when it isn't installed (#42252) 2019-10-08 14:53:55 -07:00
Alexandre Ardhuin
83e5a8a0e4
some formatting changes (#41640) 2019-10-08 18:32:10 +02:00
stuartmorgan
d1761f1072
Pass Linux build mode on command line (#41551)
Currently Linux builds override the default BUILD mode by putting it in
the generated config. That makes it sticky for manual runs of make,
which is inconsistent with how other platforms work.

Instead, pass the build mode as a command-line override, the same way
someone would if building directly with make. This makes the flow of
controlling the mode less confusing.

Fixes #41528
2019-09-30 09:36:40 -07:00
stuartmorgan
d03aecab58
Add an ephemeral directory for Linux (#40587)
Moves the generated config into that directory. Matches the structure of
the other desktop projects.

Also fixes #40265
2019-09-16 16:04:55 -07:00
stuartmorgan
01530928f0
Add build warning for non-debug desktop builds (#38932)
When building in profile or release mode on desktop, add a prominent
warning that it's actually a debug build. This is to help address issues
with people being unaware of the current state of builds due to
following third-party guides rather than official documentation.

macOS is not included since PRs are in flight for macOS release support.
2019-08-20 20:16:29 -07:00
Zachary Anderson
ef146f63bb
[flutter_tool] Clean up usage events and custom dimensions (#36785) 2019-07-29 07:24:02 -07:00
Todd Volkert
aa9a115181
Move reporting files to reporting/ (#36017)
Slight cleanup of file locations in flutter_tools
to make it easier to see which files are responsible
for data reporting.
2019-07-16 13:21:06 -07:00
Zachary Anderson
b847ba5a63
[flutter_tool] Send build timing to analytics (#34049) 2019-06-07 13:50:45 -07:00
Jonah Williams
8b0243f413
Teach Linux to use local engine (#31631) 2019-05-11 00:08:29 -07:00
Jonah Williams
37c73e77f1
Remove need for build/name scripts on Linux desktop (#31567) 2019-04-24 13:34:56 -07:00
Jonah Williams
ac36e4423e
Add flutter run support for linux and windows (#31229) 2019-04-18 18:05:04 -07:00