2013-02-04 16 views
7

मुझे प्रोटोकॉल बफर .proto फ़ाइलों को .pb.cc, .pb.h फ़ाइलों में संकलित करने की आवश्यकता है। इस रूपांतरण के लिए एक कार्यक्रम है।सीएमके: कस्टम जेनेरिक संकलन नियम कैसे जोड़ें?

protoc test.proto --cpp_out . 

मैं cmake में ऐसा सामान्य नियम कैसे जोड़ सकता हूं? मैं add_custom_command के साथ ऐसा कर सकता हूं। लेकिन मुझे यह हर .proto फ़ाइल के लिए है। क्या ऐसा करने के लिए इससे अच्छा तरीका है?

+0

हाय मोहम्मद, फ्रेज़र का जवाब सही है, कृपया इसे स्वीकार करें। – guinny

उत्तर

6

ऐसा लगता है कि CMake के FindProtobuf मॉड्यूल की तरह समारोह PROTOBUF_GENERATE_CPP के माध्यम से इस सुविधा प्रदान करता है।

आप एक कॉल में एकाधिक .proto फ़ाइलों को पारित कर सकते हैं, उदा।

file(GLOB ProtoFiles "${CMAKE_CURRENT_SOURCE_DIR}/*.proto") 
PROTOBUF_GENERATE_CPP(ProtoSources ProtoHeaders ${ProtoFiles}) 

नोट भले ही CMakeLists.txt फ़ाइल जो find_package(Protobuf) कॉल शीर्ष स्तर के एक, CMakeLists.txt फ़ाइल (फ़ाइलें) जो समारोह आह्वान रूप में एक ही निर्देशिका में अवश्य होना चाहिए कि हो सकता है। प्रोटो फाइलें

+6

बस विस्तार करने के लिए, $ {ProtoSources} और $ {ProtoHeaders} तब चर हैं जिनमें .pb.cc और .pb.h फ़ाइलें शामिल हैं। इन्हें सीधे add_library() और add_executable() फ़ंक्शंस में उपयोग किया जा सकता है। – psalvaggio

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