返回信息流目前有个项目,部分代码目录结构如下,打算用CMake来build。
依赖关系大致为:configurator/g3d_viewer/game/map_editor都依赖于shared_lib,需要
在查找路径中包含shared_lib/include。
我想问的是
1. game这个模块下面有若干个sub folder,假如我不想对每一个sub folder都做成一个
library的话,CMakeLists.txt只能手工将每个文件带上相对路径都写到
game/CMakeLists.txt之中吗?
2. 在其他模块中,如何使搜索路径包括share_lib/include?
source
├─configurator
├─g3d_viewer
├─game
│ ├─ai
│ ├─main
│ ├─menu
│ └─world
├─map_editor
└─shared_lib
├─include
└─sources
PS. 谢绝推荐其它qmake一类的工具,除非它也能生成makefile & MS VC Solution
这是一条镜像帖。来源:北邮人论坛 / soft-design / #39015同步于 2010/8/13
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
[CMake]问个编写CMakeLists.txt的问题
FadeToBlack
2010/8/13镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
1. 我想不出还有什么别的办法
2. 每个模块里写上include_directories(${PROJECT_SOURCE_DIR}/shared_lib/include)
感谢回复,发现有人做好了CMakeLists,就是这么解决的。
不过我自己也写了份,使用FILE(GLOB SRC_ALL "*.cpp")写一个函数,然后把subfolder list传进去就可以加入所有的文件
最后,可以在子目录中通过set(VAR VALUE PARENT)来设置上一级目录中的变量
通过这种方法写出来的CMakeLists还算是比较通用,项目加一个新的模块时基本只需要复制已有的CMakeLists做少量修改就行了。
【 在 Riful (西之莉芙璐) 的大作中提到: 】
: 1. 我想不出还有什么别的办法
: 2. 每个模块里写上include_directories(${PROJECT_SOURCE_DIR}/shared_lib/include)
<--懒
关键不是library的问题,关键是我问问题的时候只会一个subfolder搞一个library,结果两个project一合并,就出现命名冲突了。。。为了解决命名冲突加了个前缀,不过真她妹的丑...而且有些lib就仨文件还搞一个proj,搞得一个solution 10+的proj,看着烦死了
PS. proj不受我控制,所以我只想尽可能地省事
【 在 wks (cloverprince) 的大作中提到: 】
: 我觉得,你的project里有哪些library,应该是开发者可以预料,可以枚举的吧。写在一起又何妨。
【 在 jmpesp 的大作中提到: 】
: 我是来打酱油 开积分的
: --
: 建了拆,拆了建,GDP就会增长!
: ...................
发帖再删帖,删帖再发帖,版主操作就会增长