2014-06-19 10 views
22

मैंने देखा है कि मैं cmake का उपयोग कर एक निर्देशिका कॉपी करने के क्रम में इस आदेश का उपयोग कर सकते हैं उत्पादन निर्देशिका के लिए दिया एक्सटेंशन के साथ सभी फाइलें:cmake प्रतिलिपि

file(COPY "myDir" DESTINATION "myDestination") 

(this post से)

मेरे समस्या है कि मैं myDir की सभी प्रतिलिपि नहीं बनाना चाहता, लेकिन केवल उस .h फाइलें जो वहां हैं। मैं

file(COPY "myDir/*.h" DESTINATION "myDestination") 

साथ की कोशिश की है, लेकिन मैं निम्नलिखित त्रुटि प्राप्त:

CMake Error at CMakeLists.txt:23 (file): 
    file COPY cannot find 
    "/full/path/to/myDIR/*.h". 

मैं फ़ाइलों है कि मैं एक गंतव्य फ़ोल्डर में प्रतिलिपि बनाना चाहते हैं कैसे फ़िल्टर कर सकते हैं?

उत्तर

34

मैं अपने आप को द्वारा समाधान मिल गया है:

file(GLOB MY_PUBLIC_HEADERS 
    "myDir/*.h" 
) 
file(COPY ${MY_PUBLIC_HEADERS} DESTINATION myDestination) 
3

यह भी मेरे लिए काम करता है:

install(DIRECTORY "myDir/" 
     DESTINATION "myDestination" 
     FILES_MATCHING PATTERN "*.h")