CMAKE/代码组织
CMAKE / Code Organization
我将制作一个cmake脚本来帮助我跨平台构建游戏。
我的游戏代码文件夹的组织方式是我有game目录,然后里面有各种东西的文件夹,包括.hpp和.cpp文件。
示例:./Game/Engine/GraphicsContext.hpp
/游戏/资源/Sprite.hpp等等。
这就是事情变得棘手的地方。现在一切都在Visual Studio解决方案中。
该解决方案有2个项目;游戏和服务器。
两个项目的所有代码都位于中/游戏
然而,他们共享类。它们都使用例如:/Game/Net/NetEventDecoder.hpp等等。
我的目标是这样做,如果我添加更多的类,我就不必更新我的CMakeLists。
有人对我如何实现这一点有什么建议吗,或者尽量减少我需要添加的文件数量;
例如,而不是:包括"游戏/UI/Button.hpp"等如果只是:ADD_SUBDIRECTORY"游戏/UI",那就太好了。例如,问题是,如果我将整个Game/Net子目录添加到服务器项目中,它将包括服务器未使用的类。
对于这类问题,有人有聪明的解决方案吗?或者当我添加一个新类时,更新CMakeLists的通常解决方案是什么?
感谢
只需使用一些库共享公共源,如:
# Game/CMakeLists.txt
add_library(game_common "${GAME_COMMON_SOURCES}")
add_executable(game "${GAME_SOURCES}")
target_link_libraries(game game_common)
# Server/CMakeLists.txt
add_executable(server "${SERVER_SOURCES}")
target_link_libraries(server game_common)
相关文章:
- Clion显示错误,但可以使用Cmake成功构建代码
- Cmake:为 C 设置警告级别,并为 MSVC 单独设置C++代码(Visual C++)
- 不使用configure_file时如何使用CMake生成C++代码?
- CMake 错误:链接器命令失败,退出代码为 1 和 cpp.o 文件
- 如何使用 cmake 在代码中包含、构建和调试共享库 (.so)?
- Visual Studio代码不理解CMake-DDEBUG
- 编译/添加 cuda 代码到现有项目 (CMake)
- 将 cmake 代码段转换为函数 - 不起作用
- 如何设置 CMake 来构建包含路径包含的代码,如 #include < libdir/lib>?
- 使用用 C++ 和 DDS 编写的 CMAKE 编译代码
- 如何使用 CMAKE 编译现代 C++ 项目代码
- 使用 CMake 和 Maven 构建C++和 Java 代码,并捆绑在一个罐子里
- 我可以在我的 cmake 代码中手动使用 CMake 的 cpp 文件依赖项扫描程序吗?
- Cmake 将参数解析为代码
- Cmake并需要两次运行才能成功构建代码
- 为什么CMAKE add_依赖项不适用于使用CUDA代码的库
- 使用cmake and vs在Windows上的现有代码中生成DLL
- "Segmentation fault"使用 Cmake 在C++代码中运行 python 函数时
- 避免具有多个目标的重复CMAKE代码
- 使用cmake从文件中定义宏,然后在代码上使用它