Skip to content

Commit

Permalink
[feat] Makefile rewrite & Auto build release (#32)
Browse files Browse the repository at this point in the history
1. 改进构建方式,重写 Makefile
2. 支持推送时自动构建 Release
3. 修改中文 README
  • Loading branch information
hyj0824 authored Nov 24, 2024
1 parent 3824e8f commit 9504dad
Show file tree
Hide file tree
Showing 11 changed files with 66 additions and 84,541 deletions.
22 changes: 0 additions & 22 deletions .github/workflows/c-cpp.yml

This file was deleted.

30 changes: 30 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: autorelease

on:
- push

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install tools
run: sudo apt-get install gettext

- name: Make .mo
run: make

- name: Bump version and push tag
id: bump
uses: anothrNick/github-tag-action@v1 # Don't use @master or @v1 unless you're happy to test the latest version
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WITH_V: true

- name: Release
uses: softprops/action-gh-release@v1
with:
files: build/*
fail_on_unmatched_files: true
tag_name: ${{ steps.bump.outputs.new_tag }}
23 changes: 11 additions & 12 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
.PHONY: all
all: merge-zh gcc.mo install
gcc.mo: gcc-zh.po
msgfmt gcc-zh.po -o gcc.mo
all: zh-origin zh-kawaii ja-kawaii

install:
cp gcc.mo /usr/share/locale/zh_CN/LC_MESSAGES/gcc.mo
build:
mkdir -p build

merge-zh: src/zh-kawaii.po
msgcat -o gcc-zh.po --no-wrap --use-first src/zh-kawaii.po src/zh_CN.po
testmo:
cd test && ./test.sh
%: src/%.po | build
msgfmt -o build/$*.mo $<

src/zh-kawaii.po: src/zh-origin.po src/zh-kawaii-patch.po
msgcat -o src/zh-kawaii.po --no-wrap --use-first src/zh-kawaii-patch.po src/zh-origin.po

.PHONY: clean
clean: gcc.mo
rm -rf gcc.mo
clean:
rm src/zh-kawaii.po
rm -rf build
56 changes: 22 additions & 34 deletions README-zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,50 +33,37 @@
sudo apt-get install gcc gettext g++
```

- 安装 `gcc locales`

通过以下命令检查你的`gcc`版本号
- 检查你的`gcc`版本号

```bash
gcc -v
```

- 安装 `gcc locales` (可选)

我这里是12.3.0.所以我的主版本号是12,安装`gcc-12-locales`

```bash
sudo apt-get install gcc-12-locales
```

- 找到你的语言文件的路径。默认会在 `/usr/share/locale/zh_CN/LC_MESSAGES/gcc.mo`. 不过你也有可能找不到该文件或者找到名为`gcc-12.mo`的文件。如果已有相关文件,备份之。 (eg. `sudo mv gcc-12.mo gcc-12.mo.bak`) 如果没有相关文件,无需担心,什么都不需要做。
- 找到你的语言文件的路径。默认会在 `/usr/share/locale/zh_CN/LC_MESSAGES/gcc.mo`. 不过你也有可能找不到该文件或者找到带主版本号的`gcc-12.mo`文件。如果已有相关文件,备份之。 (eg. `sudo mv gcc-12.mo gcc-12.mo.bak`) 如果没有相关文件,无需担心,什么都不需要做。

- 通过以下命令下载仓库中的`mo` 文件然后将其复制到刚才的路径去。
- 移动 `.mo` 文件

```bash
sudo wget https://github.com/Bill-Haku/kawaii-gcc/raw/main/prebuilt/gcc-zh.mo -O /usr/share/locale/zh_CN/LC_MESSAGES/gcc-12.mo
```
- 您可以直接从 [Release](https://github.com/Bill-Haku/kawaii-gcc/releases) 下载;也可以自行重新编译,默认生成在 `build` 文件夹。

您也可以自行重新编译该二进制文件:

```bash
make merge-zh
msgfmt gcc-zh.po -o gcc.mo
sudo cp gcc.mo /usr/share/locale/zh_CN/LC_MESSAGES/gcc-12.mo
```
```bash
make
```

关于文件名:

- 如果你在上个步骤找到了相关文件,请直接使用原本的名字。
- 如果没有,首先使用 `gcc-<主版本号>.mo` 。如果发现不起作用,将其重命名为 `gcc.mo`.

- 修改环境变量以将终端语言改为中文:

```bash
vim ~/.bashrc
# Add the following lines
export LANG="zh_CN.UTF-8"
export LANGUAGE="zh_CN.UTF-8"
Expand All @@ -87,44 +74,45 @@

- 现在你的GCC已经变得可爱了。

你可以使用附带的 `test.cc` 来试试效果。
你可以使用附带的 `test.sh` 来试试效果。

```bash
gcc test.cc -Wall
# -Wall 表示让GCC输出所有警告信息
cd test
./test.sh
```

### Windows
### Windows (Cygwin)

1. 安装 [Cygwin](https://www.cygwin.com/)。
1. 安装 [Cygwin](https://www.cygwin.com/)。
步骤:
1. 下载并运行 [setup-x86_64.exe](https://www.cygwin.com/setup-x86_64.exe)
2. 在 `选择下载源` (`Choose A Download Source`) 步骤时选择 `从互联网安装` (`Install from Internet`)
2. 在 `选择下载源` (`Choose A Download Source`) 步骤时选择 `从互联网安装` (`Install from Internet`)
![install_from_internet.png](img/install_from_internet.png)
3. 在 `选择软件包` (`Select Packages`) 步骤时, 将`查看` (`View`) 设为 `类别` (`Category`) 并依次搜索 (Search) 并选择 ALL/Devel 下的 `gcc-core``gcc-g++``gettext` 的版本
![select_packages.png](img/select_packages.png)

2. 假设你的 Cygwin 安装目录 (注意不是软件包下载目录) 为 `<DIR>` (默认应该是 `C:\cygwin`), 将目录 `<DIR>\bin` 目录添加到环境变量 `Path` 中 (如果 `Path` 中已经有 mingw 了, 请删除或者移到`<DIR>\bin`的下方), 并额外增加一条环境变量 `LANG`, 设置为 `zh_CN.UTF-8`

3. 将本仓库的 `prebuilt` 目录下的 `gcc-zh.mo` 放到 `<DIR>\usr\share\locale\zh_CN\LC_MESSAGES` 目录下, 并将其重命名为 `gcc.mo` (建议先将原来的gcc.mo备份)
3. 将本仓库的 `prebuilt` 目录下的 `gcc-zh.mo` 放到 `<DIR>\usr\share\locale\zh_CN\LC_MESSAGES` 目录下, 并将其重命名为 `gcc.mo` (建议先将原来的gcc.mo备份)
![change_gcc_mo.png](img/change_gcc_mo.png)

### Windows (MinGW)

https://github.com/Mosklia/gcc-hentai/issues/19

### macOS

暂未实现。欢迎贡献。

## 如何修改/贡献

前往`./src`目录,使用文本编辑器打开并编辑`zh-kawaii.po`。可以修改已有的内容,也可以根据原始简体中文本地化文件增加新内容。编辑完成后运行`make`指令合并文件,并将其编译成`mo`文件后拷贝到指定的地方
前往`./src`目录,使用文本编辑器打开并编辑`zh-kawaii-patch.po`。可以修改已有的内容,也可以根据原始简体中文本地化文件增加新内容。编辑完成、测试无误后,请执行 `make clean`,再提交PR。接受合并后会自动构建 Release

#### 关于`src`目录下的文件

- `zh_CN.po`: GNU提供的原始简体中文版本地化文件。
- `zh_kawaii.po`: 本项目已修改的本地化内容。

#### 如果您愿意参与贡献本项目

请在PR时将您修改完成的编译好的`mo`文件放在`../prebuilt`目录下,以更新预编译好的本地化二进制文件。
- `ja-kawaii.po`: 本项目已修改的日语本地化内容。
- `zh-origin.po`: GNU提供的原始简体中文版本地化文件。
- `zh-kawaii-patch.po`: 本项目已修改的本地化内容。

## Star History

Expand Down
Loading

0 comments on commit 9504dad

Please sign in to comment.