skywind3000 / kcp

:zap: KCP - A Fast and Reliable ARQ Protocol
MIT License
15.2k stars 2.49k forks source link

improve CMakeLists.txt #380

Closed myd7349 closed 1 year ago

myd7349 commented 1 year ago

本补丁是对 https://github.com/skywind3000/kcp/pull/376 的一个补充(考虑到 https://github.com/skywind3000/kcp/pull/376 在增加了动态库 install 的同时,未保留原来的静态库 install)。

本补丁与 https://github.com/skywind3000/kcp/pull/376 不兼容的部分:

可以进一步完善的地方:

目前,我是直接在 CMakeLists.txt 里将导出的符号信息写入到一个临时的 exports.def 中的。如果用户不使用 CMake(比如:用户用 nmake),为了给予其方便,可考虑将 exports.def 提交到代码库里。

skywind3000 commented 1 year ago

多谢

myd7349 commented 1 year ago

啊这!@skywind3000 大佬也太快了。我刚刚又推送了一次,正在解释第二次推送的原因:

今天又想了一下,感觉昨天的提交中对于 subproject 的特殊处理的逻辑对于 KCP 这样的库太重了(考虑到 KCP 核心代码也仅有两个文件),且有些偏离主旨(完善动态库、静态库编译),所以就移除了。如果大佬觉得简化后的版本可以接受,我可以 squash 成一个提交。

题外话:今天发现 CMake 3.21 里新增了 https://cmake.org/cmake/help/latest/variable/PROJECT_IS_TOP_LEVEL.html