71 Commits

Author SHA1 Message Date
Chris Bracken
7a09316cd0 Declare locals final where not reassigned (flutter_tools) (#8570) 2017-03-03 17:50:46 -08:00
Alexandre Ardhuin
2888139c6b prefer const constructor (#8292) 2017-02-20 14:07:16 -08:00
Chris Bracken
36e3260bfe Do not attempt to merge non-fat frameworks in Xcode build (#8251)
* Do not attempt to merge non-fat frameworks in Xcode build

During the Xcode build, we strip code irrelevant to the target
architecture in frameworks used by the application. In the case of
non-fat executables, no stripping occurs, so the frameworks can be used
as-is. No merge & replace step is necessary.

* fixup! Do not attempt to merge non-fat frameworks in Xcode build
2017-02-17 13:38:47 -08:00
Chris Bracken
3449545e80 Quote all paths in Xcode build backend (#8039)
Required to handle Flutter SDK (and other) paths that include spaces.

Also includes general cleanup:
* Declare explicitly that we use /bin/bash, since we rely on its
  features.
* Add -- where possible, to avoid interpreting files starting in - as
  options.
* Suppress output of pushd/popd.
* Avoid stringifying arrays.
2017-02-09 15:08:33 -08:00
Chris Bracken
0294cf863e Improve file/dir existence check for Xcode backend (#8037) 2017-02-09 13:45:39 -08:00
Chris Bracken
b16a515d9c Handle non-fat frameworks in iOS app framework thinning (#7950)
Support for thinning app frameworks to the target architecture was added
in 708909fc6b4a6f50d024c0d36843883284001219. This commit adds support
and error-checking for non-fat frameworks that are not of the target
architecture. In such cases, we now fail the build, and emit an error
message and the contents of lipo -info for the affected framework.
2017-02-07 15:57:16 -08:00
Chris Bracken
1926d11188 Thin iOS app frameworks to the target architecture (#7913)
* Support thinning iOS frameworks to supported architectures

When building against frameworks that are distributed as
multi-architecture fat binaries, we want to strip the frameworks we
distribute down to only the architectures specified in $ARCHS.

This patch adds:
* The ability to specify commands to xcode_backend.sh (if none is
  specified, run BuildApp for backward compatibility).
* A 'thin' command that invokes lipo to thin down the distributed as
  described above.

* Add framework thinning step to iOS build

Invokes xcode_backend.sh thin on the build application.

* Limit architectures to arm64 in Xcode template

Flutter does not yet support armv7 iOS devices. Limit the $ARCHS build
variable to arm64 until then.
2017-02-07 12:04:36 -08:00
Todd Volkert
417c2f25fc Migrate flutter_tools to use package:platform (#7642) 2017-01-25 16:06:41 -08:00
Todd Volkert
03d163ce88 Update tools to use package:process (#7590) 2017-01-23 09:46:38 -08:00
Todd Volkert
016b5ab0cc Force all dart:io usage to go through 'base/io.dart' (#7390)
This ensures that accidental usages of dart:io's
file API don't creep in over time.
2017-01-09 08:37:00 -08:00
Todd Volkert
8bb270342e Update flutter_tools to use package:file throughout (#7385)
This removes direct file access from within flutter_tools
in favor of using `package:file` via a `FileSystem` that's
accessed via the `ApplicationContext`.

This lays the groundwork for us to be able to easily swap
out the underlying file system when running Flutter tools,
which will be used to provide a record/replay file system,
analogous to what we have for process invocations.
2017-01-06 16:51:44 -08:00
Todd Volkert
df675f45ee Fix Fuchsia build (#7105) 2016-11-30 10:06:48 -08:00
John McCutchan
618030e044 More AppContext cleanups (#7073) 2016-11-29 11:22:48 -08:00
P.Y. Laligand
f1938c60af Fix building Fuchsia apps. (#7071)
Started failing at 0b737ac57b071df65761f164913ece6db0a85804.
2016-11-29 09:57:58 -08:00
P.Y. Laligand
069d31d095 Add manifest argument for building apps on Fuchsia. (#7004) 2016-11-23 15:52:35 -08:00
Dan Rubel
e384c0d982 Refactor flutter command exit code - part 2 (#6817)
* convert pubGet to throw ToolExit on non-zero exit code
* convert commandValidator to throw ToolExit for non-zero exit code
* convert flutter commands to throw ToolExit for non-zero exit code
* use convenience method throwToolExit
* only show "if this problem persists" for unusual exceptions
2016-11-13 22:09:03 -05:00
P.Y. Laligand
9b7764d48f Added an option to allow default fonts to not be packed in an flx file. (#6710)
Fonts should never be bundled on Fuchsia.
2016-11-04 14:06:44 -07:00
Jason Simmons
984b62390c Fix builds of FLX bundles using AOT compilation (#6684) 2016-11-03 10:48:57 -07:00
Petr Hosek
93a2d07c63 Use prebuilt Dart snapshot when assembling bundle (#6660)
This is causing issues when integratting Flutter into GN as the
generated depfile refers to snapshot as the target instead of the
bundle. We instead use a separate GN action to generate the
snapshot use the Flutter compiler to only assemble the bundle.
2016-11-02 14:37:42 -07:00
Adam Barth
c074265298 Add support for building on Fuchsia (#6415)
This patch makes it possible to build Flutter apps that use the framework on
Fuchsia.
2016-10-20 01:32:45 -07:00
P.Y. Laligand
522f607b05 Allow an output file header to be specified when building for Fuchsia. (#6181) 2016-10-03 17:36:15 -07:00
P.Y. Laligand
928d49dc27 Dedicated executable to build flx files for Fuchsia. (#6159) 2016-09-30 18:12:27 -07:00
Chris Bracken
b5f763b45e Support a configurable build directory (#5601)
This change adds a top-level getBuildDirectory func and funcs for
android, aot, asset, ios build products.

Developers may now add a "build-dir" mapping to their
~/.flutter_settings (JSON format) config file. Output directory is
relative to the main flutter application directory.

This change also changes the default build directory for iOS builds to a
subdirectory of the configured build directory, 'build/ios' by default.
2016-08-25 16:38:19 -07:00
Chris Bracken
81d672688d Emit iOS build products under $SYMROOT (#5560)
Previously, `flutter build` products were emitted to build/ and only
xcode build products were emitted to $SYMROOT.
2016-08-23 14:08:59 -07:00
Todd Volkert
d2ee6f7838 Rename app.so -> app.dylib (#4522) 2016-06-10 16:57:21 -07:00
Adam Barth
8f03ebe56b Teach FlutterPlugin.groovy about AOT builds (#4389)
The `flutter.buildMode` property now controls whether to build in debug,
profiling, or release.
2016-06-06 12:56:04 -07:00
Adam Barth
29af5c0317 Set a sensible default framework path (#4370)
This patch sets a default path for Flutter.framework that's sensible based on
the FLUTTER_MODE.
2016-06-03 17:01:18 -07:00
Chinmay Garde
8756a094a9 Add a FLUTTER_MODE variable to the generated Xcconfig and fix snapshot generation on all targets. (#4362)
Get rid of the DART_EXPERIMENTAL_INTERPRETER_FLAG.
2016-06-03 13:55:57 -07:00
Adam Barth
8171aa86f0 Document how to build hello_services for iOS (#4354)
This patch adds some sensible defaults to xcode_backend.sh and documents how to
build hello_services for iOS using Xcode.
2016-06-03 12:20:54 -07:00
Adam Barth
612a097d1f Add --target support to flutter build ios (#4318)
Fixes #4298
2016-06-02 08:57:13 -07:00
Adam Barth
aee32698ac Add backend tools for extensible iOS apps (#4250)
Instead of embedding Flutter.framework and BuildFlutterApp in the Xcode
project, we store these in flutter.git, where we can reference them.
2016-05-27 15:30:42 -07:00
Hixie
c7339de6bc Enable always_declare_return_types lint
And fix a zillion omissions this uncovered.
2016-03-09 17:57:39 -08:00
Adam Barth
c477b1250b Remove build_sky_apk.dart
This script has been subsumed by `flutter apk`.
2015-11-28 19:16:23 -08:00
Adam Barth
da0a12c611 Rename sky_tools to flutter_tools 2015-11-10 13:20:35 -08:00
Ian Hickson
3419068cb3 Port test logic to Dart. 2015-11-09 09:00:49 -08:00
Adam Barth
113500206a Remove the --http option 2015-11-06 20:17:24 -08:00
Devon Carew
bb1da703a6 return exit codes on failures 2015-10-17 11:50:23 -07:00
Adam Barth
9148e1779f Expose main via executable.dart
Expose the main entry point for the tools via the library lets us run the tools
from the Flutter package, which simplifies the setup for end developers because
they don't need to declare a dependency on sky_tools directly.
2015-10-10 00:15:21 -07:00
Adam Barth
287817f224 Move Command subclasses into commands directory
I'm trying to get a feel for the code by writing some simple cleanup patches.
2015-10-09 23:22:20 -07:00
Ian Fischer
d07ca92995 Basic sky_tools list command, Android implementation, and test. 2015-10-01 08:43:57 -07:00
Ian Fischer
b8085cd033 Add sky_tools trace command, Android implementation, and basic test. 2015-09-30 14:02:29 -07:00
Ian Fischer
00bed774ce Add listen command and basic test, and don’t do unnecessary repeated work when listening or poking the android server. 2015-09-29 17:10:47 -07:00
Ian Fischer
5e11889160 Add logs command and android implementation. 2015-09-29 11:51:33 -07:00
Ian Fischer
8cac55a4e2 Add sky_tools start command and associated android support. 2015-09-29 09:54:10 -07:00
Ian Fischer
fa59233746 Add stop command and supporting Android support. 2015-09-25 16:16:19 -07:00
James Robinson
9996d4255e Configure ArtifactStore for all commands and make 'package-root' universal
This makes the 'package-root' option universal for sky_tools and configures the
ArtifactStore with it statically at startup. The actual sky_engine revision
is computed on demand.
2015-09-25 15:56:20 -07:00
Ian Fischer
cae053c353 Refactor all the commands to be Commands from the Args package. Also use CommandRunner for the top-level command. 2015-09-24 15:51:23 -07:00
James Robinson
f735604aca Add cache command to sky_tools with subcommands for populating/clearing
This adds the following commands to sky_tools:
  sky_tools cache clear: Nukes all local artifacts in the cache
  sky_tools cache populate: Populates the cache with all known artifacts

This is useful both to fix busted caches and to make sure that the cache is
fully populated so that subsequent operations can proceed without needing
network access.
2015-09-22 20:35:31 -07:00
Ian Fischer
0cc758d24e Set up plumbing for getting relevant paths to the right places without too much global state.
`dart bin/sky_tools.dart --debug --sky-src-path=/path/to/sky/src/ install` now works.
2015-09-22 11:17:39 -07:00
James Robinson
542da8ccd5 Adds a run_mojo command that downloads sky_viewer.mojo and runs an flx in it
This initial version assumes the developer has mojo_shell and all other services
sitting on disk somewhere and that they're on linux and only want to run on
linux. This can be generalized down the line to support more use cases. This
downloads the sky_viewer.mojo corresponding to the packages/sky_engine/REVISION
in the developer's directory, so they can specify whatever revision they want.
sky_tools run_mojo downloads sky_viewer.mojo into its cache directory if it is
not present and constructs a command line to pass to mojo_shell that maps the
shebang stamped into the flx to the downloaded sky_viewer.mojo.

Since sky_viewer.mojo lives in the cloud and mojo_shell can load from the cloud
this could also map to an https URL. This should likely be an option.
2015-09-21 22:06:05 -07:00