Add distributable package target

Signed-off-by: Sean Du <do4suki@gmail.com>
This commit is contained in:
2026-06-27 21:04:43 +08:00
parent 74cb184c03
commit 5186f54c6f
2 changed files with 22 additions and 1 deletions
+15 -1
View File
@@ -2,6 +2,9 @@ TARGET := build/version.dll
HELPER_TARGET := build/cgss-borderless-helper.exe
BUILD_DIR := build
OBJ_DIR := $(BUILD_DIR)/obj
PACKAGE_DIR := $(BUILD_DIR)/package
PACKAGE_NAME := cgss-dmm-hook
PACKAGE_ROOT := $(PACKAGE_DIR)/$(PACKAGE_NAME)
BUILD ?= release
CC := x86_64-w64-mingw32-gcc
@@ -57,12 +60,13 @@ RC_OBJS := $(patsubst %.rc,$(OBJ_DIR)/%.res,$(RC_SRCS))
HELPER_RC_OBJS := $(patsubst %.rc,$(OBJ_DIR)/%.res,$(HELPER_RC_SRCS))
OBJS := $(C_OBJS) $(CXX_OBJS) $(RC_OBJS)
.PHONY: all release debug clean
.PHONY: all release debug package clean
all: $(TARGET) $(HELPER_TARGET) $(BUILD_DIR)/libwinpthread-1.dll
release: $(TARGET) $(HELPER_TARGET) $(BUILD_DIR)/libwinpthread-1.dll
debug:
$(MAKE) BUILD=debug
package: $(PACKAGE_DIR)/$(PACKAGE_NAME).zip
$(TARGET): $(OBJS) $(DEF_FILE)
@mkdir -p $(dir $@)
@@ -76,6 +80,16 @@ $(BUILD_DIR)/libwinpthread-1.dll:
@mkdir -p $(dir $@)
cp "$(WINPTHREAD_DLL)" "$@"
$(PACKAGE_DIR)/$(PACKAGE_NAME).zip: $(TARGET) $(HELPER_TARGET) $(BUILD_DIR)/libwinpthread-1.dll config.json.example README.md LICENSE THIRD_PARTY_NOTICES.md
rm -rf "$(PACKAGE_ROOT)"
@mkdir -p "$(PACKAGE_ROOT)"
cp "$(TARGET)" "$(PACKAGE_ROOT)/version.dll"
cp "$(HELPER_TARGET)" "$(PACKAGE_ROOT)/cgss-borderless-helper.exe"
cp "$(BUILD_DIR)/libwinpthread-1.dll" "$(PACKAGE_ROOT)/libwinpthread-1.dll"
cp config.json.example "$(PACKAGE_ROOT)/config.json.example"
cp README.md LICENSE THIRD_PARTY_NOTICES.md "$(PACKAGE_ROOT)/"
cd "$(PACKAGE_DIR)" && zip -qr "$(PACKAGE_NAME).zip" "$(PACKAGE_NAME)"
$(OBJ_DIR)/%.o: %.c
@mkdir -p $(dir $@)
$(CC) $(CFLAGS) -c $< -o $@
+7
View File
@@ -35,10 +35,16 @@ cmake --build build
make
```
生成可分发压缩包:
```sh
make package
```
**输出**
- `build/version.dll`
- `build/cgss-borderless-helper.exe`
- `build/libwinpthread-1.dll`
- `build/package/cgss-dmm-hook.zip`
**config.json**
```json
@@ -68,6 +74,7 @@ make
- 这样更接近 Borderless Gaming 的工作方式,也能减少退出时的干扰。
- `version.dll` 只在 `imascgstage.exe` 主进程中继续启动 hook 和 helper;被其他进程间接加载时会跳过。
- 不要只单独分发 `version.dll`。当前构建依赖 `libwinpthread-1.dll`,如果目标机器缺少它,Windows 会在进入代理代码前直接拒绝加载,此时通常表现为游戏无法启动,且不会生成任何日志。
- `make package` 会自动把运行所需文件整理到 `build/package/cgss-dmm-hook/`,并生成 `build/package/cgss-dmm-hook.zip`
**致谢**
- 本项目的 `version.dll` 代理注入思路与运行时 IL2CPP hook 方向,受 `gkms-localify-dmm` 项目启发。