2016-12-26 85 views
8

CMakeLists.txt腳本,這是習慣有:如何判斷在CMakeLists.txt中需要哪個最小CMake版本?

cmake_minimum_required(VERSION x.y) 

爲適當的版本xy格式號。但是 - 你怎麼知道最低版本是什麼?我不使用舊版本;隨着我的發行版更新,CMake也會更新,所以我甚至可能會隨着時間的推移推出需要更新版本的命令,而我只是不知道它。

我理論上可能需要我測試過的版本CMakeLists.txt - 但它們很新(3.5.1,3.5.2),我不想限制我的代碼的用戶。

+0

[查找引入哪個CMake版本功能]的可能重複(http://stackoverflow.com/questions/40844358/finding-which-cmake-version-a-feature-was-introduced-in) – wasthishelpful

+1

@ wasthishelpful不,這不是重複的。您無法檢查每個CMake命令是否使用更新的功能。 – usr1234567

+0

@ usr1234567我的壞^^也許更多這一個:[CMake - 哪個版本爲最小](http://stackoverflow.com/questions/35550116/cmake-which-version-as-minimum) – wasthishelpful

回答

4

根據聲稱的最低要求版本從https://cmake.org/files/下載CMake二進制文件。你可以在某個目錄下解壓縮它們,並使用這個CMake來確保它仍然是最低要求的版本。您可以並行使用任意數量的版本。不要忘記刪除構建目錄。

您沒有提到的問題,但同樣重要:使用較新版本檢查您的代碼。新的政策可能會導致數十個警告,許多項目嘗試避免發佈警告。因此,使用相同的程序獲得最新版本可能會很好。

7

沒有自動的方法來做到這一點。以下是我用過的一些方法:

  1. 如果您已經使用了CMake一段時間,您可能會粗略地記住哪些功能更新和更舊。選擇您認爲較新的一些功能,並閱讀文檔以發現哪些版本支持它們。
  2. 如果您只能安裝一個或兩個舊版本,則可能已足夠。 CMake 2.8.x非常受歡迎,因此安裝和測試以查看它是否可行(或許可以修復它),這對於某些用戶來說是一項很好的服務。
  3. 別擔心。如果用戶有特定的問題,請將最小值設置爲2.8.10,然後接受修補程序或錯誤報告。將此數字設置得太低不太可能會造成嚴重傷害 - 通常它只會導致與「CMake版本太舊」不同的錯誤信息。
+0

剛剛在構建過程中引導特定的CMake版本? – Kamiccolo

+1

@Kamiccolo這會增加構建系統的複雜性,而對於較小的項目則會超出規模,你會建立哪個版本?最少的必需的,最新的,還是一些人工挑選和測試的?你是在任何地方建立CMake還是隻在具有過時CMake的系統上使用? – usr1234567

+1

@ usr1234567:謝謝我更新了我的答案以指定2.8。 10而不是2.8。 –

相關問題