速報:CMake工具擴展更新2項新功能

東西來了

Visual Studio Code CMake工具擴展的2020年2月更新現在已經可用。在這次更新中,我們帶來了大家呼聲最高的兩項功能特性:基於文件的API支持和多根目錄工作區支持。這又是什麼神仙玩意?請看下面的詳細分解。

多根目錄工作區支持

在最新版的CMake工具擴展中,我們添加了多根目錄工作區的特性。這意味著顯著你可以擁有兩個或者更多的目錄來存放一個根CMakeLists.txt文件並在Visual Studio Code中並行打開。當一個工作區中包含有多個目錄時,CMake工具擴展將會狀態欄的左側顯示[當前活動的目錄]。當前活動的目錄指的是一個可以執行所有CMake相關指令的目錄,這些指令包括:configure, build, debug等。在下面的圖片中,顯示了一個活動的目錄CMakeProject-1。

速報:CMake工具擴展更新2項新功能

在默認情況下,這個活動的目錄將會根據你打開的文件來進行自動切換。在目錄[CMakeProject-1]中查看或者編輯某一個文件將會使得[CMakeProject-1]變為一個活動的目錄,同理,在目錄[CMakeProject-2]中查看或者編輯某一個文件將會使得[CMakeProject-2]變為一個活動的目錄。除此之外,你還可以在狀態欄選擇活動的目錄或者執行[CMake: Select Active Folder]指令臨時修改活動的目錄。

速報:CMake工具擴展更新2項新功能

你還可以通過設置[CMake: Auto Select Active Folder]屬性為[false]來禁用這一行為。可以使用指令[Workspaces: Open Workspace Configuration File]來打開工作區配置。如果[cmake.autoSelectActiveFolder]被設置為[false],則你的活動目錄只會在你手動執行[CMake: Select Active Folder]指令時才發生改變。

最後,CMake工具擴展還添加了一些新的指令,如[CMake: Configure All Projects]和[CMake: Build All Projects]用來將現已存在的CMake指令應用到你的工作區的所有目錄中。這些指令只有當你的工作區中有至少2個目錄時可用。

速報:CMake工具擴展更新2項新功能

在[CMake: Project Outline]視圖中,還有一些其他配置,編譯,清理,重新編譯和重新配置所有工程的指令。

基於文件的API

首先,感謝KoeMai提出這個PR!CMake v3.14開始引入了基於文件的API,這一特性可以幫助客戶(類似CMake工具擴展這樣的客戶)獲取CMake生成的)獲取CMake生成的關於底層編譯系統的語義信息。另外,還可以通過這個特性來在編譯系統開始生成代碼之前編寫查詢文件。在編譯系統生成階段,CMake會嘗試讀取這些查詢文件並行為客戶寫入對象模型響應文件。在之前的版本中,CMake工具擴展僅支持[cmake-server]模式,這種模式已經在CMake v3.15中被廢棄。基於文件的API提供了一種更快更流水線式的方式來生成工程的結構化信息,因為它不再採用CMake的server模式(這種方式比較耗時),而是採用讀取響應文件的方式來工作。

在最新版本的CMake工具擴展中,我們添加了對基於文件的API的支持。我們添加了[CMake: CMake Communication Mode]這一配置項來用於進行工作模式切換,在默認情況下,我們的工作方式是[automatic],以下是可以選擇的工作模式:

> automatic: 如果CMake版本是v3.14及以上的則採用file-api,否則fall back到cmake-server模式。

> fileApi

> serverApi

> legacy: 用於v3.7版本及更舊版本的CMake,有些功能將不可用。

總結

此次新增的兩項新功能進一步的強化了Visual Studio Code對CMake工程的支持力度,讓我們更加專注在業務開發上。但是,萬一我的關注點不在業務上呢?


分享到:


相關文章: