diff --git a/.gitignore b/.gitignore index 9be6f3c..c507d4e 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ Thumbs.db *~ 3rd/ lib/ +compile_commands.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..3322a7f --- /dev/null +++ b/README.md @@ -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。 diff --git a/docs/build-remote.md b/docs/build-remote.md new file mode 100644 index 0000000..d4d9b2f --- /dev/null +++ b/docs/build-remote.md @@ -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`,本项目构建验证视为通过。 \ No newline at end of file diff --git a/docs/cleanup-notes.md b/docs/cleanup-notes.md new file mode 100644 index 0000000..7b210c6 --- /dev/null +++ b/docs/cleanup-notes.md @@ -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 已无直接引用,仍作为未跟踪历史副本暂不物理删除。 diff --git a/src/core/df_main.cpp b/src/core/df_main.cpp index 45c9313..43bdc69 100644 --- a/src/core/df_main.cpp +++ b/src/core/df_main.cpp @@ -1,5 +1,4 @@ -#include "CConnectPool.h" #include "controller.h" #include "import.h" #include "l_socket.h" diff --git a/src/script/SqrReg_Game.hpp b/src/script/SqrReg_Game.hpp index 134735f..850483e 100644 --- a/src/script/SqrReg_Game.hpp +++ b/src/script/SqrReg_Game.hpp @@ -6,7 +6,6 @@ #include "sqstdmath.h" #include "sqstdstring.h" #include "sqstdsystem.h" -#include "CConnectPool.h" #include "croncpp.h" #include "l_socket.h" #include @@ -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 diff --git a/src/script/SqrReg_Memory.hpp b/src/script/SqrReg_Memory.hpp index 9a2411c..21ea7dd 100644 --- a/src/script/SqrReg_Memory.hpp +++ b/src/script/SqrReg_Memory.hpp @@ -6,7 +6,6 @@ #include "sqstdmath.h" #include "sqstdstring.h" #include "sqstdsystem.h" -#include "CConnectPool.h" #include "inline_hook.h" #include diff --git a/xmake.lua b/xmake.lua index 9781471..15b616a 100644 --- a/xmake.lua +++ b/xmake.lua @@ -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")