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
|
HELPER_TARGET := build/cgss-borderless-helper.exe
|
||||||
BUILD_DIR := build
|
BUILD_DIR := build
|
||||||
OBJ_DIR := $(BUILD_DIR)/obj
|
OBJ_DIR := $(BUILD_DIR)/obj
|
||||||
|
PACKAGE_DIR := $(BUILD_DIR)/package
|
||||||
|
PACKAGE_NAME := cgss-dmm-hook
|
||||||
|
PACKAGE_ROOT := $(PACKAGE_DIR)/$(PACKAGE_NAME)
|
||||||
BUILD ?= release
|
BUILD ?= release
|
||||||
|
|
||||||
CC := x86_64-w64-mingw32-gcc
|
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))
|
HELPER_RC_OBJS := $(patsubst %.rc,$(OBJ_DIR)/%.res,$(HELPER_RC_SRCS))
|
||||||
OBJS := $(C_OBJS) $(CXX_OBJS) $(RC_OBJS)
|
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
|
all: $(TARGET) $(HELPER_TARGET) $(BUILD_DIR)/libwinpthread-1.dll
|
||||||
release: $(TARGET) $(HELPER_TARGET) $(BUILD_DIR)/libwinpthread-1.dll
|
release: $(TARGET) $(HELPER_TARGET) $(BUILD_DIR)/libwinpthread-1.dll
|
||||||
debug:
|
debug:
|
||||||
$(MAKE) BUILD=debug
|
$(MAKE) BUILD=debug
|
||||||
|
package: $(PACKAGE_DIR)/$(PACKAGE_NAME).zip
|
||||||
|
|
||||||
$(TARGET): $(OBJS) $(DEF_FILE)
|
$(TARGET): $(OBJS) $(DEF_FILE)
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
@@ -76,6 +80,16 @@ $(BUILD_DIR)/libwinpthread-1.dll:
|
|||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
cp "$(WINPTHREAD_DLL)" "$@"
|
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
|
$(OBJ_DIR)/%.o: %.c
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
$(CC) $(CFLAGS) -c $< -o $@
|
$(CC) $(CFLAGS) -c $< -o $@
|
||||||
|
|||||||
@@ -35,10 +35,16 @@ cmake --build build
|
|||||||
make
|
make
|
||||||
```
|
```
|
||||||
|
|
||||||
|
生成可分发压缩包:
|
||||||
|
```sh
|
||||||
|
make package
|
||||||
|
```
|
||||||
|
|
||||||
**输出**
|
**输出**
|
||||||
- `build/version.dll`
|
- `build/version.dll`
|
||||||
- `build/cgss-borderless-helper.exe`
|
- `build/cgss-borderless-helper.exe`
|
||||||
- `build/libwinpthread-1.dll`
|
- `build/libwinpthread-1.dll`
|
||||||
|
- `build/package/cgss-dmm-hook.zip`
|
||||||
|
|
||||||
**config.json**
|
**config.json**
|
||||||
```json
|
```json
|
||||||
@@ -68,6 +74,7 @@ make
|
|||||||
- 这样更接近 Borderless Gaming 的工作方式,也能减少退出时的干扰。
|
- 这样更接近 Borderless Gaming 的工作方式,也能减少退出时的干扰。
|
||||||
- `version.dll` 只在 `imascgstage.exe` 主进程中继续启动 hook 和 helper;被其他进程间接加载时会跳过。
|
- `version.dll` 只在 `imascgstage.exe` 主进程中继续启动 hook 和 helper;被其他进程间接加载时会跳过。
|
||||||
- 不要只单独分发 `version.dll`。当前构建依赖 `libwinpthread-1.dll`,如果目标机器缺少它,Windows 会在进入代理代码前直接拒绝加载,此时通常表现为游戏无法启动,且不会生成任何日志。
|
- 不要只单独分发 `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` 项目启发。
|
- 本项目的 `version.dll` 代理注入思路与运行时 IL2CPP hook 方向,受 `gkms-localify-dmm` 项目启发。
|
||||||
|
|||||||
Reference in New Issue
Block a user