Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
protobuf
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
protobuf
Commits
3e0e5494
Commit
3e0e5494
authored
May 13, 2015
by
Jan Tattermusch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
got rid of the outdated mono subdirectory
parent
dfefe9a4
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
0 additions
and
157 deletions
+0
-157
buildall.sh
csharp/mono/buildall.sh
+0
-37
generatesource.sh
csharp/mono/generatesource.sh
+0
-29
readme.txt
csharp/mono/readme.txt
+0
-91
No files found.
csharp/mono/buildall.sh
deleted
100755 → 0
View file @
dfefe9a4
#!/bin/bash
# Adjust these to reflect the location of NUnit in your system,
# and how you want NUnit to run
NUNIT
=
~/protobuf/NUnit-2.5.0.9122/bin/net-2.0/nunit-console.exe
NUNIT_OPTIONS
=
-noshadow
# The rest should be okay.
SRC
=
../src
LIB
=
../lib
KEYFILE
=
../keys/Google.ProtocolBuffers.snk
rm
-rf
bin
mkdir
bin
# Running the unit tests requires the dependencies are
# in the bin directory too
cp
-f
$LIB
/
{
Rhino.Mocks.dll,nunit.framework.dll
}
bin
echo
Building main library
gmcs
-target
:library
-out
:bin/Google.ProtocolBuffers.dll
`
find
$SRC
/ProtocolBuffers
-name
'*.cs'
`
-keyfile
:
$KEYFILE
echo
Building main library tests
gmcs
-target
:library
-out
:bin/Google.ProtocolBuffers.Test.dll
`
find
$SRC
/ProtocolBuffers.Test
-name
'*.cs'
`
-keyfile
:
$KEYFILE
-r
:bin/Google.ProtocolBuffers.dll
-r
:
$LIB
/nunit.framework.dll
-r
:
$LIB
/Rhino.Mocks.dll
echo
Running main library tests
mono
$NUNIT
bin/Google.ProtocolBuffers.Test.dll
$NUNIT_OPTIONS
echo
Building ProtoGen
gmcs
-target
:exe
-out
:bin/ProtoGen.exe
`
find
$SRC
/ProtoGen
-name
'*.cs'
`
-keyfile
:
$KEYFILE
-r
:bin/Google.ProtocolBuffers.dll
echo
Building ProtoGen tests
gmcs
-target
:library
-out
:bin/Google.ProtocolBuffers.ProtoGen.Test.dll
`
find
$SRC
/ProtoGen.Test
-name
'*.cs'
`
-keyfile
:
$KEYFILE
-r
:bin/Google.ProtocolBuffers.dll
-r
:
$LIB
/nunit.framework.dll
-r
:bin/ProtoGen.exe
echo
Running ProtoGen tests
mono
$NUNIT
bin/Google.ProtocolBuffers.ProtoGen.Test.dll
$NUNIT_OPTIONS
csharp/mono/generatesource.sh
deleted
100755 → 0
View file @
dfefe9a4
#!/bin/bash
echo
Compiling protobufs
rm
-rf
tmp
mkdir
tmp
PROTOS_DIR
=
../protos
./protoc
--proto_path
=
$PROTOS_DIR
--descriptor_set_out
=
tmp/compiled.pb
\
$PROTOS_DIR
/google/protobuf/descriptor.proto
\
$PROTOS_DIR
/google/protobuf/csharp_options.proto
\
$PROTOS_DIR
/google/protobuf/unittest.proto
\
$PROTOS_DIR
/google/protobuf/unittest_csharp_options.proto
\
$PROTOS_DIR
/google/protobuf/unittest_custom_options.proto
\
$PROTOS_DIR
/google/protobuf/unittest_embed_optimize_for.proto
\
$PROTOS_DIR
/google/protobuf/unittest_import.proto
\
$PROTOS_DIR
/google/protobuf/unittest_mset.proto
\
$PROTOS_DIR
/google/protobuf/unittest_optimize_for.proto
\
$PROTOS_DIR
/tutorial/addressbook.proto
cd
tmp
echo
Generating new
source
mono ../bin/ProtoGen.exe compiled.pb
echo
Copying
source
into place
cp
DescriptorProtoFile.cs CSharpOptions.cs ../../src/ProtocolBuffers/DescriptorProtos
cp
UnitTest
*
.cs ../../src/ProtocolBuffers.Test/TestProtos
cp
AddressBookProtos.cs ../../src/AddressBook
cd
..
rm
-rf
tmp
csharp/mono/readme.txt
deleted
100644 → 0
View file @
dfefe9a4
Getting started with Protocol Buffers on Mono
---------------------------------------------
Prerequisites:
o Mono 2.4 or higher. Earlier versions of Mono had too
many issues with the weird and wonderful generic type
relationships in Protocol Buffers. (Even Mono 2.4 *did*
have a few compile-time problems, but I've worked round them.)
o Some sort of Linux/Unix system
You can try running with Bash on Windows via MINGW32 or
something similar, but you're on your own :) It's easier
to build and test everything with .NET if you're on
Windows.
o The native Protocol Buffers build for your system.
Get it from http://code.google.com/p/protobuf/
After building it, copy the executable protoc
file into this directory.
o The NUnit binaries from http://nunit.org
I generally just download the latest version, which
may not be the one which goes with nunit.framework.dll
in ../lib, but I've never found this to be a problem.
Building the code with current sources
--------------------------------------
1) Edit buildall.sh to tell it where to find nunit-console.exe
(and possibly change other options)
2) Run buildall.sh from this directory. It should build the
main library code + tests and ProtoGen code + tests, running
each set of tests after building it.
Note that currently one test is ignored in ServiceTest.cs. This
made the Mono VM blow up - I suspect it's some interaction with
Rhino which doesn't quite work on Mono 2.4. If you want to see a
truly nasty stack trace, just comment out the Ignore attribute in
ServiceTest.cs and rerun.
The binaries will be produced in a bin directory under this one. The
build currently starts from scratch each time, cleaning out the bin
directory first. Once I've decided on a full NAnt or xbuild
strategy, I'll do something a little cleaner.
Rebuilding sources for generated code
-------------------------------------
1) Build the current code first. The bootstrapping issue is why
the generated source code is in the source repository :) See
the steps above.
2) Run generatesource.sh from this directory. This will create a
temporary directory, compile the .proto files into a binary
format, then run ProtoGen to generate .cs files from the binary
format. It will copy these files to the right places in the tree,
and finally delete the temporary directory.
3) Rebuild to test that your newly generated sources work. (Optionally
regenerate as well, and hash the generated files to check that
the new build generates the same code as the old build :)
Running the code
----------------
Once you've built the binaries, you should be able to use them just
as if you'd built them with .NET. (And indeed, you should be able to
use binaries built with .NET as if you'd built them with Mono :)
See the getting started guide for more information:
http://code.google.com/p/protobuf-csharp-port/wiki/GettingStarted
FAQ (Frequently Anticipated Questions)
--------------------------------------
Q) This build process sucks! Why aren't you doing X, Y, Z?
A) My Mono skills are limited. My NAnt skills are limited. My
MSBuild/xbuild skils are limited. My shell script skills are
limited. Any help is *very* welcome!
Q) Why doesn't it build ProtoBench etc?
A) This is a first initial "release" I'll add more bits to
the build script. I'll be interested to see the results
of benchmarking it on Mono :)
Any further questions or suggestions? Please email skeet@pobox.com
or leave a request at
http://code.google.com/p/protobuf-csharp-port/issues/list
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment