3

我使用 cmake 来构建、测试和安装我的项目。我的方法有点粗糙:我使用这样的脚本来获取源外构建:

DIR=debug_build &&
rm -fr ./${DIR} &&
mkdir -p ${DIR} &&
cd ${DIR} &&
cmake -D CMAKE_BUILD_TYPE=Debug $@ .. &&
make 

我想我至少可以把它放到makefile中,但是使用Makefile运行cmake来生成新的Makefile并运行另一个make不是很奇怪吗?

正确的方法是什么?cmake 是否可以选择避免调用“cd”?

最近它变得更加复杂,因为我提取了一个我想单独编译、测试和分发的库。我想避免重复我在顶级 CMakeLists.txt 中的所有内容。

如何用cmake正确地做到这一点?

4

3 回答 3

1

这似乎是最常见的处理方式。我通常看到(并使用过)批处理脚本(unix 上的 shell 脚本,或者只是 Windows 上的批处理文件)来处理这个问题,所以运行 ./build 将创建构建文件夹,CD 在那里,运行 cmake,构建,然后去回到原来的文件夹。

于 2009-08-05T00:48:58.523 回答
1

不,CMake 没有任何此类选项。我通常喜欢有一个包装 Makefile 来控制 CMake 调用。

这里的主要问题是 Makefile 生成器不支持在运行 make 时指定配置,就像 Visual Studio 生成器那样。我认为有一个为此提出的功能请求,但它会是一个非常侵入性的修复程序。

于 2009-08-05T10:44:10.380 回答
0

也可以使用 CMake GUI,如果它不存在,它将自动创建构建文件夹。

于 2010-05-06T16:09:36.603 回答