Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

支持使用 CMake 与 MinGW 构建 HMCLauncher #3011

Merged
merged 11 commits into from
Sep 23, 2024
Merged

Conversation

YSXX1013
Copy link
Contributor

No description provided.

@Glavo
Copy link
Member

Glavo commented Apr 27, 2024

支持多个工具链需要维护更多的编译脚本和更多测试。测试 HMCLauncher 本身就很麻烦,支持 MinGW 后每次更新后工作量都会更大,而且使用 MinGW 编译没有实际价值,所以我反对此 PR。

@burningtnt
Copy link
Member

burningtnt commented Apr 27, 2024

大部分开发者即使有 Windows 环境,也只有 cmake 和 gcc,不会专门去下一个 msbuild。并且,msbuild 非常重,专门为开发 HMCLauncher 下载一份极其痛苦。

我建议将 CMake 编译作为可选项,仅提供 CMake 但不提供 GitHub Action
做到能用即可。用于构建 HMCL 的版本仍然通过 msbuild 构建

@Glavo
Copy link
Member

Glavo commented Apr 27, 2024

VS 环境对于 Windows 上的 C++ 开发者几乎是必备的,Win32 程序部署基本都是用 MSVC,Windows C++ 开发者很少有用 MinGW 而不去装 MSVC 工具链的。我希望各位所用的开发环境还是尽可能和实际部署环境看齐。

@burningtnt
Copy link
Member

HMCL 开发者通常技术栈都由 Java 向外辐射,涉及到 C++ 的部分也就只是 JNI 了…… 因此大多装 MinGW。况且,msbuild 极其重,专门为开发 HMCLauncher 去下这么大个东西着实痛苦

@YSXX1013
Copy link
Contributor Author

支持多个工具链需要维护更多的编译脚本和更多测试。测试 HMCLauncher 本身就很麻烦,支持 MinGW 后每次更新后工作量都会更大,而且使用 MinGW 编译没有实际价值,所以我反对此 PR。

我最主要的想法还是HMCL作为开源软件,HMCLauncher也最好有使用开源工具链的编译解决方案;至于兼容性问题,理论上使用标准C++的情况下MSVC和g++/clang++的区别也并没有那么严重。本身HMCLauncher的代码的绝大部分也可以不经修改在gcc+mingw的环境下编译,真正对源码的修改只有main.cpp中涉及_declspec(dllexport)的部分需替换成gcc/clang中的相应形式。
这个pr的目的也只是提供使用其他编译器来编译HMCLuncher的可能性,我们可以声明HMCL的开发团队仅仅支持MSVC编译的HMCLauncher,对CMake以及其他编译器的支持属于实验性支持,不给予任何担保并且不保证修复bug。同时官方发布的HMCL将仍然使用MSVC作为HMCLauncher的编译器,理论上这也不会对发布流程有任何影响

@burningtnt
Copy link
Member

所以…… 这个 PR 能合并吗?

@Glavo Glavo changed the title 为HMCLauncher添加CMake以及gcc支持和其相应的Github Actions 支持使用 CMake 与 MinGW 构建 HMCLauncher Sep 23, 2024
@Glavo Glavo merged commit ea9999a into HMCL-dev:main Sep 23, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants