2012-03-14 3 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에 설치하려고 해요 : 첫째, 나는 내 모든 헤더 파일을 검색 할 필요가 \ 온도를 :

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") 대신 "FIRES_MATCHING pattern"및 "\\"대신 "/"가 필요합니다. 게시물을 업데이트하고 제 질문에 답변 해주세요. – user1266334