2016-10-07 69 views
0

我需要創建目錄common_resources的符號鏈接,其中包含紋理,字體,3D模型和着色器,位於我的CMAKE_SOURCE_DIR中。我必須將這樣一個鏈接放到我編譯的二進制目標的所有工作目錄(〜50個目錄)中。從每個目標目錄到公共資源的符號鏈接目錄

我也許可以做一個接一個加入這個ADD_CUSTOM_TARGET到每個子文件夾

ADD_CUSTOM_TARGET(common_resources ALL COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/common_resources ${CMAKE_CURRENT_BINARY_DIR}/common_resources) 

,但我不想這樣做,因爲:

  1. 我不想編輯所有這些CMakeList.txt文件和
  2. 我不想無緣無故創建如此多的自定義目標。我使用Code :: Blocks IDE,並且我已經有很長的目標列表可供選擇,這使得難以使用。

回答

1

答案是兩個方面:

  1. 寫一個函數包裝的自定義命令。

  2. 你必須自動遍歷所有子目錄,看到https://stackoverflow.com/a/7788165/2799037如何做到這一點。爲每個子目錄調用你的函數。

你的第二個擔心可能是一種誤解。 custom_command不會添加新的目標,即只有custom_target

+0

謝謝,我'不知道如何使用'custom_command'。順便說一句。你有想法是否有可能擺脫所有'目標/快速'哪個cmake默認生成與'target'一起? –