整理初版

This commit is contained in:
2026-05-08 19:03:47 +08:00
parent a605fb2bea
commit 056dd70ab7
8 changed files with 122 additions and 40 deletions

1
.gitignore vendored
View File

@@ -30,3 +30,4 @@ Thumbs.db
*~
3rd/
lib/
compile_commands.json

21
README.md Normal file
View File

@@ -0,0 +1,21 @@
# DnfProject / Aurora
本仓库是 `Aurora` 共享库项目,使用 xmake 构建 32 位 Linux 目标。
## 目录结构
- `src/core/`入口、控制器、调度、Hook、主流程。
- `src/script/`Squirrel 绑定、脚本注册、脚本请求相关代码。
- `src/net/`socket、DIO、HTTP/异步网络相关代码。
- `src/db/`MySQL 连接池和数据库封装。
- `src/sdk/`:游戏 SDK、结构体、枚举、协议对象。
- `src/utils/`通用工具、编码、IO、BASE64、Singleton。
- `third_party/`:随项目保存的第三方头文件或源码。
- `3rd/``lib/`:本地第三方库和二进制依赖目录,默认不纳入 Git 跟踪。
## 构建方式
本机工作区通常是远程目录挂载,实际编译环境在 `192.168.200.110` 上。请使用 SSH 到远端执行 xmake。
详细命令见 `docs/build-remote.md`
更多清理边界说明见 docs/cleanup-notes.md。

41
docs/build-remote.md Normal file
View File

@@ -0,0 +1,41 @@
# 远程编译验证
本机只编辑挂载的远程工作区,实际编译在 CentOS 7 编译机上完成。
## 远端环境
- SSH`root@192.168.200.110`
- 项目目录:`/home/Project/dps`
- xmake`/root/.local/bin/xmake`
- 构建目标:`Aurora`
## 常用命令
配置 debug 构建:
```bash
ssh root@192.168.200.110 "cd /home/Project/dps && /root/.local/bin/xmake f -m debug"
```
编译 Aurora
```bash
ssh root@192.168.200.110 "cd /home/Project/dps && /root/.local/bin/xmake build Aurora"
```
一次性配置并编译:
```bash
ssh root@192.168.200.110 "cd /home/Project/dps && /root/.local/bin/xmake f -m debug && /root/.local/bin/xmake build Aurora"
```
## 已知环境提示
SSH 登录时可能出现:
```text
/etc/profile.d/dps-java.sh: line 3: export
JAVA_HOME="/java_env/jdk1.8.0_161": No such file or directory
```
这是远端环境脚本的已知噪音。只要 xmake 返回成功并显示 `build ok`,本项目构建验证视为通过。

45
docs/cleanup-notes.md Normal file
View File

@@ -0,0 +1,45 @@
# 清理说明
本文件记录项目整理后的依赖边界,避免后续误删构建必需内容。
## 已验证可清理
以下内容已删除,并通过远程 `xmake build Aurora` 验证:
- `compile_commands.json`:生成文件,已加入 `.gitignore`
- `src/CMakeLists.txt`:旧 CMake 入口,当前只维护 `xmake.lua`
- `src/net/httplib.h`:未被源码引用。
- `src/core/Hook_1.hpp`:未被源码引用。
- `src/core/ffitest.h`:未被源码引用。
- `src/sdk/dp2_sdk_c.h`:未被源码引用。
- `192.168.200.110/`:空目录,非项目内容。
## 当前构建必需
以下路径被 `xmake.lua` 或源码直接依赖,不能直接删除:
- `3rd/squirrel`Squirrel 头文件和静态库。
- `3rd/asio`Asio 头文件。
- `3rd/openssl`OpenSSL 头文件和静态库。
- `3rd/frida`Frida 静态库。
- `3rd/zlib`zlib 静态库。
- `/usr/local/opencc-32bit`OpenCC 头文件和静态库。
- `/usr/local/keystone-32bit`Keystone 头文件和静态库。
- `/usr/local/libffi-32bit`libffi 静态库。
## 暂不物理删除
以下目录未被 Git 跟踪,可能是历史构建副本或离线备份。本次不删除:
- `lib/`
- `3rd/mysql`
- `3rd/opencc`
- `3rd/keystone`
- `3rd/libffi`
如果未来要继续瘦身,建议先在远端确认没有手工脚本、部署流程或旧构建流程引用这些目录,再单独清理。
## 已确认移除
- src/db/CConnectPool.cpp 和 src/db/CConnectPool.h连接池实现已确认无脚本使用。
- Sq_CreatCConnectPool 和 Sq_MysqlExecNoRet对应 Squirrel API 已移除。
- 3rd/mysql、lib/mysql当前源码和 xmake 已无直接引用,仍作为未跟踪历史副本暂不物理删除。

View File

@@ -1,5 +1,4 @@
#include "CConnectPool.h"
#include "controller.h"
#include "import.h"
#include "l_socket.h"

View File

@@ -6,7 +6,6 @@
#include "sqstdmath.h"
#include "sqstdstring.h"
#include "sqstdsystem.h"
#include "CConnectPool.h"
#include "croncpp.h"
#include "l_socket.h"
#include <openssl/md5.h>
@@ -398,36 +397,6 @@ static SQInteger L_GetDataByIdFromPvf(HSQUIRRELVM v)
return 1;
}
// 创建数据库连接池
static SQInteger L_CreatCConnectPool(HSQUIRRELVM v)
{
SQInteger MinConnectCount, MaxConnectCount, Port;
const SQChar* Host;
const SQChar* Account;
const SQChar* Passwd;
sq_getinteger(v, 2, &MinConnectCount);
sq_getinteger(v, 3, &MaxConnectCount);
sq_getstring(v, 4, &Host);
sq_getinteger(v, 5, &Port);
sq_getstring(v, 6, &Account);
sq_getstring(v, 7, &Passwd);
// 初始化数据库
CConnectPool::CreatePool(MinConnectCount, MaxConnectCount, Host, Port, Account, Passwd);
return 0;
}
// 阻塞线程的数据库操作 无返回值
static SQInteger L_MysqlExecNoRet(HSQUIRRELVM v)
{
const SQChar* Sql;
sq_getstring(v, 2, &Sql);
MYSQL* MysqlObject = CConnectPool::GetConnect();
mysql_query(MysqlObject, Sql);
CConnectPool::PutConnect(MysqlObject);
return 0;
}
struct CreateSocketInfo
{
@@ -1179,9 +1148,7 @@ static void RegisterGame(HSQUIRRELVM v)
// 通过ID从Pvf中查询Data
register_World_func(v, L_GetDataByIdFromPvf, _SC("Sq_GetDataByIdFromPvf"));
// 创建数据库连接池
register_World_func(v, L_CreatCConnectPool, _SC("Sq_CreatCConnectPool"));
// 阻塞线程的数据库操作 无返回值
register_World_func(v, L_MysqlExecNoRet, _SC("Sq_MysqlExecNoRet"));
// 创建Socket连接
register_World_func(v, L_CreatSocketConnect, _SC("Sq_CreatSocketConnect"));
// 动态调用Call

View File

@@ -6,7 +6,6 @@
#include "sqstdmath.h"
#include "sqstdstring.h"
#include "sqstdsystem.h"
#include "CConnectPool.h"
#include "inline_hook.h"
#include <iostream>

View File

@@ -48,16 +48,25 @@ target("Aurora")
add_ldflags("-Wl,--no-as-needed")
-- 添加源文件
add_files("src/*.cpp")
add_files("src/asmjit/core/*.cpp")
add_files("src/asmjit/arm/*.cpp")
add_files("src/asmjit/x86/*.cpp")
add_files("src/core/*.cpp")
add_files("src/script/*.cpp")
add_files("src/net/*.cpp")
add_files("src/utils/*.cpp")
add_files("third_party/asmjit/core/*.cpp")
add_files("third_party/asmjit/arm/*.cpp")
add_files("third_party/asmjit/x86/*.cpp")
-- 添加头文件搜索路径
add_includedirs("include")
add_includedirs("src")
add_includedirs("src/core")
add_includedirs("src/script")
add_includedirs("src/net")
add_includedirs("src/utils")
add_includedirs("src/sdk")
add_includedirs("src/sdk")
add_includedirs("third_party")
add_includedirs("third_party/lua")
add_includedirs("third_party/frida")
add_includedirs("3rd/squirrel/include")
add_includedirs("3rd/asio/include")
add_includedirs("3rd/openssl/include")