Skip to content

Commit 1ab196d

Browse files
authored
Merge pull request #156 from btc-ag/extend-conanfile
Extend conanfile by protoc commands
2 parents dac4c7f + 99e4b3b commit 1ab196d

File tree

2 files changed

+56
-0
lines changed

2 files changed

+56
-0
lines changed

com.btc.serviceidl.tests/src/com/btc/serviceidl/tests/generator/cpp/CppGeneratorTest.xtend

+34
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,23 @@ class CppGeneratorTest extends AbstractGeneratorTest
144144
)
145145
generators = "cmake"
146146
short_paths = True
147+
148+
def generateProtoFiles(self):
149+
protofiles = glob.glob(self.source_folder + "/**/gen/*.proto", recursive=True)
150+
outdir = self.source_folder
151+
152+
self.run('bin\\protoc.exe --proto_path=' + self.source_folder + ' --cpp_out="%s" %s' % (outdir, ' '.join(protofiles)))
153+
154+
def build(self):
155+
self.generateProtoFiles()
156+
ConanTemplate.build(self)
157+
158+
def package(self):
159+
ConanTemplate.package(self)
160+
self.copy("**/*.proto", dst="proto", keep_path=True)
161+
162+
def imports(self):
163+
self.copy("protoc.exe", "bin", "bin")
147164
''', ArtifactNature.CPP.label + "CMakeLists.txt", '''
148165
cmake_minimum_required(VERSION 3.4)
149166
@@ -239,6 +256,23 @@ class CppGeneratorTest extends AbstractGeneratorTest
239256
)
240257
generators = "cmake"
241258
short_paths = True
259+
260+
def generateProtoFiles(self):
261+
protofiles = glob.glob(self.source_folder + "/**/gen/*.proto", recursive=True)
262+
outdir = self.source_folder
263+
264+
self.run('bin\\protoc.exe --proto_path=' + self.source_folder + ' --cpp_out="%s" %s' % (outdir, ' '.join(protofiles)))
265+
266+
def build(self):
267+
self.generateProtoFiles()
268+
ConanTemplate.build(self)
269+
270+
def package(self):
271+
ConanTemplate.package(self)
272+
self.copy("**/*.proto", dst="proto", keep_path=True)
273+
274+
def imports(self):
275+
self.copy("protoc.exe", "bin", "bin")
242276
''', ArtifactNature.CPP.label + "CMakeLists.txt", '''
243277
cmake_minimum_required(VERSION 3.4)
244278

com.btc.serviceidl/src/com/btc/serviceidl/generator/cpp/cmake/CMakeTopLevelProjectFileGenerator.xtend

+22
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ class CMakeTopLevelProjectFileGenerator
6868
serviceCommTargetVersion == ServiceCommVersion.V0_11) "1.7" else "1.8"
6969
val loggingTargetVersion = if (serviceCommTargetVersion == ServiceCommVersion.V0_10 ||
7070
serviceCommTargetVersion == ServiceCommVersion.V0_11) "1.7" else "1.8"
71+
72+
// TODO the transitive dependencies do not need to be specified here
73+
7174
'''
7275
from conan_template import *
7376
@@ -88,8 +91,27 @@ class CMakeTopLevelProjectFileGenerator
8891
)
8992
generators = "cmake"
9093
short_paths = True
94+
95+
def generateProtoFiles(self):
96+
protofiles = glob.glob(self.source_folder + "/**/gen/*.proto", recursive=True)
97+
outdir = self.source_folder
98+
99+
self.run('bin\\protoc.exe --proto_path=' + self.source_folder + ' --cpp_out="%s" %s' % (outdir, ' '.join(protofiles)))
100+
101+
def build(self):
102+
self.generateProtoFiles()
103+
ConanTemplate.build(self)
104+
105+
def package(self):
106+
ConanTemplate.package(self)
107+
self.copy("**/*.proto", dst="proto", keep_path=True)
108+
109+
def imports(self):
110+
self.copy("protoc.exe", "bin", "bin")
91111
'''
92112
}
113+
114+
// TODO generate sharedVersion.h
93115

94116
def generateCMakeLists()
95117
{

0 commit comments

Comments
 (0)