3.6 KiB
3.6 KiB
第三方库来源说明(ormpp / iguana / SQLite)
本目录为按上游原样内置的第三方源码(保留上游字节,含换行符,不做编码/格式转换),与源码目录下内置的 Eigen 3.3.7 同类处理:仓库自带依赖,离线可配置、可交付。
| 内容 | 本目录位置 | 上游 | 版本 / 标识 |
|---|---|---|---|
| ormpp(Modern C++ ORM 头文件库) | ormpp/*.hpp |
https://github.com/qicosmos/ormpp | commit acf23989f8e40f2c8671eaf209d014164f2d6319(master,2026-08-29);ormpp/version.hpp = 0.2.0 |
| iguana(编译期反射,随 ormpp 内置) | iguana/** |
随 ormpp 内置;独立仓库 https://github.com/qicosmos/iguana | iguana/version.hpp = 1.0.5 |
| SQLite amalgamation | thirdparty/sqlite3/{sqlite3.c,sqlite3.h,sqlite3ext.h} |
随 ormpp 内置;https://sqlite.org | SQLite 3.49.1(sqlite3.h 的 SQLITE_VERSION),公共领域(Public Domain) |
| frozen(iguana 的 constexpr 容器依赖,随 ormpp 内置) | frozen/** |
随 ormpp 内置;独立仓库 https://github.com/serge-sans-paille/frozen | 18 个文件 / 86,136 字节(iguana/field_reflection.hpp 需要 frozen/string.h、frozen/unordered_map.h) |
| 许可证 | LICENSE、iguana/LICENSE |
— | 均为 Apache License 2.0;与上游 git blob 逐字节一致(261eeb9e… / 8dada3ed…) |
复现步骤(重新获取/升级时执行)
git -c core.autocrlf=false clone --depth 1 https://github.com/qicosmos/ormpp.git <tmp-ormpp>
git -c core.autocrlf=false clone --depth 1 https://github.com/qicosmos/iguana.git <tmp-iguana>
:: 仅拷贝以下内容到本目录(其余 tests/example/cfg/docs/lang/shell.c 等均不需要):
:: <tmp-ormpp>\ormpp\*.hpp + ormpp\pg_types.h -> third_party\ormpp\ormpp\
:: <tmp-ormpp>\iguana\ -> third_party\ormpp\iguana\
:: <tmp-ormpp>\frozen\ -> third_party\ormpp\frozen\ (iguana 依赖)
:: <tmp-ormpp>\thirdparty\sqlite3\sqlite3.c|sqlite3.h|sqlite3ext.h -> third_party\ormpp\thirdparty\sqlite3\
:: <tmp-ormpp>\LICENSE -> third_party\ormpp\LICENSE
:: <tmp-iguana>\LICENSE -> third_party\ormpp\iguana\LICENSE
注意:本机全局 core.autocrlf=true 会把源码转成 CRLF(sqlite3.c 由 9,461,193 字节变为 9,728,476 字节),因此克隆时必须显式 -c core.autocrlf=false。校验方式:与上游 blob 大小比对(sqlite3.c = 9,461,193、dbng.hpp = 11,681、iguana/common.hpp = 45,850)。
使用方式与约束
- 只被可选目标
rdp_record使用(见根目录CMakeLists.txt的RDP_DATA_RECORD选项);该目标以 C++20 编译(ormpp 的cmake/build.cmake强制CMAKE_CXX_STANDARD 20),雷达处理代码仍为 C++17。 - 包含路径按上游约定给全(4 个):
third_party/ormpp(iguana/...)、third_party/ormpp/iguana、third_party/ormpp/ormpp(dbng.hpp、sqlite.hpp)、third_party/ormpp/thirdparty/sqlite3(sqlite3.h)。 - 告警处理:
sqlite3.c以/w单独编译;首个包含第三方头的本项目文件(data_process_class_dll/rdp_record.cpp)用#pragma warning(push, 0)/(pop)隔离模板告警——这两处是 README 4.5「0 告警」的唯一例外,范围仅限本目录代码。 - 升级方式:整目录替换为新的上游快照,同步更新本文件的 commit / 版本号 / blob 校验值,然后必须重新验证:
-DRDP_DATA_RECORD=ON构建通过(0 告警)+ 记录功能写入校验(见docs/data_record_debug.md)。