2016-12-28 8 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

답장을 보내 주셔서 감사합니다. 그러나 나는 코드 복사를 피하고 싶습니다. –