Free cookie consent management tool by TermsFeed Policy Generator

source: tags/3.3.1/HeuristicLab.ExtLibs/HeuristicLab.ProtobufCS/0.9.1/ProtobufCS/mono/readme.txt @ 13398

Last change on this file since 13398 was 3857, checked in by abeham, 14 years ago

#866

  • Added protobuf-csharp-port project source to ExtLibs
File size: 3.6 KB
Line 
1Getting started with Protocol Buffers on Mono
2---------------------------------------------
3
4Prerequisites:
5
6o Mono 2.4 or higher. Earlier versions of Mono had too
7  many issues with the weird and wonderful generic type
8  relationships in Protocol Buffers. (Even Mono 2.4 *did*
9  have a few compile-time problems, but I've worked round them.)
10
11o Some sort of Linux/Unix system
12  You can try running with Bash on Windows via MINGW32 or
13  something similar, but you're on your own :) It's easier
14  to build and test everything with .NET if you're on
15  Windows.
16
17o The native Protocol Buffers build for your system.
18  Get it from http://code.google.com/p/protobuf/
19  After building it, copy the executable protoc
20  file into this directory.
21 
22o The NUnit binaries from http://nunit.org
23  I generally just download the latest version, which
24  may not be the one which goes with nunit.framework.dll
25  in ../lib, but I've never found this to be a problem.
26 
27Building the code with current sources
28--------------------------------------
29
301) Edit buildall.sh to tell it where to find nunit-console.exe
31   (and possibly change other options)
32   
332) Run buildall.sh from this directory. It should build the
34   main library code + tests and ProtoGen code + tests, running
35   each set of tests after building it.
36   
37Note that currently one test is ignored in ServiceTest.cs. This
38made the Mono VM blow up - I suspect it's some interaction with
39Rhino which doesn't quite work on Mono 2.4. If you want to see a
40truly nasty stack trace, just comment out the Ignore attribute in
41ServiceTest.cs and rerun.
42
43The binaries will be produced in a bin directory under this one. The
44build currently starts from scratch each time, cleaning out the bin
45directory first. Once I've decided on a full NAnt or xbuild
46strategy, I'll do something a little cleaner.
47
48Rebuilding sources for generated code
49-------------------------------------
50
511) Build the current code first. The bootstrapping issue is why
52   the generated source code is in the source repository :) See
53   the steps above.
54   
552) Run generatesource.sh from this directory. This will create a
56   temporary directory, compile the .proto files into a binary
57   format, then run ProtoGen to generate .cs files from the binary
58   format. It will copy these files to the right places in the tree,
59   and finally delete the temporary directory.
60   
613) Rebuild to test that your newly generated sources work. (Optionally
62   regenerate as well, and hash the generated files to check that
63   the new build generates the same code as the old build :)
64   
65Running the code
66----------------
67
68Once you've built the binaries, you should be able to use them just
69as if you'd built them with .NET. (And indeed, you should be able to
70use binaries built with .NET as if you'd built them with Mono :)
71
72See the getting started guide for more information:
73http://code.google.com/p/protobuf-csharp-port/wiki/GettingStarted
74
75FAQ (Frequently Anticipated Questions)
76--------------------------------------
77
78Q) This build process sucks! Why aren't you doing X, Y, Z?
79A) My Mono skills are limited. My NAnt skills are limited. My
80   MSBuild/xbuild skils are limited. My shell script skills are
81   limited. Any help is *very* welcome!
82   
83Q) Why doesn't it build ProtoBench etc?
84A) This is a first initial "release" I'll add more bits to
85   the build script. I'll be interested to see the results
86   of benchmarking it on Mono :)
87
88Any further questions or suggestions? Please email skeet@pobox.com
89or leave a request at
90http://code.google.com/p/protobuf-csharp-port/issues/list
91
Note: See TracBrowser for help on using the repository browser.