1. 27 May, 2020 1 commit
    • stuartmorgan's avatar
      Fix Linux plugin template build visibility (#58069) · 27e652c8
      stuartmorgan authored
      The CMake plugin build wasn't setting visibility to hidden by default,
      which meant that plugins exported everything by default. This would make
      bad interactions between plugins much more likely; only the intended API
      should be exported by the shared library.
      27e652c8
  2. 16 May, 2020 1 commit
    • stuartmorgan's avatar
      Switch to CMake for Linux desktop (#57238) · 8abf0a6d
      stuartmorgan authored
      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
      8abf0a6d
  3. 22 Apr, 2020 1 commit
  4. 07 Apr, 2020 1 commit
  5. 23 Mar, 2020 1 commit
    • stuartmorgan's avatar
      Add pre-stable support for create on Windows (#51895) · 685e9d1e
      stuartmorgan authored
      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
      685e9d1e
  6. 19 Mar, 2020 1 commit
  7. 11 Mar, 2020 1 commit
  8. 03 Mar, 2020 1 commit
    • stuartmorgan's avatar
      Add pre-stable support for create on Linux (#51832) · 8d8439f8
      stuartmorgan authored
      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.
      8d8439f8
  9. 28 Feb, 2020 1 commit
  10. 13 Feb, 2020 1 commit
  11. 10 Feb, 2020 1 commit
  12. 30 Jan, 2020 2 commits
  13. 26 Jan, 2020 1 commit
  14. 10 Jan, 2020 1 commit
  15. 09 Nov, 2019 1 commit
  16. 06 Nov, 2019 1 commit
  17. 17 Oct, 2019 1 commit
  18. 04 Oct, 2019 2 commits
  19. 20 Sep, 2019 1 commit
    • stuartmorgan's avatar
      Support create for macOS (app and plugin) (#40851) · 0412977e
      stuartmorgan authored
      Adds macOS support for `flutter create`:
      - Currently it is behind a hidden flag.
      - Adds a TargetPlatform workaround to lib/main.dart in the standard app template when enabled.
      - Supports `app` and `plugin`; `module` support doesn't yet exist for macOS in general.
      
      This will eliminate the need to use FDE's examples as templates on macOS. The templates are based on the current state of FDE's examples, with templating support added (and with adoption of the new application delegate in the app, which hadn't been done yet in FDE, eliminating some boilerplate from the template).
      
      Fixes #30703 
      0412977e
  20. 14 Sep, 2019 2 commits
  21. 26 Aug, 2019 1 commit
  22. 06 Aug, 2019 1 commit
  23. 23 Jul, 2019 3 commits
    • Emmanuel Garcia's avatar
      Flutter build aar (#36732) · 242a4225
      Emmanuel Garcia authored
      `flutter build aar`
      
      This new build command works just like `flutter build apk` or `flutter build appbundle`, but for plugin and module projects.
      
      This PR also refactors how plugins are included in app or module projects. By building the plugins as AARs, the Android Gradle plugin is able to use Jetifier to translate support libraries into AndroidX libraries for all the plugin's native code. Thus, reducing the error rate when using AndroidX in apps.
      
      This change also allows to build modules as AARs, so developers can take these artifacts and distribute them along with the native host app without the need of the Flutter tool. This is a requirement for add to app.
      
      `flutter build aar` generates POM artifacts (XML files) which contain metadata about the native dependencies used by the plugin. This allows Gradle to resolve dependencies at the app level. The result of this new build command is a single build/outputs/repo, the local repository that contains all the generated AARs and POM files.
      
      In a Flutter app project, this local repo is used by the Flutter Gradle plugin to resolve the plugin dependencies. In add to app case, the developer needs to configure the local repo and the dependency manually in `build.gradle`:
      
      
      repositories {
          maven {
              url "<path-to-flutter-module>build/host/outputs/repo"
          }
      }
      
      dependencies {
          implementation("<package-name>:flutter_<build-mode>:1.0@aar") {
             transitive = true
          }
      }
      242a4225
    • Emmanuel Garcia's avatar
      Revert "Add flutter build aar (#35217)" (#36731) · c9b466f9
      Emmanuel Garcia authored
      This reverts commit 11460b83.
      c9b466f9
    • Emmanuel Garcia's avatar
      Add flutter build aar (#35217) · 11460b83
      Emmanuel Garcia authored
      `flutter build aar`
      
      This new build command works just like `flutter build apk` or `flutter build appbundle`, but for plugin and module projects.
      
      This PR also refactors how plugins are included in app or module projects. By building the plugins as AARs, the Android Gradle plugin is able to use Jetifier to translate support libraries into AndroidX libraries for all the plugin's native code. Thus, reducing the error rate when using AndroidX in apps.
      
      This change also allows to build modules as AARs, so developers can take these artifacts and distribute them along with the native host app without the need of the Flutter tool. This is a requirement for add to app.
      
      `flutter build aar` generates POM artifacts (XML files) which contain metadata about the native dependencies used by the plugin. This allows Gradle to resolve dependencies at the app level. The result of this new build command is a single build/outputs/repo, the local repository that contains all the generated AARs and POM files.
      
      In a Flutter app project, this local repo is used by the Flutter Gradle plugin to resolve the plugin dependencies. In add to app case, the developer needs to configure the local repo and the dependency manually in `build.gradle`:
      
      
      repositories {
          maven {
              url "<path-to-flutter-module>build/host/outputs/repo"
          }
      }
      
      dependencies {
          implementation("<package-name>:flutter_<build-mode>:1.0@aar") {
             transitive = true
          }
      }
      11460b83
  24. 01 Jun, 2019 1 commit
  25. 14 May, 2019 1 commit
  26. 05 Apr, 2019 1 commit
  27. 12 Feb, 2019 1 commit
  28. 24 Jan, 2019 2 commits
  29. 15 Jan, 2019 1 commit
  30. 09 Jan, 2019 1 commit
  31. 08 Jan, 2019 1 commit
  32. 28 Nov, 2018 1 commit
    • Tim Sneath's avatar
      Updating readme templates for newly created projects (#24725) · 06ec8d3b
      Tim Sneath authored
      We hypothesize that many first-time users creating a new project will look at the README.md as a starting point for "what next". As we've updated our documentation particularly for new users, having better links to our codelabs and cookbooks will help them be productive.
      06ec8d3b
  33. 14 Nov, 2018 1 commit
  34. 08 Nov, 2018 1 commit