在多部分cmake项目中获得源代码外构建的正确方法
我使用cmake构建、测试和安装我的项目。 我的方法有点粗糙:我使用这样的脚本来获得一个源代码外构建:在多部分cmake项目中获得源代码外构建的正确方法,cmake,out-of-source,Cmake,Out Of Source,我使用cmake构建、测试和安装我的项目。 我的方法有点粗糙:我使用这样的脚本来获得一个源代码外构建: DIR=debug_build && rm -fr ./${DIR} && mkdir -p ${DIR} && cd ${DIR} && cmake -D CMAKE_BUILD_TYPE=Debug $@ .. && make 我想我至少可以把它放到makefile中,但是使用makefile运行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?这似乎是最常见的处理方式。我通常会看到(并使用)批处理脚本(unix上的shell脚本,或Windows上的批处理文件)来处理此问题,因此运行./build将创建生成文件夹,CD在那里,运行cmake,build,然后返回原始文件夹。否,cmake没有任何此类选项。我通常喜欢使用包装器Makefile来控制CMake调用
这里的主要问题是,Makefile生成器不支持在运行make时指定配置,就像VisualStudio生成器一样。我认为这是一个功能请求文件,但要修复它将是一个非常侵入性的过程。也可以使用CMake GUI,如果不存在,它将自动创建构建文件夹。您能否详细说明使用make控制CMake的主要问题?使用包装器Makefile控制CMake真的没有问题。我指的是,为了支持构建多个配置,必须使用多个构建目录。