diff options
Diffstat (limited to 'doc/languages-frameworks')
-rw-r--r-- | doc/languages-frameworks/dart.section.md | 18 | ||||
-rw-r--r-- | doc/languages-frameworks/javascript.section.md | 1 | ||||
-rw-r--r-- | doc/languages-frameworks/qt.section.md | 11 | ||||
-rw-r--r-- | doc/languages-frameworks/rust.section.md | 19 |
4 files changed, 39 insertions, 10 deletions
diff --git a/doc/languages-frameworks/dart.section.md b/doc/languages-frameworks/dart.section.md index fca87fa70e4ec..58ee2d5050acb 100644 --- a/doc/languages-frameworks/dart.section.md +++ b/doc/languages-frameworks/dart.section.md @@ -80,6 +80,8 @@ Do _not_ use `dart run <package_name>`, as this will attempt to download depende ### Usage with nix-shell {#ssec-dart-applications-nix-shell} +#### Using dependencies from the Nix store {#ssec-dart-applications-nix-shell-deps} + As `buildDartApplication` provides dependencies instead of `pub get`, Dart needs to be explicitly told where to find them. Run the following commands in the source directory to configure Dart appropriately. @@ -103,6 +105,9 @@ flutter.buildFlutterApplication { pname = "firmware-updater"; version = "unstable-2023-04-30"; + # To build for the Web, use the targetFlutterPlatform argument. + # targetFlutterPlatform = "web"; + src = fetchFromGitHub { owner = "canonical"; repo = "firmware-updater"; @@ -117,4 +122,15 @@ flutter.buildFlutterApplication { ### Usage with nix-shell {#ssec-dart-flutter-nix-shell} -See the [Dart documentation](#ssec-dart-applications-nix-shell) for nix-shell instructions. +Flutter-specific `nix-shell` usage notes are included here. See the [Dart documentation](#ssec-dart-applications-nix-shell) for general `nix-shell` instructions. + +#### Entering the shell {#ssec-dart-flutter-nix-shell-enter} + +By default, dependencies for only the `targetFlutterPlatform` are available in the +build environment. This is useful for keeping closures small, but be problematic +during development. It's common, for example, to build Web apps for Linux during +development to take advantage of native features such as stateful hot reload. + +To enter a shell with all the usual target platforms available, use the `multiShell` attribute. + +e.g. `nix-shell '<nixpkgs>' -A fluffychat-web.multiShell`. diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md index 152974b465a54..5d2a6413e104a 100644 --- a/doc/languages-frameworks/javascript.section.md +++ b/doc/languages-frameworks/javascript.section.md @@ -354,6 +354,7 @@ mkYarnPackage rec { - The `echo 9` steps comes from this answer: <https://stackoverflow.com/a/49139496> - Exporting the headers in `npm_config_nodedir` comes from this issue: <https://github.com/nodejs/node-gyp/issues/1191#issuecomment-301243919> +- `offlineCache` (described [above](#javascript-yarn2nix-preparation)) must be specified to avoid [Import From Derivation](#ssec-import-from-derivation) (IFD) when used inside Nixpkgs. ## Outside Nixpkgs {#javascript-outside-nixpkgs} diff --git a/doc/languages-frameworks/qt.section.md b/doc/languages-frameworks/qt.section.md index 2300c5f60edeb..5d2850de3dca1 100644 --- a/doc/languages-frameworks/qt.section.md +++ b/doc/languages-frameworks/qt.section.md @@ -26,6 +26,17 @@ It is important to import Qt modules directly, that is: `qtbase`, `qtdeclarative Additionally all Qt packages must include `wrapQtAppsHook` in `nativeBuildInputs`, or you must explicitly set `dontWrapQtApps`. +`pkgs.callPackage` does not provide injections for `qtbase` or the like. +Instead you want to either use `pkgs.libsForQt5.callPackage`, or `pkgs.qt6Packages.callPackage`, depending on the Qt version you want to use. + +For example (from [here](https://github.com/NixOS/nixpkgs/blob/2f9286912cb215969ece465147badf6d07aa43fe/pkgs/top-level/all-packages.nix#L30106)) + +```nix + zeal-qt5 = libsForQt5.callPackage ../data/documentation/zeal { }; + zeal-qt6 = qt6Packages.callPackage ../data/documentation/zeal { }; + zeal = zeal-qt5; +``` + ## Locating runtime dependencies {#qt-runtime-dependencies} Qt applications must be wrapped to find runtime dependencies. diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md index 9be381c0bfe27..a81ba1e456e8e 100644 --- a/doc/languages-frameworks/rust.section.md +++ b/doc/languages-frameworks/rust.section.md @@ -44,20 +44,21 @@ rustPlatform.buildRustPackage rec { } ``` -`buildRustPackage` requires either the `cargoSha256` or the -`cargoHash` attribute which is computed over all crate sources of this -package. `cargoHash256` is used for traditional Nix SHA-256 hashes, -such as the one in the example above. `cargoHash` should instead be -used for [SRI](https://www.w3.org/TR/SRI/) hashes. For example: +`buildRustPackage` requires either the `cargoHash` or the `cargoSha256` +attribute which is computed over all crate sources of this package. +`cargoSha256` is used for traditional Nix SHA-256 hashes. `cargoHash` should +instead be used for [SRI](https://www.w3.org/TR/SRI/) hashes and should be +preferred. For example: + +```nix + cargoHash = "sha256-l1vL2ZdtDRxSGvP0X/l3nMw8+6WF67KPutJEzUROjg8="; +``` Exception: If the application has cargo `git` dependencies, the `cargoHash`/`cargoSha256` approach will not work, and you will need to copy the `Cargo.lock` file of the application -to nixpkgs and continue with the next section for specifying the options of the`cargoLock` +to nixpkgs and continue with the next section for specifying the options of the `cargoLock` section. -```nix - cargoHash = "sha256-l1vL2ZdtDRxSGvP0X/l3nMw8+6WF67KPutJEzUROjg8="; -``` Both types of hashes are permitted when contributing to nixpkgs. The Cargo hash is obtained by inserting a fake checksum into the |