簡體   English   中英

如何跳過 CMake 編譯器識別?

[英]How can I skip CMake compiler identification?

我正在我的軟件環境上運行一些測試。 這會對 CMake 進行數百次調用以配置許多項目,並且始終使用相同的編譯器。

對於每次調用 CMake,它都會檢查編譯器:

-- Selecting Windows SDK version  to target Windows 10.0.16299.
-- The C compiler identification is MSVC 19.0.24215.1
-- The CXX compiler identification is MSVC 19.0.24215.1
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/x86_amd64/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done

這需要一段時間,並且多次完成是無用的,因為在運行這些測試的機器上它總是以相同的結果結束。

有沒有辦法“緩存”編譯器檢查結果並且只執行一次?

fdan 建議(在評論中)添加頂級CMake項目,使用add_subdirectory添加所有子項目。 我沒有嘗試過,但它看起來像是可以炒的東西。

與此同時,我發現另一種選擇是:

  • 創建一個空的CMakeLists.txt文件
  • 在其上運行CMake ,它會檢查編譯器。 這會生成一些文件,包括CMakeCache.txtCMakeFiles文件夾。
  • 對於下一個項目,您將在其上運行CMake
    • 復制您對空項目執行的第一次運行的輸出(包括CMakeCache.txtCMakeFiles文件夾)
    • 修改CMakeCache.txt內容以引用新項目文件夾而不是舊文件夾(否則 Cmake 將報告CMake Error: The current CMakeCache.txt directory ... is different than the directory ... where CMakeCache.txt was created)
    • 然后在配置下一個項目時將不會進行編譯器檢查

暫無
暫無

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

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