2012-04-10 46 views
2

我目前正在調查cmake以允許在Win32平臺上自動構建。對於我想構建的所有運行時和庫,Visual Studio(2008/2010)項目已經存在。我是否真的需要cmake來實現構建自動化?

我碰到過cmake,但我不確定是否真的需要它。正如文檔所述,cmake生成VS項目,然後可以構建它們。使用MSBuild。由於項目本身已經存在(並且通過cmd行上的IDE或MSBuild很好地構建),我需要什麼以及如何使用cmake?僅用於目錄/項目文件夾遍歷?構建失敗報告?

問候, 保羅

+1

我想你真的是_need_是MSBuild和代碼庫。腳本它,但你想要它。 (cmake,NAnt等)就我個人而言,我真的很喜歡使用Rake構建腳本,儘管它實際上只是調用MSBuild(和MSDeploy)。但是,作爲一個完全成熟的編程工具(Ruby語言),它可以成爲一個非常強大的腳本代理。 – David 2012-04-10 14:59:31

回答

6

好吧,嚴格來說你不要需要吧。然而,它確實給你帶來一些好處:

  1. 使用CMake的慣用方式迫使你使用out-of-source構建。可以說,但我個人確信這些讓你的源代碼庫非常乾淨。

  2. 您可以支持多個visual studio版本(使用out-of-source版本)。也許將項目移植到其他編譯器(從MinGW - > Linux GCC)會更容易一些。

  3. 通過使用find_package和config.cmake文件以及大量可用的findXXX模塊,CMake使得將第三方庫「導入」到構建鏈變得容易很多。

+0

那麼,源代碼外的構建是一些東西 - 但對於手動測試和部署,這就是我如何開始使用VS IDE本身構建。項目都在那裏,不需要重新發明輪子(或者有重複的vcxproj文件)。 – PMiller 2012-04-10 20:11:38

+1

絕對不需要保留重複的文件。 CMake會替換vcxproj文件。對我們來說,CMake提供了一個調整項目設置的中心位置(不僅適用於不同的編譯器,也適用於不同的編譯器版本)。附註:是的,它絕對是非常容易的被轉移到Linux/gcc,我絕對推薦你看看它(從一個小項目開始)。這就是說,「永不」改變一個正在運行的系統。 – 2012-04-12 07:11:58

5

你不需要它。只有當您試圖保持相同的源代碼能夠在多個平臺和編譯器中構建時,Cmake纔有用。如果您只是使用微軟堆棧構建,則不需要它。

+0

謝謝 - 你將如何腳本目錄遍歷?手動還是有工具可以做到這一點,踢我定義的任何東西,然後檢查返回代碼並寫出適當的報告? – PMiller 2012-04-10 20:13:30

+0

我不確定目錄遍歷是什麼意思,但是我會使用CruiseControl.NET或Hudson等任何主要的持續集成平臺。那麼,使用你說的你可以在MSBuild和IDE中構建它的事實,應該可以得到你目前正在尋找的所有東西,併爲將來的其他事物提供一個平臺。您只需告訴它如何獲取源代碼並將其指向您的解決方案文件或項目文件,併成爲其中的大部分內容。 – Alex 2012-04-10 23:54:20

+0

我的意思是我只想定義一組文件夾,其中包含一個或多個VS項目,構建它們,收集輸出/返回代碼並呈現它。哈德森看起來有點專注於Java,會看看CruiseControl.NET。 – PMiller 2012-04-11 10:13:47

相關問題