簡體   English   中英

使用CMake處理其他CMake文件

[英]Processing additional CMake files with CMake

我有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中沒有這種可能性)。 因此,我必須每次手動修改diff才能排除CMakeLists.txt的調整。 這很不方便。

作為一種解決方案,我正在考慮將調整移到一個單獨的文件中,而不是在源代碼控制下(並在SVN中忽略它),然后將一些命令行選項傳遞給CMake首先處理該文件。 這可能嗎? 怎么樣?

CMake提供了使用變量及其值加載文件的方法,以將其用作緩存的基礎。
使用這樣的緩存文件並通過以下方式加載它

cmake -C <cachefile>

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

同樣,您可以使用load_cache但不能滿足您特定情況的需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM