在一个源构建之后,如何强制CMake的到别的什么地方建?

问题描述 投票:0回答:1

假设我有一个名为foo项目,下/foo/src来源。另外,假定在过去的某个时候,有人跑cmake /foo/src,所以有没有建立文件。

现在,我想执行foo的构建,在/foo/build。但是,如果我cd /foo/build; cmake /foo/src - 它把/foo/src作为构建目录,并配置和生成,有建文件,而不是在当前目录中。

问题:

  1. 什么是最少的一组中/foo/src文件,以删除CMake的配置和生成/foo/build构建文件?
  2. 我可以强制cmake的使用/foo/build未经/foo/src删除任何内容?
cmake directory-structure building
1个回答
1
投票

1.充分组要删除的文件的

足够的,虽然也许不是最小的,设置文件删除:

CMakeCache.txt
Makefile
cmake_install.cmake
CMakeFiles/

如果你还启用了测试,那么

CTestTestfile.cmake
Testing/
tests/CTestTestfile.cmake
tests/Makefile
tests/cmake_install.cmake
tests/CMakeFiles/

2.如何强制不同的生成位置不删除:

如果执行

cmake -B/foo/build -H/foo/src

CMake的会忽略以前的版本,并在/foo/build建设。你不需要它来发出这个命令时是你的当前工作目录。

这个答案的第二部分实际上可以this answer内发现

© www.soinside.com 2019 - 2024. All rights reserved.