2.7 KiB
2.7 KiB
构建系统
结论:现在统一用 CMake 构建,不再使用 Visual Studio 工程文件(.vcxproj/.sln 已删除)。
基本命令
# 在 SourceCode/Code2026 目录
cmake --preset R250 # 配置(示例:AutoCAD 2025-2026)
cmake --build --preset R250 # 编译
- CMake ≥ 3.21,生成器
Visual Studio 18 2026,架构x64。 - 工具集按 preset 指定(如
v143/v142/v141…)。 - 启用
/MP多进程编译;Release 默认_NDEBUG。
配置预设(cmakepresets.json,13 套)
| 分组 | preset | 说明 |
|---|---|---|
| AutoCAD | R180 R190 R200 R210 R220 R230 R240 R243 R250 R260 |
ARX 18 |
| 中望CAD | Z2023 Z2024 Z2025 Z2026 |
ZRX 2023~2026 |
关键 cache 变量:
CAD_SDK_ROOT:arx/或zrx/(相对SourceCode/Code2026上一级的上一级)。DEP_LIB_ROOT/DEP_INC_ROOT:../dep_lib/../dep_inc。PRODUCT=ENV_2025_V6_S0、TRIAL_YEAR=2026。GENERATE_BIN_DIR/GENERATE_LIB_DIR:输出到bin/Code2026、lib/Code2026。
C++ 标准自动切换:ARX 26→C++20;ARX 25/24 与 ZRX→C++14;更老版本→C++03/98。
构建脚本
cmake/functions.cmake:核心封装add_custom_module(dir folder):注册子模块(自动add_subdirectory+ 设置 FOLDER)。target_link_objectarx(target EXT):链接 CAD SDK 与全局头。simple_link_cad_sdk:自动区分 ARX / ZRX。set_encryption_definitions_and_output_path:授权模式,生成BAL_REMOTE与TRIAL_YEAR两种版本。set_debug_post_build:调用copyarx.exe做 post-build 部署。
cmake/ThirdPartyDeps.cmake:定义ThirdParty::ARX/ZRX/SQLite3/cURL/TG/modernGlue/BitAnswer等接口目标。- 顶层
cmakelists.txt:注册所有模块并组织FOLDER(SH/Core、SH/Pipe…)。
授权 / 加密
CoreCommand通过get_encryption_modes()生成两种产物:BAL_REMOTE(网络锁 / 正式版)TRIAL_YEAR(1 年期试用版)
- 依赖 BitAnswer(加密狗库),加密表由
utility/generateEncryptionTable生成。
部署与打包
- 部署:
sh_output_path.json(ACAD)/zw_output_path.json(中望)定义从bin/Code2026拷贝到安装目录c:\ShangHuaSoft\Envi3D-2026-M;由copyarx.exe执行。 - 打包:
autoCompile/内含 Inno Setup(*.iss) + Python(SHSCompile.py) + 多个.bat,覆盖 ACAD/中望、1年期/加密版、以及客户专版(中广核、国能集团等)。
.gitignore 要点
忽略:Arx/、cmake_output/、bin/、lib/,以及所有 VS 中间产物(*.obj/*.pdb/*.user/.vs 等)。