Flutter: Difference between revisions
imported>ANicon111 m Removed non-functioning build setups |
imported>ANicon111 No edit summary |
||
Line 9: | Line 9: | ||
in pkgs.mkShell { | in pkgs.mkShell { | ||
buildInputs = with pkgs; [ | buildInputs = with pkgs; [ | ||
flutter git | #basics | ||
flutter git vscodium | |||
#linux build | |||
at-spi2-core.dev clang cmake dbus.dev flutter gtk3 libdatrie libepoxy.dev util-linux.dev libselinux libsepol libthai libxkbcommon ninja pcre pcre2.dev pkg-config xorg.libXdmcp xorg.libXtst | |||
#android build | #android build | ||
(android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [cmdline-tools-latest build-tools-32-0-0 platform-tools platforms-android-31 system-images-android-31-default-x86-64 emulator])) | (android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [cmdline-tools-latest build-tools-32-0-0 platform-tools platforms-android-31 system-images-android-31-default-x86-64 emulator])) jdk8 unzip | ||
#web build | |||
chromium | |||
]; | ]; | ||
#declaring FLUTTER_ROOT | |||
FLUTTER_ROOT = pkgs.flutter; | |||
#libepoxy workaround | |||
LD_LIBRARY_PATH = "${pkgs.libepoxy}/lib"; | |||
#web chrome and dart-sdk workaround | |||
CHROME_EXECUTABLE = "chromium"; | |||
shellHook = '' | |||
if ! [ -d $HOME/.cache/flutter/ ] | |||
then | |||
mkdir $HOME/.cache/flutter/ | |||
fi | |||
ln -f -s ${pkgs.flutter}/bin/cache/dart-sdk $HOME/.cache/flutter/ | |||
''; | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 23:27, 2 February 2023
Developement enviroment
To be able to build flutter apps, you need to add the platform-specific dependencies to your environment. This may be done by running nix-shell
using a shell.nix configuration:
{ pkgs ? import <nixpkgs> {} }:
let android-nixpkgs = (pkgs.callPackage (import (builtins.fetchGit {url = "https://github.com/tadfisher/android-nixpkgs.git";})) {channel = "stable";});
in pkgs.mkShell {
buildInputs = with pkgs; [
#basics
flutter git vscodium
#linux build
at-spi2-core.dev clang cmake dbus.dev flutter gtk3 libdatrie libepoxy.dev util-linux.dev libselinux libsepol libthai libxkbcommon ninja pcre pcre2.dev pkg-config xorg.libXdmcp xorg.libXtst
#android build
(android-nixpkgs.sdk (sdkPkgs: with sdkPkgs; [cmdline-tools-latest build-tools-32-0-0 platform-tools platforms-android-31 system-images-android-31-default-x86-64 emulator])) jdk8 unzip
#web build
chromium
];
#declaring FLUTTER_ROOT
FLUTTER_ROOT = pkgs.flutter;
#libepoxy workaround
LD_LIBRARY_PATH = "${pkgs.libepoxy}/lib";
#web chrome and dart-sdk workaround
CHROME_EXECUTABLE = "chromium";
shellHook = ''
if ! [ -d $HOME/.cache/flutter/ ]
then
mkdir $HOME/.cache/flutter/
fi
ln -f -s ${pkgs.flutter}/bin/cache/dart-sdk $HOME/.cache/flutter/
'';
}
This file uses the tool android-nixpkgs made by tadfisher to get all the android dependencies (be sure to change the package versions/branch to your needs; they can be found here: https://github.com/tadfisher/android-nixpkgs/tree/main/channels )
Also be sure to run avdmanager create avd -n "Android" -k "system-images;android-31;default;x86_64"
to create an android emulator