韩天峰
|
31fcc94c2e
|
refactor(php): 优化编译器优化级别映射逻辑
- 统一使用标准的优化级别映射数组替代嵌套三元运算符
- 修复优化级别1的映射错误,从/O2更正为/O1
- 提高代码可读性和维护性
- 确保所有优化级别配置的一致性
- 移除重复的映射定义代码
|
4 months ago |
韩天峰
|
b17b4acbac
|
feat(build): 添加 Windows 资源文件支持功能
- 在 .gitignore 中添加 node_modules 目录
- 在 Msvc.php 中添加 compileResourceFile 方法用于编译 .rc 资源文件
- 新增 package.json 配置文件及 svg-to-ico.js 转换脚本
- 在 project.yml 中添加 Windows 资源文件配置示例
- 添加 swoole-logo.svg 图标文件
- 在 Translator.php 中集成资源文件生成功能
- 实现资源文件编译和链接到最终可执行文件的流程
- 更新版本号从 1049 到 1051
|
4 months ago |
韩天峰
|
661ab07cd9
|
refactor(backend): 重构编译器后端实现以支持自定义编译器路径
- 修改 Clang 和 Gcc 类构造函数以接受自定义编译器命令参数
- 引入 CompilerFactory 来统一管理编译器创建和检测逻辑
- 更新 BackendTest 添加对自定义编译器路径的支持测试
- 实现 Windows 平台下 lld-link 检测和回退机制
- 重构 CompilerBase 类中的平台和编译器初始化逻辑
- 移除旧的平台特定检测方法并整合到 PlatformFactory
- 更新编译和链接命令构建以使用新的后端抽象层
- 优化 include paths、library paths 和 libraries 的处理流程
- 改进目标文件扩展名和链接选项的跨平台处理
|
4 months ago |
韩天峰
|
9186d04da4
|
refactor(backend): 将调试配置选项从 debug_info 统一更改为 debug
- 将所有编译器后端(GCC、Clang、MSVC)中的 debug_info 参数重命名为 debug
- 更新单元测试中相应的配置选项参数名称
- 修改命令行参数解析从 --debug-info 改为 --debug
- 调整文档中关于调试选项的描述和示例
- 修复链接阶段不应包含调试符号的逻辑错误
- 重构内部调试变量命名从 debugInfo 改为 debug
- 更新 YAML 配置文件中的调试选项键名
|
4 months ago |
韩天峰
|
c4f828b30a
|
fix(build): 统一调试选项配置并支持自定义链接器标志
- 将所有后端编译器的调试选项从 'debug' 统一更改为 'debug_info'
- 在 GCC 和 Clang 后端移除重复的调试标志添加逻辑
- 在 CompilerBase 中添加对用户自定义 ldflags 的支持
- 确保所有平台的调试信息配置保持一致
|
4 months ago |
韩天峰
|
67496f6bf6
|
feat(php): 添加MSVC编译器警告抑制功能
- 在Constants.php中新增未使用的局部变量和未引用标签的警告代码
- 实现MSVC后端对suppressed_warnings选项的支持
- 添加循环遍历警告代码并构建/wd参数的功能
- 集成警告抑制到编译命令中
|
4 months ago |
韩天峰
|
ffa4ae8dae
|
refactor(backend): 重构编译器架构为Platform+Backend双层抽象
- 实现Platform层抽象(Windows/Linux/MacOS)
- 实现Backend层抽象(MSVC/GCC/Clang)
- 添加适配器方法连接新旧架构
- 修复ZTS宏缺失和库文件链接顺序问题
- 创建MSVC环境初始化脚本和文档
- 完成8个单元测试,26个断言全部通过
- 建立清晰的职责分离和向后兼容机制
|
4 months ago |
韩天峰
|
51298c2d00
|
feat(backend): 添加 C 文件编译命令构建功能
- 在 Clang 类中实现 buildCCompileCommand 方法,支持 C 文件的编译命令构建
- 为 CompilerBackend 接口添加 buildCCompileCommand 抽象方法定义
- 在 Windows 平台下自动添加 MSVC 兼容性选项
- 支持调试模式下的优化级别控制和调试符号生成
- 添加警告级别设置确保代码质量检查
- 保持 C 文件编译时不使用 C++ 特定的编译选项
|
4 months ago |
韩天峰
|
bcef27c44a
|
test(backend): 添加后端编译器单元测试并修复编译选项构建功能
- 添加 BackendOptionsTest.php 测试 MSVC/GCC/Clang 编译选项构建
- 添加 BackendTest.php 测试后端编译器基本功能和完整编译流程
- 在 Clang.php 中实现 buildFullCompileOptions 和 buildFullLinkOptions 方法
- 创建 BUGFIX_MISSING_INCLUDE_PATHS.md 文档记录包含路径缺失问题
- 修复编译选项中缺少包含路径导致的编译失败问题
- 实现平台特定的编译选项处理(Windows MSVC 兼容模式等)
|
4 months ago |
韩天峰
|
95827cfb73
|
feat(backend): 添加编译器和平台抽象层实现
- 实现 CompilerBackend 抽象基类定义编译器接口
- 添加 Clang、GCC、MSVC 编译器后端具体实现
- 创建 PlatformBase 抽象基类定义平台接口
- 添加 Windows、Linux、macOS 平台具体实现
- 实现 CompilerFactory 工厂类自动创建编译器
- 实现 PlatformFactory 工厂类自动检测平台
- 提供跨平台路径处理和命令行参数生成
- 添加完整的使用示例和架构说明文档
|
4 months ago |