CMAKE /代码组织

时间:2014-09-05 22:52:43

标签: c++ visual-studio cmake

我将制作一个cmake脚本来帮助我跨平台构建我的游戏。

我的游戏代码文件夹的组织方式是我有游戏目录,然后有各种文件夹,包括.hpp和.cpp文件。

实施例: ./Game/Engine/GraphicsContext.hpp

./游戏/资源/ Sprite.hpp 等...

现在这里的事情变得棘手了。现在的一切都在Visual Studio解决方案中。

该解决方案有2个项目;游戏和服务器。

这两个项目的所有代码都位于./Game。

然而,他们分享课程。他们都使用例如: /Game/Net/NetEventDecoder.hpp 等...

我的目标是这样做,如果我添加更多课程,我不必更新我的CMakeLists。

有没有人对如何实现这一点有任何建议,或者最大限度地减少我需要添加的文件数量;

例如,而不是: 包括"游戏/ UI / Button.hpp" ......等 这将是很好的:ADD_SUBDIRECTORY" Game / UI"。 问题是,例如,如果我将整个Game / Net子目录添加到服务器项目中,它将包括服务器未使用的类。

有没有人有这种问题的聪明解决方案,或者是我添加新课程时更新CMakeLists的常用解决方案?

谢谢

1 个答案:

答案 0 :(得分:2)

只需使用某些库共享常见资源,例如:

# 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)
相关问题