diff --git a/README.md b/README.md index c000831e..89f78831 100644 --- a/README.md +++ b/README.md @@ -1,99 +1,99 @@ -# 1. commit 规则 -- 每个人 fork 自己的 branch, 从自己的 branch 做 PR,review 完再 commit - -# 2. code format -## 2.1. C -推荐使用 clang-format,公共配置放在源码里面 xce/.clang-format - -(理论上直接使用源码里面 xce/.clang-format 文件格式不会变) - -### 2.1.1. vscode 可以在配置中加上如下内容 -``` -"C_Cpp.clang_format_style": "WebKit", -"C_Cpp.clang_format_fallbackStyle": "WebKit", -``` - -### 2.1.2. vim & emacs - -clang-format -style="{BasedOnStyle: webkit}" -i XX.c - -## 2.2. golang - -使用默认 gofmt - -# 3. build environment and build (example of ubuntu) -## 3.1 build environment - -- Install nix package management tool - -```sh -sh <(curl -L https://nixos.org/nix/install) --daemon -``` - -- Edit /etc/nix/nix.conf to make sure - -``` -experimental-features = nix-command flakes -sandbox = true -sandbox-fallback = false -substituters = https://mirrors.ustc.edu.cn/nix-channels/store https://cache.nixos.org https://cache.nixos.org/ -trusted-users = root -``` - -make sure that you have restarted nix-daemon service after you have checked /etc/nix/nix.conf - -- Install socat and config ssh (for clone by ssh protocol) - -```sh -nix profile add nixpkgs#socat -``` - -.ssh/config -``` -Host gitea.shenrs.eu - HostName gitea.shenrs.eu - IdentityFile ~/.ssh/id_ed25519 - ProxyCommand socat - openssl-connect:gitea.shenrs.eu:2022,snihost=gitea.shenrs.eu,verify=0 -``` - -## 3.2 checkout source code - -## 3.3 build (for package and release) - -```sh -cd xce/src - -# for build debug version -nix build --option sandbox false .#xce_debug - -# for normal build -nix build --option sandbox false .#xce -``` - -You can find the generated binaries at =result= directory - -## 3.4 build (for daily develop) - -```sh -cd xce/src -nix develop - -# using meson to generated build configuration (debug and address sanitize) - -meson setup build --buildtype=debug -Db_sanitize=address - -# run meson to build -meson compile -C build - -# The generated files will be in build/ -``` - -# 4. misc -## 4.1. Windows remap ctrl and alt key -create a reg file, e.g. remapkey.reg -``` -Windows Registry Editor Version 5.00 -[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] -"Scancode Map"=hex:00,00,00,00,00,00,00,00,05,00,00,00,38,00,1d,00,1d,00,38,00,38,e0,1d,e0,1d,e0,38,e0,00,00,00,00 -``` -then double click remapkey.reg to import it. Restart OS. +# 1. commit 规则 +- 每个人 fork 自己的 branch, 从自己的 branch 做 PR,review 完再 commit + +# 2. code format +## 2.1. C +推荐使用 clang-format,公共配置放在源码里面 xce/.clang-format + +(理论上直接使用源码里面 xce/.clang-format 文件格式不会变) + +### 2.1.1. vscode 可以在配置中加上如下内容 +``` +"C_Cpp.clang_format_style": "WebKit", +"C_Cpp.clang_format_fallbackStyle": "WebKit", +``` + +### 2.1.2. vim & emacs + +clang-format -style="{BasedOnStyle: webkit}" -i XX.c + +## 2.2. golang + +使用默认 gofmt + +# 3. build environment and build (example of ubuntu) +## 3.1 build environment + +- Install nix package management tool + +```sh +sh <(curl -L https://nixos.org/nix/install) --daemon +``` + +- Edit /etc/nix/nix.conf to make sure + +``` +experimental-features = nix-command flakes +sandbox = true +sandbox-fallback = false +substituters = https://mirrors.ustc.edu.cn/nix-channels/store https://cache.nixos.org https://cache.nixos.org/ +trusted-users = root +``` + +make sure that you have restarted nix-daemon service after you have changed /etc/nix/nix.conf + +- Install socat and config ssh (for clone by ssh protocol) + +```sh +nix profile add nixpkgs#socat +``` + +.ssh/config +``` +Host gitea.shenrs.eu + HostName gitea.shenrs.eu + IdentityFile ~/.ssh/id_ed25519 + ProxyCommand socat - openssl-connect:gitea.shenrs.eu:2022,snihost=gitea.shenrs.eu,verify=0 +``` + +## 3.2 checkout source code + +## 3.3 build (for package and release) + +```sh +cd xce/src + +# for build debug version +nix build --option sandbox false .#xce_debug + +# for normal build +nix build --option sandbox false .#xce +``` + +You can find the generated binaries at =result= directory + +## 3.4 build (for daily develop) + +```sh +cd xce/src +nix develop + +# using meson to generated build configuration (debug and address sanitize) + +meson setup build --buildtype=debug -Db_sanitize=address + +# run meson to build +meson compile -C build + +# The generated files will be in build/ +``` + +# 4. misc +## 4.1. Windows remap ctrl and alt key +create a reg file, e.g. remapkey.reg +``` +Windows Registry Editor Version 5.00 +[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] +"Scancode Map"=hex:00,00,00,00,00,00,00,00,05,00,00,00,38,00,1d,00,1d,00,38,00,38,e0,1d,e0,1d,e0,38,e0,00,00,00,00 +``` +then double click remapkey.reg to import it. Restart OS.