2017-05-18 34 views
0

CMake的文件複製以下不工作:在驅動器

cmake file (copy "C:/pathtofile/file.file" DESTINATION "D:/pathtofile2/file2.file") 

有沒有辦法使用cmake來實現同樣的事情?

+0

[CMake:將文件從源目錄複製到二進制目錄]可能的副本(http://stackoverflow.com/questions/34799916/cmake-copy-file-from-source-directory-to-binary-directory) – Tsyvarev

回答

0

cmakes fantastic配置文件系統將工作。這些文件可以有不同的名稱,但基本上如果它發現可以通過cmake擴展的變量(如$ {cmake_root_dir}或$ ENV {localappdata}),它將編輯該文件,用它們的值替換變量並將其保存到新的位置在新名稱下。所以如果沒有變量,它只是複製。

Configure_file(C:/pathtofile/file.file" "D:/pathtofile2/file2.file") 

如果你有cmake的風格變量在那裏不管什麼原因,你不希望他們擴大,使用@Only因爲這隻會擴大的「@」包圍變量:

Configure_file(C:/pathtofile/file.file" "D:/pathtofile2/file2.file" @ONLY) 
1

的文檔指出DESTINATION必須是一個目錄。因此,重命名文件不能以這種方式工作。

execute_process(COMMAND ${CMAKE_COMMAND} -E copy "C:/pathtofile/file.file" "D:/pathtofile2/file2.file") 

應該工作。

+0

你是100%正確的,但是我認爲configure_file(C:/pathtofile/file.file「」D:/pathtofile2/file2.file「)更冷。 – codeMetis

+0

你認爲它不清楚的代碼,如果我有它調用configure_file?或不必要的處理? – codeMetis

+1

我不這麼認爲,但是我只在需要進行變量替換的情況下使用configure_file。對於第一種情況,選項COPYONLY對於configure_file是至關重要的,它說:文件中的任何內容都不會保留它。 – vre

相關問題