2012-11-28 2 views
7

프롤로그 : 나는이 문서에서이 누락 바보 야cmake "install directory"지시어로 파일 사용 권한을 보존하는 방법은 무엇입니까?

cmake-2.8.10.2

어떻게 디렉토리를 설치할 때 cmake 원본 파일 권한을 유지 어떻게해야합니까? 당분간 프로젝트를 위해, 필자는 소스 트리에서 설치 트리로 일부 디렉토리를 복사하고 싶습니다. 위트로 :

install(
    DIRECTORY config runp 
    DESTINATION ${CMAKE_INSTALL_PREFIX} 
    PATTERN ".svn" EXCLUDE 
    PATTERN ".git" EXCLUDE 
    PATTERN "start_collection.snl" EXCLUDE 
) 

실행 파일이 잘못된 파일 권한으로 복사되는 것을 제외하면 모두 정상적으로 작동합니다. 사실, 없음 원본 파일 사용 권한이 보존됩니다. FILE_PERMISSIONS 및 DIRECTORY_PERMISSIONS을 사용하여 전역으로 권한을 설정하는 것은 내가하고 싶지 않은 것이며 솔직히이 컨텍스트에서 해킹이 될 수 있습니다. install()를 호출 할 때

for i in config runp ; do 
    tar cf - $i | tar -C $CMAKE_INSTALL_PREFIX -xf - 
done 

답변

10

문서가 USE_SOURCE_PERMISSIONS를 사용하여 제안 :, 또는

install(
    DIRECTORY config runp 
    DESTINATION ${CMAKE_INSTALL_PREFIX} 
    USE_SOURCE_PERMISSIONS 
    PATTERN ".svn" EXCLUDE 
    PATTERN ".git" EXCLUDE 
    PATTERN "start_collection.snl" EXCLUDE 
) 

을 당신의 install(PROGRAMS 서명을 사용할 수있는 쉘 스크립트 세계에서

, 나는 다음과 같은 간단한 일을 할 거라고 이 명령. 자세한 내용은 See docs을 참조하십시오.

+0

글쎄, 나는 바보 야. 나는 어쨌든 문서에서 그 옵션을 바로 썼다. 그것을 지적 주셔서 감사합니다. – smcdow

+5

감사합니다. 'USE_SOURCE_PERMISSIONS'는'install (DIRECTORY)'에서만 작동한다고 언급하고 싶었습니다. 대답에서 즉시 명백하지 않았습니다. – congusbongus