|
@@ -1,9 +1,13 @@
|
|
|
-# This file is not intended to be executed directly. It is intended to be
|
|
|
-# included in a larger shell script.
|
|
|
+#!/bin/bash
|
|
|
|
|
|
# For when some other test needs the C++ main build, including protoc and
|
|
|
# libprotobuf.
|
|
|
internal_build_cpp() {
|
|
|
+ if [ -f src/protoc ]; then
|
|
|
+ # Already built.
|
|
|
+ return
|
|
|
+ fi
|
|
|
+
|
|
|
if [[ $(uname -s) == "Linux" && "$TRAVIS" == "true" ]]; then
|
|
|
# Install GCC 4.8 to replace the default GCC 4.6. We need 4.8 for more
|
|
|
# decent C++ 11 support in order to compile conformance tests.
|
|
@@ -277,3 +281,44 @@ build_javascript() {
|
|
|
cd js && npm install && npm test && cd ..
|
|
|
}
|
|
|
|
|
|
+[ -n "${PARALLELISM}" ] && PARALLELISM=-j8
|
|
|
+
|
|
|
+# Note: travis currently does not support testing more than one language so the
|
|
|
+# .travis.yml cheats and claims to only be cpp. If they add multiple language
|
|
|
+# support, this should probably get updated to install steps and/or
|
|
|
+# rvm/gemfile/jdk/etc. entries rather than manually doing the work.
|
|
|
+
|
|
|
+# .travis.yml uses matrix.exclude to block the cases where app-get can't be
|
|
|
+# use to install things.
|
|
|
+
|
|
|
+# -------- main --------
|
|
|
+
|
|
|
+# Set value used in tests.sh.
|
|
|
+PARALLELISM=-j2
|
|
|
+
|
|
|
+if [ "$#" -ne 1 ]; then
|
|
|
+ echo "
|
|
|
+Usage: $0 { cpp |
|
|
|
+ csharp |
|
|
|
+ java_jdk6 |
|
|
|
+ java_jdk7 |
|
|
|
+ java_oracle7 |
|
|
|
+ javanano_jdk6 |
|
|
|
+ javanano_jdk7 |
|
|
|
+ javanano_oracle7 |
|
|
|
+ objectivec_ios |
|
|
|
+ objectivec_osx |
|
|
|
+ python |
|
|
|
+ python_cpp |
|
|
|
+ ruby_19 |
|
|
|
+ ruby_20 |
|
|
|
+ ruby_21 |
|
|
|
+ ruby_22 |
|
|
|
+ jruby }
|
|
|
+"
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+set -e # exit immediately on error
|
|
|
+set -x # display all commands
|
|
|
+eval "build_$1"
|