diff --git a/doc/BUILD_ON_LINUX.md b/doc/BUILD_ON_LINUX.md index 0cc82ce529..2ae009d21c 100644 --- a/doc/BUILD_ON_LINUX.md +++ b/doc/BUILD_ON_LINUX.md @@ -8,42 +8,42 @@ git clone https://github.com/AppFlowy-IO/appflowy.git **Step 2:** -Note: Follow steps are verified on Ubuntu 20.04 +Note: +1. Following steps are verified on + - [x] lubuntu 20.04 - X86_64 + - [ ] ubuntu 20.04 - aarch64 + - [ ] redhat - X86_64 + - [ ] Arch Linux - X86_64 + - [ ] Deepin - X86_64 + - [ ] Raspberry Pi OS - aarch64 +2. You may need to disable hardware 3D acceleration if you are running in a VM. Otherwise certain GL failures will prevent app from launching 1. Install pre-requests ```shell -sudo apt-get install build-essential -sudo apt-get install libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev +sudo apt-get install curl build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev ``` -2. Install brew on Linux (TODO: rust installation should not depend on brew) +2. Install rust on Linux ```shell -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/user/.profile -eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +source $HOME/.cargo/env +rustup toolchain install nightly +rustup default nightly ``` 3. Install flutter according to https://docs.flutter.dev/get-started/install/linux ```shell git clone https://github.com/flutter/flutter.git cd flutter echo "export PATH=\$PATH:"`pwd`"/bin" >> ~/.profile -export PATH="$PATH:`pwd`/flutter/bin" +export PATH="$PATH:`pwd`/bin" flutter channel dev flutter config --enable-linux-desktop ``` 4. Fix problem reported by flutter doctor ```shell flutter doctor -# install Android toolchian (optional) +# install Android toolchain (optional) # install Chrome (optional) ``` -5. Install rust -```shell -# TODO: replace by rust offical installation step -brew install rustup-init -source $HOME/.cargo/env -rustup toolchain install nightly -rustup default nightly -``` 5. Install cargo make ```shell cd appflowy @@ -61,21 +61,25 @@ cargo make flowy_dev ```shell cargo make -p development-linux-x86 pb ``` -9. Build flowy-sdk-dev (dart-ffi) +9. Build flowy-sdk-dev (dart-ffi) (optional), step 10 covers this step ```shell -# TODO: for development +# for development +cargo make --profile development-linux-x86 flowy-sdk-dev # for production cargo make --profile production-linux-x86 flowy-sdk-release ``` 10. Build app_flowy ```shell -# TODO: for development +# for development +cargo make -p development-linux-x86 appflowy-linux-dev -# for production +# for production, find binary from app_flowy/product//linux//AppFlowy/ cargo make -p production-linux-x86 appflowy-linux -### tips + +# tips # run Linux GUI application through x11 on windows (use MobaXterm) +# for instance: # export DISPLAY=localhost:10 # cd app_flowy/product/0.0.2/linux/Release/AppFlowy # ./app_flowy diff --git a/doc/BUILD_ON_WNIDOWS.md b/doc/BUILD_ON_WINDOWS.md similarity index 100% rename from doc/BUILD_ON_WNIDOWS.md rename to doc/BUILD_ON_WINDOWS.md diff --git a/frontend/scripts/makefile/env.toml b/frontend/scripts/makefile/env.toml index cbb30a2100..4b5c41f277 100644 --- a/frontend/scripts/makefile/env.toml +++ b/frontend/scripts/makefile/env.toml @@ -70,7 +70,6 @@ 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-pc-windows-msvc rustup target add x86_64-unknown-linux-gnu """ diff --git a/frontend/scripts/makefile/flutter.toml b/frontend/scripts/makefile/flutter.toml index fa9d8f44ff..c188d3c6bd 100644 --- a/frontend/scripts/makefile/flutter.toml +++ b/frontend/scripts/makefile/flutter.toml @@ -17,6 +17,25 @@ dependencies = ["flowy-sdk-release"] run_task = { name = ["flutter-build", "copy-to-product"] } script_runner = "@shell" +[tasks.appflowy-dev] +mac_alias = "appflowy-macos-dev" +windows_alias = "appflowy-windows-dev" +linux_alias = "appflowy-linux-dev" + +[tasks.appflowy-macos-dev] +dependencies = ["flowy-sdk-dev"] +run_task = { name = ["flutter-build", "copy-to-product"] } +script_runner = "@shell" + +[tasks.appflowy-windows-dev] +dependencies = ["flowy-sdk-dev"] +run_task = { name = ["flutter-build", "copy-to-product"] } + +[tasks.appflowy-linux-dev] +dependencies = ["flowy-sdk-dev"] +run_task = { name = ["flutter-build", "copy-to-product"] } +script_runner = "@shell" + [tasks.copy-to-product] mac_alias = "copy-to-product-macos" windows_alias = "copy-to-product-windows"