aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@google.com>2016-02-19 16:03:22 -0800
committerGravatar Jan Tattermusch <jtattermusch@google.com>2016-02-22 07:32:11 -0800
commit6d15982ce70cee38e0d26e00d52191a4d8c156ac (patch)
tree82f209393752041453be1a8354ec0ddafab58e5e
parent2e8710414f34c7ff5d50f45f35fb98df9bc96ee0 (diff)
building protoc artifacts on windows
-rw-r--r--tools/run_tests/artifact_targets.py15
-rw-r--r--tools/run_tests/build_artifact_protoc.bat45
2 files changed, 53 insertions, 7 deletions
diff --git a/tools/run_tests/artifact_targets.py b/tools/run_tests/artifact_targets.py
index cf056ec929..2a9f248d92 100644
--- a/tools/run_tests/artifact_targets.py
+++ b/tools/run_tests/artifact_targets.py
@@ -266,7 +266,12 @@ class ProtocArtifact:
['tools/run_tests/build_artifact_protoc.sh'],
environ=environ)
else:
- raise Exception('Not yet supported')
+ generator = 'Visual Studio 12 Win64' if self.arch == 'x64' else 'Visual Studio 12'
+ vcplatform = 'x64' if self.arch == 'x64' else 'Win32'
+ return create_jobspec(self.name,
+ ['tools\\run_tests\\build_artifact_protoc.bat'],
+ environ={'generator': generator,
+ 'Platform': vcplatform})
def __str__(self):
return self.name
@@ -275,7 +280,7 @@ class ProtocArtifact:
def targets():
"""Gets list of supported targets"""
return ([Cls(platform, arch)
- for Cls in (CSharpExtArtifact, NodeExtArtifact)
+ for Cls in (CSharpExtArtifact, NodeExtArtifact, ProtocArtifact)
for platform in ('linux', 'macos', 'windows')
for arch in ('x86', 'x64')] +
[PythonArtifact('linux', 'x86'),
@@ -283,8 +288,4 @@ def targets():
PythonArtifact('macos', 'x64'),
RubyArtifact('linux', 'x86'),
RubyArtifact('linux', 'x64'),
- RubyArtifact('macos', 'x64'),
- ProtocArtifact('linux', 'x86'),
- ProtocArtifact('linux', 'x64'),
- ProtocArtifact('macos', 'x86'),
- ProtocArtifact('macos', 'x64')])
+ RubyArtifact('macos', 'x64')])
diff --git a/tools/run_tests/build_artifact_protoc.bat b/tools/run_tests/build_artifact_protoc.bat
new file mode 100644
index 0000000000..1fa7f6046a
--- /dev/null
+++ b/tools/run_tests/build_artifact_protoc.bat
@@ -0,0 +1,45 @@
+@rem Copyright 2016, Google Inc.
+@rem All rights reserved.
+@rem
+@rem Redistribution and use in source and binary forms, with or without
+@rem modification, are permitted provided that the following conditions are
+@rem met:
+@rem
+@rem * Redistributions of source code must retain the above copyright
+@rem notice, this list of conditions and the following disclaimer.
+@rem * Redistributions in binary form must reproduce the above
+@rem copyright notice, this list of conditions and the following disclaimer
+@rem in the documentation and/or other materials provided with the
+@rem distribution.
+@rem * Neither the name of Google Inc. nor the names of its
+@rem contributors may be used to endorse or promote products derived from
+@rem this software without specific prior written permission.
+@rem
+@rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+@rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+@rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+@rem A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+@rem OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+@rem SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+@rem LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+@rem DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+@rem THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+@rem (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+@rem OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+mkdir artifacts
+
+setlocal
+cd third_party/protobuf/cmake
+cmake -G "%generator%" || goto :error
+endlocal
+
+call vsprojects/build_plugins.bat || goto :error
+
+xcopy /Y third_party\protobuf\cmake\Release\protoc.exe artifacts\ || goto :error
+xcopy /Y vsprojects\Release\*_plugin.exe artifacts\ || goto :error
+
+goto :EOF
+
+:error
+exit /b 1 \ No newline at end of file