瀏覽代碼

Merge pull request #49 from pdckxd/main

[Build] Fix Linux build instruction
AppFlowy.IO 3 年之前
父節點
當前提交
e5d8581091
共有 3 個文件被更改,包括 45 次插入23 次删除
  1. 26 22
      doc/BUILD_ON_LINUX.md
  2. 0 1
      frontend/scripts/makefile/env.toml
  3. 19 0
      frontend/scripts/makefile/flutter.toml

+ 26 - 22
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/<version>/linux/<build type>/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

+ 0 - 1
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
 """
 

+ 19 - 0
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"