2012-11-28 32 views
7

Prolog: मैं दस्तावेज में इस लापता के लिए एक बेवकूफ हूँcmake "इंस्टॉल निर्देशिका" निर्देश के साथ फ़ाइल अनुमतियों को कैसे संरक्षित करें?

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' केवल 'इंस्टॉल (निर्देशिका)' के साथ काम करता है। यह जवाब से तुरंत स्पष्ट नहीं था। – congusbongus