2011-12-19 17 views
5

で特定のファイルをインストールしますフォルダには、追加の.svn/ディレクトリが含まれています。 .svnディレクトリをスキップしながら、すべてのヘッダファイルをprojectSource/includeからprojectInstall/includeにインストールする最も簡単な方法は何ですか?しかし、私は*.hに一致するファイルのみをインストールする(しようと)していたとしても、私はまだ.svn/ディレクトリと内容を拾ってるは、私はソースディレクトリ構造を持っているCMakeの

set(PROJECT_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include) 
include_directories(${PROJECT_INCLUDE_DIR}) 
install(DIRECTORY ${PROJECT_INCLUDE_DIR}/ 
    DESTINATION "include" 
    FILES_MATCHING PATTERN "*.h" 
    PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) 

私はのようなものを使用したいと思います。

答えて

12

あなたはパターンにEXCLUDEキーワードを追加することができます `PATTERN "の.svn" EXCLUDE`が働いていたが、` FILES_MATCHINGパターンの私の印象を使用して

install(DIRECTORY ${PROJECT_INCLUDE_DIR}/ 
    DESTINATION "include" 
    FILES_MATCHING 
    PATTERN "*.h" 
    PATTERN ".svn" EXCLUDE 
    PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ) 
+0

を "* .hのは、" 'ファイルだけがそのパターンにマッチするということでしたインストールされます。そうじゃないの? – Chris

+0

はい、 'PATTERN'を' EXCLUDE'なしで使うと、一致するパターンだけがインストールされます。 .svn/dirには ".h"で終わる名前のファイルが含まれているため、svnのものが一致しています。したがって、明示的にCMakeに.svn/dirsを調べないように指示する必要があります。 – arrowd

+0

私は説明をありがとう、参照してください。 – Chris