334 Commits

Author SHA1 Message Date
Adam Barth
3433f42b09 Attempt to fix Fuchsia build (#12259) 2017-09-26 08:50:41 -07:00
xster
e28765a997 Delinting future awaits round 3 (#10791)
* round 3

* partially address comments

* merge

* review notes

* review

* review

* review
2017-09-20 17:24:43 -07:00
P.Y. Laligand
c12b184dc3 Add missing context bits to Fuchsia tools. (#10891) 2017-06-21 14:03:13 -07:00
Brian Slesinsky
3528cd6f2d flutter test: add --machine flag (#10520)
Currently this just prints the observatory URL as a JSON event.
Refactored the code to make this fit in.
2017-06-13 13:26:32 -07:00
Jakob Andersen
7818ea43dc Workaround for intermittent pub crash on macOS. (#9832)
Eagerly initialize libnotify by accessing the current date. See dart-lang/sdk#29539 for details.

Fixes #9727.
2017-05-05 13:30:48 +02:00
P.Y. Laligand
d2c6b0a637 Get rid of unnecessary flutter_root argument. (#9622) 2017-04-27 09:10:48 -07:00
P.Y. Laligand
5b02aaabb4 Added a simple test runner for Fuchsia. (#9461) 2017-04-20 14:18:24 -07:00
Ryan Macnak
249bbac362 Support for placing an AOT dylib in the flx. Part of Fuchsia AOT sup… (#9240)
Support for placing an AOT dylib in the flx.  Part of Fuchsia AOT support.
2017-04-06 11:12:12 -07:00
P.Y. Laligand
d356b2d77a Generate a depfile for assets of a flutter_app. (#8961) 2017-03-23 09:42:58 -07:00
Chris Bracken
0ee3f57a10 Build Flutter app as a framework on iOS (#8971)
**THIS IS A BREAKING CHANGE.** See below for migration steps for
existing projects.

Previously, Flutter app code was built as a raw dylib on iOS.  Dynamic
libraries outside of a framework bundle are not supported on iOS, except
for the system Swift libraries provided by Xcode.

See:
https://developer.apple.com/library/content/technotes/tn2435/_index.html#//apple_ref/doc/uid/DTS40017543-CH1-TROUBLESHOOTING_BUNDLE_ERRORS-EMBEDDED__DYLIB_FILES

* Migrates Xcode build from app.dylib to App.framework
* Migrates flutter create template
* Migrates example projects

Migration steps for existing projects
=====================================

The following steps should be taken from the root of your Flutter
project:

1. Edit `ios/.gitignore`: add `/Flutter/App.framework` on a new line.
2. In the Xcode project navigator, remove `app.dylib` from the Flutter
   folder. Delete this file from the `ios/Flutter` directory in your project.
3. Run a build to generate `ios/Flutter/App.framework`. From the command
   line, run `flutter build ios`. If you have not configured app signing
   in Xcode, an alternative method is to open the simulator, then run
   `flutter run -d iP`.
4. In the Xcode project navigator, select the `Runner` project. In the
   project settings that are displayed in the main view, ensure that the
   `Runner` target is selected. You can verify this by exposing the
   sidebar using the [| ] icon in the upper-left corner of the main
   view.
5. Select the *General* tab in the project settings. Under the
   *Embedded Binaries* section, click '+' to add `App.framework`. In the
   sheet that drops down, click the *Add Other...* button. Navigate to
   the `ios/Flutter` directory and select `App.framework`. Click *Open*.
   In the sheet that drops down, select *Create folder references*, then
   click *Finish*.
6. In the project settings, verify that `App.framework` has been added to the
   *Embedded Binaries* and *Linked Frameworks and Libraries* lists.
7. In the Xcode project navigator, drag `App.framework` under the
   Flutter folder.
8. In the Xcode project navigator, select `Flutter` then from the
   *File* menu, select *Add Files to "Runner"...*. Navigate to the
   `ios/Flutter` directory, select `AppFrameworkInfo.plist` and click
   the *Add* button.
9. From the command line, in your project directory, run
   `flutter build clean`, then `flutter run`.

At this point your project should be fully migrated.
2017-03-22 17:41:49 -07:00
Chris Bracken
e22d0e603c Make only Flutter.framework files read-only (#8766)
Making the directories read-only causes problems with deletion, which
breaks the Mac chrome buildbot and DeviceLab.

Followup patch to cb2b89c38.
2017-03-14 09:31:31 -07:00
Chris Bracken
cb2b89c389 Set derived dir Flutter.framework directory readonly (#8748)
Provides a strong hint to developers that editing Flutter framework
headers isn't supported.
2017-03-13 15:26:35 -07:00
Chris Bracken
1a2e6f3389 Support Xcode builds in project dirs with spaces (#8709)
Use line-based iteration in place of word-based iteration over the
framework directories, to avoid breaking on spaces.
2017-03-10 09:32:58 -08:00
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