Add distributable package target
Signed-off-by: Sean Du <do4suki@gmail.com>
This commit is contained in:
@@ -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 $@
|
||||
|
||||
@@ -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` 项目启发。
|
||||
|
||||
Reference in New Issue
Block a user