2013-12-23 70 views
0

我們最近開始使用純Visual Studio項目使用適當的CMake的文件切換。之前,我們將在解決方案根文件夾中包含「Content」文件夾,以允許我們的可執行文件使用諸如「../Tiles/tileset1.png」之類的相對路徑從其中訪問內容。如何將自定義內容添加到CMake項目?

我們如何才能確保CMake的複製文件正確,或者以其他方式確保我們的可執行文件都能夠找到的內容文件夾,而從Visual Studio無需手動設置工作目錄調試?

回答

0

我能想到的一些不同的選擇:

  1. 有CMake的把所有的可執行文件相同的文件夾,如this question描述。然後,您可以使用../Tiles../../Tiles或其他任何方法。但是請注意,你可能要考慮在每個目標的基礎設置這個,而不是全球範圍內,例如,使用:

    set_target_properties(
        my_target 
        PROPERTIES 
        RUNTIME_OUTPUT_DIRECTORY 
         ${CMAKE_BINARY_DIR}/bin 
    ) 
    

    設置CMAKE_RUNTIME_OUTPUT_DIRECTORY工作正常,但有些人認爲這是「舊」的方式做到這一點。 (根據您的需求,您可能還需要設置LIBRARY_OUTPUT_DIRECTORY,並可能ARCHIVE_OUTPUT_DIRECTORY。)

  2. 使用環境變量(例如,CONTENT_ROOT或一些,這樣的)來查找資源。硬編碼對生產有意義的默認代碼,但讓開發人員可以爲其特定的工作流程覆蓋它。

  3. 查找到跨平臺的資源libaries(類似Qt的QRC文件,但也許不依賴於Qt的)。
  4. 嘗試在this FAQ answer列出的CMake的模塊來改變Visual Studio的工作/調試目錄。

實際上,1和2的組合可能是你最好的選擇...

+0

經過進一步研究,似乎無論我會做不會有問題,因爲Visual Studio中仍然默認工作目錄到項目文件根目錄。我決定改爲將工作目錄改爲快速入門指南。標記爲答覆供其他人蔘考。 –

+0

@LaylConway,如果你只是想設置Visual Studio的工作目錄,你可以嘗試瑞安帕夫利克的CMake的模塊,這個(見我的答案項#4只是增加])。我在前面看過這些,但對於我們的特殊使用情況來說似乎過分了。如果你決定試試,請在這裏再次評論,我想聽聽它是如何輕鬆/難以設置的。 – evadeflow

相關問題