2012-07-11 30 views
7

में सीपीपी स्रोतों को कॉन्फ़िगर करना मैंने क्यूटी के शीर्ष पर एक प्रोजेक्ट स्थापित किया है (इसलिए स्रोत सी ++ में लिखा गया है) और मैं उस पर स्वचालित निर्माण के लिए ग्रैडल को आजमाने की कोशिश करता हूं। मुझे एक बहु परियोजना निर्माण को कॉन्फ़िगर करने के विवरण में कुछ समय लगा (वहां एक निष्पादन योग्य और दो libs है) और अब मैं cpp-exe और cpp-lib प्लगइन को बताने की कोशिश कर रहा हूं कि मेरा स्रोत पेड़ कैसे संरचित किया गया है।ग्रेडल

मैं (वहाँ कम से कम डिफ़ॉल्ट वाले सही होना चाहिए?) एक कार्य है कि स्रोत सेट के सभी प्रिंट चाहिए की स्थापना की है और यह इस तरह दिखता है:

task projectinfo { 
description = "Informations about the current project" 
group = INFORMATIONS_GROUP 

doFirst { 
    task -> print ("""${task.project.sourceSets.all}""") 
} 

Gradle बताता है अगर मैं इस कार्य को चलाने मुझे लगता है कि परियोजना के लिए कोई स्रोत "स्रोतसेट" नहीं है। The documentation of the plugin मुझे बताता है कि स्रोत स्थानों को अनुकूलित करना संभव है, लेकिन नहीं।

तो मेरा प्रश्न होगा: मैं ग्रैडल cpp प्लगइन कैसे कह सकता हूं जो स्रोत फ़ाइलों का उपयोग करने के लिए। यदि cpp प्लगइन के बारे में कोई एपीआई दस्तावेज और ग्रैडल उपयोगकर्ता मार्गदर्शिका के अलावा कोई दस्तावेज है जो भी मदद करेगा।

उत्तर

9

ग्रैडल के 'cpp plugin' के Adam Murdoch's usage पर एक नज़र डालें। मेरा मानना ​​है कि वह मुख्य Gradle सबमिट करने वाले व्यक्तियों में से एक है, तो वह कैसे किसी को भी से बेहतर उपयोग करने के लिए पता होना चाहिए: से native-platform/build.gradle

cpp { 
    sourceSets { 
     main { 
      source.exclude 'curses.cpp' 
     } 
     curses { 
      source.srcDirs = ['src/main/cpp'] 
      source.include 'curses.cpp' 
      source.include 'generic.cpp' 
      source.include 'generic_posix.cpp' 
     } 
    } 
} 

Then, within the 'libraries' node, refer to all/any combination of architecture and source sets: 

sourceSets << cpp.sourceSets.main 
sourceSets << cpp.sourceSets.curses 

डालती मैं अपने आप को इस पर ध्यान देने की बहुत लंबा नहीं मिला है, लेकिन ऐसा लगता है कि वह कई ओएस आर्किटेक्चर आधारित स्रोत कोड को परिभाषित करता है जिसमें संयोजन शामिल हैं और वेरिएंट वेरिएबल में स्टोर करते हैं। फिर वह उन्हें मंच जेएआरएस में संसाधित करता है (मैंने वास्तव में अभी तक निर्माण नहीं किया है, शायद मुझे चाहिए)।

इसके अलावा, https://github.com/rklaren/GradleJNI पर एक नज़र डालें, यह cpp plugin का उपयोग करता है लेकिन थोड़ा विंडोज-उन्मुख होने लगता है।

अद्यतन - मुझे https://github.com/alkemist/gradle-cpp-demo भी मिला, जिसमें 'cpp-exe' प्लगइन का निष्पादन योग्य एक उदाहरण है।

संबंधित मुद्दे