2012-03-14 8 views
2

私はcmakeを使用しているC++ライブラリを持っています。マイライブラリの構造は次のようになります。CMakeでパスを含むファイルを取得する

src/module1/class1.h 
src/module1/class1.cpp 
src/module1/class2.h 
src/module1/class2.cpp 
src/module2/class3.h 
src/module2/class3.cpp 

など。

私はINSTALLコマンドを使用して、私のプロジェクトのためのルールをインストールしたいです。

FILE (GLOB_RECURSE ALL_HEADERS "*.h") 

次は私がCにそれらをインストールしようとしている:まず、私はすべての私のヘッダファイルを取得する必要が\ tempにする:

INSTALL(FILES {$ALL_HEADER} DESTINATION "C:\\temp") 

それは動作しますが、結果のディレクトリは以下の通りです:

temp/class1.h 
temp/class2.h 
temp/class3.h 

ではなく、次のとおりです。

temp/module1/class1.h 
temp/module1/class2.h 
temp/module2/class3.h 

ご覧のように、CMakeはフォルダパスを "覚えていません"。どうすれば対処できますか?オプションの

答えて

1

一つinstall(DIRECTORY ...構文を使用している:

install(DIRECTORY src/module1 src/module2 DESTINATION "C:/temp" FILES_MATCHING PATTERN "*.h") 
+0

それは動作しますが...しかし、それをコピーするすべてのファイルだけでなく、 "* .H"。 PATTERNコマンドが動作しないと思われる – user1266334

+0

install(DIRECTORY src/module1 src/module2 DESTINATION "C:/ temp" FILES_MATCHING PATTERN "* .h")の代わりに、FILES_MATCHINGパターンと "/"の代わりに "/"が必要です。あなたの投稿を更新してください、私は私の質問に答えました – user1266334

関連する問題