myxce/README.md
2026-03-03 16:49:26 +08:00

108 lines
2.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 <your account>
```
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 .#xcecore_debug
# for normal build
nix build --option sandbox false .#xcecore
```
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/
```
## 3.5 build AppImage package
```sh
cd xce/src
nix bundle --bundler github:ralismark/nix-appimage --option sandbox false .#xce
```
This will create all in one AppImage file which contains everything for package delivery.
# 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.