|
|
|
@ -212,11 +212,15 @@ class RubyArtifact: |
|
|
|
|
class CSharpExtArtifact: |
|
|
|
|
"""Builds C# native extension library""" |
|
|
|
|
|
|
|
|
|
def __init__(self, platform, arch): |
|
|
|
|
def __init__(self, platform, arch, arch_abi=None): |
|
|
|
|
self.name = 'csharp_ext_%s_%s' % (platform, arch) |
|
|
|
|
self.platform = platform |
|
|
|
|
self.arch = arch |
|
|
|
|
self.arch_abi = arch_abi |
|
|
|
|
self.labels = ['artifact', 'csharp', platform, arch] |
|
|
|
|
if arch_abi: |
|
|
|
|
self.name += '_%s' % arch_abi |
|
|
|
|
self.labels.append(arch_abi) |
|
|
|
|
|
|
|
|
|
def pre_build_jobspecs(self): |
|
|
|
|
return [] |
|
|
|
@ -227,7 +231,7 @@ class CSharpExtArtifact: |
|
|
|
|
self.name, |
|
|
|
|
'tools/dockerfile/grpc_artifact_android_ndk', |
|
|
|
|
'tools/run_tests/artifacts/build_artifact_csharp_android.sh', |
|
|
|
|
environ={}) |
|
|
|
|
environ={'ANDROID_ABI': self.arch_abi}) |
|
|
|
|
elif self.platform == 'windows': |
|
|
|
|
cmake_arch_option = 'Win32' if self.arch == 'x86' else self.arch |
|
|
|
|
return create_jobspec( |
|
|
|
@ -348,7 +352,8 @@ def targets(): |
|
|
|
|
for Cls in (CSharpExtArtifact, ProtocArtifact) |
|
|
|
|
for platform in ('linux', 'macos', 'windows') for arch in ('x86', 'x64') |
|
|
|
|
] + [ |
|
|
|
|
CSharpExtArtifact('linux', 'android'), |
|
|
|
|
CSharpExtArtifact('linux', 'android', arch_abi='arm64-v8a'), |
|
|
|
|
CSharpExtArtifact('linux', 'android', arch_abi='armeabi-v7a'), |
|
|
|
|
PythonArtifact('linux', 'x86', 'cp27-cp27m'), |
|
|
|
|
PythonArtifact('linux', 'x86', 'cp27-cp27mu'), |
|
|
|
|
PythonArtifact('linux', 'x86', 'cp34-cp34m'), |
|
|
|
|