使用CMake

时间:2016-09-01 14:56:52

标签: svn version-control build cmake tweak

我有CMakeLists.txt文件,该文件受源代码管理。但是,要进行交叉编译,我需要进行大量的调整,以便-DCMAKE_SYSTEM_PROCESSOR=armhf等所有选项都不符合命令行限制。为了解决方法,我只是将所有选项添加到根目录中的CMakeLists.txt文件中。他们看起来像

if(TWEAK_PROJECT_XXX)
    set(CMAKE_SYSTEM_PROCESSOR armhf CACHE STRING "")
...
endif()

当然我无法对源代码控件进行这些调整。但是,命令行SVN在制作补丁时不允许排除某些文件:

svn diff --diff-cmd=diff -x -U999999 > full.diff

我需要完全差异,所以我不能使用TortoiseSVN GUI来制作它(在GUI,AFAIK中没有这种可能性)。因此我每次都必须手动修改差异以排除CMakeLists.txt的调整。这很不方便。

作为一种解决方案,我正在考虑将调整移动到单独的文件,而不是在源代码控制下(并在SVN中忽略它)并将一些命令行选项传递给CMake以首先处理该文件。这可能吗?怎么样?

1 个答案:

答案 0 :(得分:1)

CMake提供加载带有变量及其值的文件,以将其用作缓存的基础 使用这样的缓存文件并通过

加载它
cmake -C <cachefile>

文档:cmake.org/cmake/help/v3.6/manual/cmake.1.html

类似地,您可以使用load_cache,但它不符合您特定情况下的需求。