-
Notifications
You must be signed in to change notification settings - Fork 105
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add include/external/protobuf dir which was being ignored by mistake
- Loading branch information
Showing
566 changed files
with
254,687 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
sudo: required | ||
# Note: travis currently does not support listing more than one language so | ||
# this 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. | ||
language: cpp | ||
os: | ||
- linux | ||
- osx | ||
# The Objective C build needs Xcode 7.0 or later. | ||
osx_image: xcode7.3 | ||
script: | ||
- ./tests.sh $CONFIG | ||
env: | ||
- CONFIG=cpp | ||
- CONFIG=cpp_distcheck | ||
- CONFIG=csharp | ||
- CONFIG=golang | ||
- CONFIG=java_jdk6 | ||
- CONFIG=java_jdk7 | ||
- CONFIG=java_oracle7 | ||
- CONFIG=javanano_jdk6 | ||
- CONFIG=javanano_jdk7 | ||
- CONFIG=javanano_oracle7 | ||
- CONFIG=javascript | ||
# iOS build log was starting to choke travis UI, so split to cover the | ||
# Xcode Debug and Release Configurations independently. | ||
- CONFIG=objectivec_ios_debug | ||
- CONFIG=objectivec_ios_release | ||
- CONFIG=objectivec_osx | ||
- CONFIG=python | ||
- CONFIG=python_cpp | ||
- CONFIG=ruby19 | ||
- CONFIG=ruby20 | ||
- CONFIG=ruby21 | ||
- CONFIG=ruby22 | ||
- CONFIG=jruby | ||
matrix: | ||
exclude: | ||
# It's nontrivial to programmatically install a new JDK from the command | ||
# line on OS X, so we rely on testing on Linux for Java code. | ||
- os: osx | ||
env: CONFIG=java_jdk6 | ||
- os: osx | ||
env: CONFIG=java_jdk7 | ||
- os: osx | ||
env: CONFIG=java_oracle7 | ||
- os: osx | ||
env: CONFIG=javanano_jdk6 | ||
- os: osx | ||
env: CONFIG=javanano_jdk7 | ||
- os: osx | ||
env: CONFIG=javanano_oracle7 | ||
# Requires installing mono, currently travis.sh is doing that with apt-get | ||
# which doesn't work on OS X. | ||
- os: osx | ||
env: CONFIG=csharp | ||
# Requires installing golang, currently travis.sh is doing that with apt-get | ||
# which doesn't work on OS X. | ||
- os: osx | ||
env: CONFIG=golang | ||
# OS X/iOS tests of Objective C (needs Xcode, so it won't work on other | ||
# platforms). | ||
- os: linux | ||
env: CONFIG=objectivec_ios_debug | ||
- os: linux | ||
env: CONFIG=objectivec_ios_release | ||
- os: linux | ||
env: CONFIG=objectivec_osx | ||
allow_failures: | ||
# These currently do not work on OS X but are being worked on by @haberman. | ||
- os: osx | ||
env: CONFIG=ruby22 | ||
- os: osx | ||
env: CONFIG=jruby | ||
# https://github.com/google/protobuf/issues/1253 - Started failing when | ||
# we moved to an OS X image that is 10.11. | ||
- os: osx | ||
env: CONFIG=python_cpp | ||
# Mark the iOS test as flakey as xcodebuild some times fails to start the | ||
# iOS Simulator. | ||
- os: osx | ||
env: CONFIG=objectivec_ios_debug | ||
- os: osx | ||
env: CONFIG=objectivec_ios_release | ||
notifications: | ||
email: false |
834 changes: 834 additions & 0 deletions
834
jni-build/jni/include/external/protobuf/src/Makefile.am
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,212 @@ | ||
Protocol Buffers - Google's data interchange format | ||
=================================================== | ||
|
||
[](https://travis-ci.org/google/protobuf) [](https://ci.appveyor.com/project/protobuf/protobuf) | ||
|
||
Copyright 2008 Google Inc. | ||
|
||
https://developers.google.com/protocol-buffers/ | ||
|
||
C++ Installation - Unix | ||
----------------------- | ||
|
||
To build protobuf from source, the following tools are needed: | ||
|
||
* autoconf | ||
* automake | ||
* libtool | ||
* curl (used to download gmock) | ||
* make | ||
* g++ | ||
* unzip | ||
|
||
On Ubuntu, you can install them with: | ||
|
||
$ sudo apt-get install autoconf automake libtool curl make g++ unzip | ||
|
||
On other platforms, please use the corresponding package managing tool to | ||
install them before proceeding. | ||
|
||
If you get the source from github, you need to generate the configure script | ||
first: | ||
|
||
$ ./autogen.sh | ||
|
||
This will download gmock source (which is used for C++ Protocol Buffer | ||
unit-tests) to the current directory and run automake, autoconf, etc. | ||
to generate the configure script and various template makefiles. | ||
|
||
You can skip this step if you are using a release package (which already | ||
contains gmock and the configure script). | ||
|
||
To build and install the C++ Protocol Buffer runtime and the Protocol | ||
Buffer compiler (protoc) execute the following: | ||
|
||
$ ./configure | ||
$ make | ||
$ make check | ||
$ sudo make install | ||
$ sudo ldconfig # refresh shared library cache. | ||
|
||
If "make check" fails, you can still install, but it is likely that | ||
some features of this library will not work correctly on your system. | ||
Proceed at your own risk. | ||
|
||
For advanced usage information on configure and make, please refer to the | ||
autoconf documentation: | ||
|
||
http://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts | ||
|
||
**Hint on install location** | ||
|
||
By default, the package will be installed to /usr/local. However, | ||
on many platforms, /usr/local/lib is not part of LD_LIBRARY_PATH. | ||
You can add it, but it may be easier to just install to /usr | ||
instead. To do this, invoke configure as follows: | ||
|
||
./configure --prefix=/usr | ||
|
||
If you already built the package with a different prefix, make sure | ||
to run "make clean" before building again. | ||
|
||
**Compiling dependent packages** | ||
|
||
To compile a package that uses Protocol Buffers, you need to pass | ||
various flags to your compiler and linker. As of version 2.2.0, | ||
Protocol Buffers integrates with pkg-config to manage this. If you | ||
have pkg-config installed, then you can invoke it to get a list of | ||
flags like so: | ||
|
||
pkg-config --cflags protobuf # print compiler flags | ||
pkg-config --libs protobuf # print linker flags | ||
pkg-config --cflags --libs protobuf # print both | ||
|
||
For example: | ||
|
||
c++ my_program.cc my_proto.pb.cc `pkg-config --cflags --libs protobuf` | ||
|
||
Note that packages written prior to the 2.2.0 release of Protocol | ||
Buffers may not yet integrate with pkg-config to get flags, and may | ||
not pass the correct set of flags to correctly link against | ||
libprotobuf. If the package in question uses autoconf, you can | ||
often fix the problem by invoking its configure script like: | ||
|
||
configure CXXFLAGS="$(pkg-config --cflags protobuf)" \ | ||
LIBS="$(pkg-config --libs protobuf)" | ||
|
||
This will force it to use the correct flags. | ||
|
||
If you are writing an autoconf-based package that uses Protocol | ||
Buffers, you should probably use the PKG_CHECK_MODULES macro in your | ||
configure script like: | ||
|
||
PKG_CHECK_MODULES([protobuf], [protobuf]) | ||
|
||
See the pkg-config man page for more info. | ||
|
||
If you only want protobuf-lite, substitute "protobuf-lite" in place | ||
of "protobuf" in these examples. | ||
|
||
**Note for Mac users** | ||
|
||
For a Mac system, Unix tools are not available by default. You will first need | ||
to install Xcode from the Mac AppStore and then run the following command from | ||
a terminal: | ||
|
||
$ sudo xcode-select --install | ||
|
||
To install Unix tools, you can install "port" following the instructions at | ||
https://www.macports.org . This will reside in /opt/local/bin/port for most | ||
Mac installations. | ||
|
||
$ sudo /opt/local/bin/port install autoconf automake libtool | ||
|
||
Then follow the Unix instructions above. | ||
|
||
**Note for cross-compiling** | ||
|
||
The makefiles normally invoke the protoc executable that they just | ||
built in order to build tests. When cross-compiling, the protoc | ||
executable may not be executable on the host machine. In this case, | ||
you must build a copy of protoc for the host machine first, then use | ||
the --with-protoc option to tell configure to use it instead. For | ||
example: | ||
|
||
./configure --with-protoc=protoc | ||
|
||
This will use the installed protoc (found in your $PATH) instead of | ||
trying to execute the one built during the build process. You can | ||
also use an executable that hasn't been installed. For example, if | ||
you built the protobuf package for your host machine in ../host, | ||
you might do: | ||
|
||
./configure --with-protoc=../host/src/protoc | ||
|
||
Either way, you must make sure that the protoc executable you use | ||
has the same version as the protobuf source code you are trying to | ||
use it with. | ||
|
||
**Note for Solaris users** | ||
|
||
Solaris 10 x86 has a bug that will make linking fail, complaining | ||
about libstdc++.la being invalid. We have included a work-around | ||
in this package. To use the work-around, run configure as follows: | ||
|
||
./configure LDFLAGS=-L$PWD/src/solaris | ||
|
||
See src/solaris/libstdc++.la for more info on this bug. | ||
|
||
**Note for HP C++ Tru64 users** | ||
|
||
To compile invoke configure as follows: | ||
|
||
./configure CXXFLAGS="-O -std ansi -ieee -D__USE_STD_IOSTREAM" | ||
|
||
Also, you will need to use gmake instead of make. | ||
|
||
**Note for AIX users** | ||
|
||
Compile using the IBM xlC C++ compiler as follows: | ||
|
||
./configure CXX=xlC | ||
|
||
Also, you will need to use GNU `make` (`gmake`) instead of AIX `make`. | ||
|
||
C++ Installation - Windows | ||
-------------------------- | ||
|
||
If you only need the protoc binary, you can download it from the release | ||
page: | ||
|
||
https://github.com/google/protobuf/releases | ||
|
||
In the downloads section, download the zip file protoc-$VERSION-win32.zip. | ||
It contains the protoc binary as well as public proto files of protobuf | ||
library. | ||
|
||
To build from source using Microsoft Visual C++, see [cmake/README.md](../cmake/README.md). | ||
|
||
To build from source using Cygwin or MinGW, follow the Unix installation | ||
instructions, above. | ||
|
||
Binary Compatibility Warning | ||
---------------------------- | ||
|
||
Due to the nature of C++, it is unlikely that any two versions of the | ||
Protocol Buffers C++ runtime libraries will have compatible ABIs. | ||
That is, if you linked an executable against an older version of | ||
libprotobuf, it is unlikely to work with a newer version without | ||
re-compiling. This problem, when it occurs, will normally be detected | ||
immediately on startup of your app. Still, you may want to consider | ||
using static linkage. You can configure this package to install | ||
static libraries only using: | ||
|
||
./configure --disable-shared | ||
|
||
Usage | ||
----- | ||
|
||
The complete documentation for Protocol Buffers is available via the | ||
web at: | ||
|
||
https://developers.google.com/protocol-buffers/ |
Oops, something went wrong.