CMake 3.28 版本說明

自 CMake 3.27 以來所做的變更包含以下內容。

新功能

程式語言

  • Ninja 產生器Visual Studio 產生器 現在支援 C++ 20 具名模組,搭配 VS 2022 及更新版本、MSVC 14.34 工具組(隨 VS 17.4 提供)及更新版本、LLVM/Clang 16.0 及更新版本,以及 GCC 14(於 2023-09-20 每日更新之後)及更新版本。詳情請參閱 cmake-cxxmodules(7)

  • 現在可以使用 NVIDIA CUDA 編譯器 (NVCC) 編譯 HIP 語言程式碼,以用於 NVIDIA GPU。請參閱 CMAKE_HIP_PLATFORM 變數。

平台

預設集

  • cmake-presets(7) 檔案現在支援結構描述版本 8。它新增了對 $schema 欄位的支援。

編譯器

  • 現在支援以 Cray Clang 為基礎的編譯器,並使用 編譯器 ID CrayClang

  • 現在支援 OrangeC 編譯器,並使用 編譯器 ID OrangeC

指令

變數

屬性

  • 在匯入的共用程式庫上,現在可以使用 IMPORTED_IMPLIB 目標屬性,而不需要 IMPORTED_LOCATION。這可以用於表示不應將其位置新增為連結它的相依項的執行階段搜尋路徑的虛設常式程式庫。

  • macOS 框架的 IMPORTED_LOCATION 屬性現在可以是 .framework 資料夾本身的路徑。

  • 新增了 XCODE_EMBED_RESOURCES 目標屬性,以告知 Xcode 產生器應將哪些目標放入 Embed Resources 建置階段。

模組

產生器表達式

CTest

已棄用與移除的功能

其他變更

  • 在使用 檔案集 的目標中,產生的檔案現在預設為私有。產生的公開標頭必須使用檔案集指定。這允許 Ninja 產生器 產生更有效率的建置圖表。請參閱政策 CMP0154

  • find_library()find_path()find_file() 命令不再搜尋從 PATH 環境變數衍生的安裝前置詞。此行為在 CMake 3.3 中加入,以支援 Windows 上的 MSYS 和 MinGW (MSYSTEM) 開發環境,但它可能會搜尋因無關原因而剛好在 PATH 中的不必要前置詞。僅為其工具保留一些 <prefix>/bin 目錄在 PATH 中的使用者,不一定希望搜尋任何對應的 <prefix>/lib<prefix>/include 目錄。此行為在 CMake 3.6 中針對非 Windows 平台還原。現在,它也已在 Windows 平台上還原。

    可以使用以 分號分隔的列表 的前置詞設定 CMAKE_PREFIX_PATH 環境變數,以進行搜尋。

  • 在 Windows 上使用 MSYSTEM 環境中的 MinGW 工具時,$MSYSTEM_PREFIX/local$MSYSTEM_PREFIX 前置詞現在會新增到 CMAKE_SYSTEM_PREFIX_PATH

  • cmake.org 上提供的預編譯 Linux x86_64 二進位檔案現在需要 GLIBC 2.17 或更高版本。

更新

自 CMake 3.28.0 以來所做的變更包括以下內容。

3.28.1、3.28.2、3.28.3

  • 這些版本未對已記錄的功能或介面進行任何變更。為支援生態系統變更和/或修復回歸問題,進行了一些實作更新。

3.28.4

  • 已針對 xrosxrsimulator SDK 的官方 Xcode 15.2 版本更新了 Apple visionOS 的支援。

3.28.5

  • 此版本未對已記錄的功能或介面進行任何變更。針對 C++ 模組支援進行了一些實作更新。

3.28.6

  • 此版本未對已記錄的功能或介面進行任何變更。為支援生態系統變更和/或修復回歸問題,進行了一些實作更新。