AppFlowy/frontend/scripts/makefile/env.toml
2021-11-23 18:15:33 +08:00

162 lines
4.3 KiB
TOML

[tasks.flowy_dev]
run_task = { name = ["install_prerequests","install_diesel"] }
[tasks.install_windows_deps.windows]
dependencies=["check_duckscript_installation", "check_visual_studio_installation", "check_vcpkg", "install_vcpkg_sqlite", "install_rust_vcpkg_cli"]
[tasks.check_visual_studio_installation.windows]
script = """
output = exec powershell -Command "Get-CimInstance MSFT_VSInstance | select -ExpandProperty Version"
stdout = set ${output.stdout}
pos = last_indexof ${stdout} .
new_str = substring ${stdout} 0 ${pos}
# TODO: will raise error if there are more than 1 visual studio installation
newer = semver_is_newer ${new_str} 16.11.0
assert ${newer} "Visual studio 2019 is not installed or version is lower than 16.11.0"
"""
script_runner = "@duckscript"
[tasks.check_duckscript_installation.windows]
script = """
@echo off
@duck -h > nul
if %errorlevel% GTR 0 (
echo Please install duckscript at first: cargo install --force duckscript_cli
exit -1
)
"""
[tasks.check_vcpkg.windows]
script = """
ret = which vcpkg
if is_empty ${ret}
echo "Please install vcpkg on windows at first. Make sure to put it into PATH env var"
echo "See: https://github.com/microsoft/vcpkg#quick-start-windows"
exit -1
end
"""
script_runner = "@duckscript"
[tasks.install_vcpkg_sqlite.windows]
script = """
vcpkg install sqlite3:x64-windows-static-md
"""
[tasks.install_rust_vcpkg_cli.windows]
script = """
exec cargo install vcpkg_cli
output = exec vcpkg_cli probe sqlite3
stdout = set ${output.stdout}
stderr = set ${output.stderr}
ret = indexof ${stdout} "Failed:"
assert_eq ${ret} "" ${stdout}
"""
script_runner = "@duckscript"
[tasks.install_diesel]
script = """
cargo install diesel_cli --no-default-features --features sqlite
"""
[tasks.install_diesel.windows]
script = """
cargo install diesel_cli --no-default-features --features sqlite
"""
dependencies = ["check_vcpkg"]
[tasks.install_targets]
script = """
# TODO: download the targets with corresponding platform. For example:
# It's not necessary to download aarch64-apple-ios when compiling the Flowy-SDK on windows.
rustup target add x86_64-apple-ios
rustup target add x86_64-apple-darwin
rustup target add aarch64-apple-ios
rustup target add aarch64-apple-darwin
rustup target add x86_64-pc-windows-msvc
rustup target add x86_64-unknown-linux-gnu
"""
[tasks.install_prerequests]
dependencies=["install_targets"]
[tasks.install_prerequests.windows]
dependencies=["install_targets", "install_windows_deps"]
[tasks.install_protobuf]
script = """
# Custom dart:
#brew tap dart-lang/dart
#brew install dart
#pub global activate protoc_plugin
#https://pub.dev/packages/protoc_plugin
dart pub global activate protoc_plugin
cargo install --version 2.20.0 protobuf-codegen
"""
[tasks.install_protobuf.windows]
script = """
ret = which dart
if is_empty ${ret}
echo Please make sure flutter/dart is properly installed and in PATH env var
exit -1
end
ret = which protoc-gen-dart
if is_empty ${ret}
exec cmd.exe /c dart pub global activate protoc_plugin
home_dir = get_home_dir
echo Please add '${home_dir}\\\\AppData\\\\Local\\\\Pub\\\\Cache\\\\bin' into PATH env var
exit -1
end
exec cargo install --version 2.22.1 protobuf-codegen
"""
script_runner = "@duckscript"
[tasks.install_tools]
script = """
rustup component add rustfmt
cargo install cargo-expand
cargo install cargo-watch
cargo install cargo-cache
cargo install bunyan
"""
[tasks.install_cocoapods]
script = """
# execute "xcode-select --install" before if "extconf.rb failed" error occurs
sudo gem install cocoapods
"""
[tasks.install_rbenv]
script = """
brew install rbenv
rbenv init
rbenv install 2.7.1
rbenv global 2.7.1
# https://github.com/rbenv/rbenv
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash
"""
[tasks.install_fish]
script = """
brew install fish
# https://stackoverflow.com/questions/26208231/modifying-path-with-fish-shell
# Export the PATH using the command:
# set -Ua fish_user_paths the_path_you_want_to_export
"""
[tasks.install_flutter]
script = """
ret = which flutter
if is_empty ${ret}
echo "[❤️] Follow the https://flutter.dev/docs/get-started/install instructions to install the flutter, skip if you already installed."
echo "Switch to dev channel with command: flutter channel dev"
exit -1
end
"""
script_runner = "@duckscript"