2016-12-28 67 views
0

假設我有一個結構在我的項目特定樣式的文件:安裝與cpack和cmake的

src_dir\a 
src_dir\b\b2 
src_dir\c\c2\c3 

,並在每個文件夾中,我有幾個類型的文件(txt文件,.LIB,.DLL ... 。) 我只想安裝目錄X的dll文件,所以我嘗試:

install(
DIRECTORY src_dir 
DESTINATION X/ 
COMPONENT DLLS 
FILES_MATCHING PATTERN "*.dll" 
) 

它做工精細,但它給我的原有結構的完整結構(我只希望在dll文件X目錄)。輸出它:

X/a/a.dll 
X/b/b2/b.dll 
X/c/c2/c3/c.dll 

我希望它是像a.dll,b.dll和c.dll將在X(沒有任何子文件夾)。

有沒有辦法做到這一點,沒有給我的項目中的每個dll文件的完整路徑?

謝謝:)

回答

0

您應該能夠通過列出每個目錄,不一定每個DLL得到你想要的行爲。如果在DIRECTORY的末尾包含尾隨的正斜槓,則在複製到目的地時將省略目錄名稱。我希望像下面這樣實現你想要的東西:

install(
    DIRECTORY  src_dir/a/ 
    DESTINATION X 
    COMPONENT  DLLS 
    FILES_MATCHING PATTERN "*.dll" 
) 
install(
    DIRECTORY  src_dir/b/b2/ 
    DESTINATION X 
    COMPONENT  DLLS 
    FILES_MATCHING PATTERN "*.dll" 
) 
install(
    DIRECTORY  src_dir/c/c2/c3/ 
    DESTINATION X 
    COMPONENT  DLLS 
    FILES_MATCHING PATTERN "*.dll" 
) 
+0

謝謝你的回覆,但我想避免複製代碼。 –