【问题标题】:Proper way to get an out-of source build in multi-part cmake project在多部分 cmake 项目中获取源代码构建的正确方法
【发布时间】:2009-08-05 00:45:19
【问题描述】:

我使用 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?

【问题讨论】:

    标签: cmake out-of-source


    【解决方案1】:

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

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

    【讨论】:

    • 能否详细说明使用make控制cmake的主要问题?
    • 使用包装器 Makefile 控制 cmake 真的没有问题。我指的是必须使用多个构建目录以支持构建多个配置。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2013-08-18
        • 2012-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-23
        • 2014-07-25
        • 2020-06-01
        • 1970-01-01
        相关资源
        最近更新 更多