summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
authorGabriel Fontes <hi@m7.rs>2023-05-04 20:22:04 -0300
committerGabriel Fontes <hi@m7.rs>2023-05-05 13:32:50 -0300
commitd161ef5631ae8826255e6c517b4fa59c369bf0f2 (patch)
treea3cea3d7eecbd10fdfb56467d5c2e677df77b00d /doc
parent782c8b44ddda7b5c51ad22d388d93bb39f05586e (diff)
buildFlutterApplication: add docs
Diffstat (limited to 'doc')
-rw-r--r--doc/languages-frameworks/dart.section.md31
1 files changed, 30 insertions, 1 deletions
diff --git a/doc/languages-frameworks/dart.section.md b/doc/languages-frameworks/dart.section.md
index eb7c82748ad6e..b00327b78eb29 100644
--- a/doc/languages-frameworks/dart.section.md
+++ b/doc/languages-frameworks/dart.section.md
@@ -6,7 +6,7 @@ The function `buildDartApplication` builds Dart applications managed with pub.
 
 It fetches its Dart dependencies automatically through `fetchDartDeps`, and (through a series of hooks) builds and installs the executables specified in the pubspec file. The hooks can be used in other derivations, if needed. The phases can also be overridden to do something different from installing binaries.
 
-If you are packaging a Flutter desktop application, use the `buildFlutterApplication` function instead.
+If you are packaging a Flutter desktop application, use [`buildFlutterApplication`](#ssec-dart-flutter) instead.
 
 `vendorHash`: is the hash of the output of the dependency fetcher derivation. To obtain it, simply set it to `lib.fakeHash` (or omit it) and run the build ([more details here](#sec-source-hashes)).
 
@@ -34,3 +34,32 @@ buildDartApplication rec {
   vendorHash = "sha256-Atm7zfnDambN/BmmUf4BG0yUz/y6xWzf0reDw3Ad41s=";
 }
 ```
+
+## Flutter applications {#ssec-dart-flutter}
+
+The function `buildFlutterApplication` builds Flutter applications.
+
+The deps.json file must always be provided when packaging in Nixpkgs. It will be generated and printed if the derivation is attempted to be built without one. Alternatively, `autoDepsList` may be set to `true` when outside of Nixpkgs, as it relies on import-from-derivation.
+
+A `pubspec.lock` file must be available. See the [Dart documentation](#ssec-dart-applications) for more details.
+
+```nix
+{  flutter, fetchFromGitHub }:
+
+flutter.buildFlutterApplication {
+  pname = "firmware-updater";
+  version = "unstable-2023-04-30";
+
+  src = fetchFromGitHub {
+    owner = "canonical";
+    repo = "firmware-updater";
+    rev = "6e7dbdb64e344633ea62874b54ff3990bd3b8440";
+    sha256 = "sha256-s5mwtr5MSPqLMN+k851+pFIFFPa0N1hqz97ys050tFA=";
+    fetchSubmodules = true;
+  };
+
+  pubspecLockFile = ./pubspec.lock;
+  depsListFile = ./deps.json;
+  vendorHash = "sha256-cdMO+tr6kYiN5xKXa+uTMAcFf2C75F3wVPrn21G4QPQ=";
+}
+```