diff options
author | Jon Skeet <skeet@pobox.com> | 2008-08-14 20:33:37 +0100 |
---|---|---|
committer | Jon Skeet <skeet@pobox.com> | 2008-08-14 20:33:37 +0100 |
commit | de21d2c92c15387d64f16d4b20defb010caac299 (patch) | |
tree | d507b8f08a61d1da2e41017c79c0999ed8678def | |
parent | 9f4f0a56b1a87af398d0fd9e9bff87e62609b0f7 (diff) | |
download | protobuf-de21d2c92c15387d64f16d4b20defb010caac299.tar.gz protobuf-de21d2c92c15387d64f16d4b20defb010caac299.tar.bz2 protobuf-de21d2c92c15387d64f16d4b20defb010caac299.zip |
Patch from Miguel de Icaza: This introduces auto-detection of Mono to configure, and if found, builds and installs the runtime library, and provides a pkg-config file so developers can easily use it on Unix.
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | configure.ac | 7 | ||||
-rw-r--r-- | csharp/Google.ProtocolBuffers.pub | bin | 0 -> 160 bytes | |||
-rw-r--r-- | csharp/Makefile.am | 54 | ||||
-rw-r--r-- | csharp/ProtocolBuffers/Properties/AssemblyInfo.cs | 2 | ||||
-rw-r--r-- | csharp/ProtocolBuffers/Properties/Google.ProtocolBuffers.snk | bin | 0 -> 596 bytes | |||
-rw-r--r-- | csharp/google-pb.pc.in | 7 |
7 files changed, 72 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am index 4e2f6515..f46c02b1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,7 +2,11 @@ ACLOCAL_AMFLAGS = -I m4 +if MONO +SUBDIRS = src csharp +else SUBDIRS = src +endif EXTRA_DIST = \ autogen.sh \ diff --git a/configure.ac b/configure.ac index 6dca1633..acf2cb55 100644 --- a/configure.ac +++ b/configure.ac @@ -23,6 +23,11 @@ AM_CONDITIONAL(GCC, test "$GCC" = yes) # let the Makefile know if we're gcc AC_HEADER_STDC AC_CHECK_HEADERS([fcntl.h inttypes.h limits.h stdlib.h unistd.h]) +if pkg-config --atleast-version=1.9 mono; then + with_mono=yes +fi +AM_CONDITIONAL(MONO, test x$with_mono = xyes) + # Checks for library functions. AC_FUNC_MEMCMP AC_FUNC_STRTOD @@ -31,4 +36,4 @@ AC_CHECK_FUNCS([ftruncate memset mkdir strchr strerror strtol]) ACX_PTHREAD AC_CXX_STL_HASH -AC_OUTPUT( Makefile src/Makefile ) +AC_OUTPUT( Makefile src/Makefile csharp/Makefile ) diff --git a/csharp/Google.ProtocolBuffers.pub b/csharp/Google.ProtocolBuffers.pub Binary files differnew file mode 100644 index 00000000..3c59ae0d --- /dev/null +++ b/csharp/Google.ProtocolBuffers.pub diff --git a/csharp/Makefile.am b/csharp/Makefile.am new file mode 100644 index 00000000..d3b10be5 --- /dev/null +++ b/csharp/Makefile.am @@ -0,0 +1,54 @@ +pkgconfigdir = $(libdir)/pkgconfig + +pkgconfig_DATA = google-pb.pc + +noinst_SCRIPTS = Google.ProtocolBuffers.dll + +Google.ProtocolBuffers.dll_sources = \ + $(srcdir)/ProtocolBuffers/AbstractBuilder.cs \ + $(srcdir)/ProtocolBuffers/AbstractMessage.cs \ + $(srcdir)/ProtocolBuffers/Autogenerated.cs \ + $(srcdir)/ProtocolBuffers/ByteString.cs \ + $(srcdir)/ProtocolBuffers/CodedInputStream.cs \ + $(srcdir)/ProtocolBuffers/CodedOutputStream.cs \ + $(srcdir)/ProtocolBuffers/Collections/Dictionaries.cs \ + $(srcdir)/ProtocolBuffers/Collections/Lists.cs \ + $(srcdir)/ProtocolBuffers/Collections/ReadOnlyDictionary.cs \ + $(srcdir)/ProtocolBuffers/Descriptors/EnumDescriptor.cs \ + $(srcdir)/ProtocolBuffers/Descriptors/EnumValueDescriptor.cs \ + $(srcdir)/ProtocolBuffers/Descriptors/FieldDescriptor.cs \ + $(srcdir)/ProtocolBuffers/Descriptors/FieldMappingAttribute.cs \ + $(srcdir)/ProtocolBuffers/Descriptors/FieldType.cs \ + $(srcdir)/ProtocolBuffers/Descriptors/FileDescriptor.cs \ + $(srcdir)/ProtocolBuffers/Descriptors/MappedType.cs \ + $(srcdir)/ProtocolBuffers/Descriptors/MessageDescriptor.cs \ + $(srcdir)/ProtocolBuffers/ExtensionInfo.cs \ + $(srcdir)/ProtocolBuffers/ExtensionRegistry.cs \ + $(srcdir)/ProtocolBuffers/FieldAccess/Delegates.cs \ + $(srcdir)/ProtocolBuffers/FieldAccess/FieldAccessorTable.cs \ + $(srcdir)/ProtocolBuffers/FieldAccess/IFieldAccessor.cs \ + $(srcdir)/ProtocolBuffers/FieldSet.cs \ + $(srcdir)/ProtocolBuffers/GeneratedBuilder.cs \ + $(srcdir)/ProtocolBuffers/GeneratedExtension.cs \ + $(srcdir)/ProtocolBuffers/GeneratedMessage.cs \ + $(srcdir)/ProtocolBuffers/IBuilder.cs \ + $(srcdir)/ProtocolBuffers/IMessage.cs \ + $(srcdir)/ProtocolBuffers/InvalidProtocolBufferException.cs \ + $(srcdir)/ProtocolBuffers/Properties/AssemblyInfo.cs \ + $(srcdir)/ProtocolBuffers/TextFormat.cs \ + $(srcdir)/ProtocolBuffers/UninitializedMessageException.cs \ + $(srcdir)/ProtocolBuffers/UnknownField.cs \ + $(srcdir)/ProtocolBuffers/UnknownFieldSet.cs \ + $(srcdir)/ProtocolBuffers/WireFormat.cs + +Google.ProtocolBuffers.dll: $(Google.ProtocolBuffers.dll_sources) + cp $(srcdir)/ProtocolBuffers/Properties/Google.ProtocolBuffers.snk . + gmcs -codepage:utf8 -debug -target:library -out:Google.ProtocolBuffers.dll $(Google.ProtocolBuffers.dll_sources) + +install-data-local: Google.ProtocolBuffers.dll + gacutil -i Google.ProtocolBuffers.dll -package google + +EXTRA_DIST = $(Google.ProtocolBuffers.dll_sources) google-pb.pc.in + +google-pb.pc: Makefile.am google-pb.pc.in + sed "s,@PREFIX@,${prefix}," < $(srcdir)/google-pb.pc.in > google-pb.pc
\ No newline at end of file diff --git a/csharp/ProtocolBuffers/Properties/AssemblyInfo.cs b/csharp/ProtocolBuffers/Properties/AssemblyInfo.cs index 4653dbe3..5ed598fe 100644 --- a/csharp/ProtocolBuffers/Properties/AssemblyInfo.cs +++ b/csharp/ProtocolBuffers/Properties/AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyCopyright("Copyright © 2008")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] - +[assembly: AssemblyKeyFile ("Google.ProtocolBuffers.snk")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. diff --git a/csharp/ProtocolBuffers/Properties/Google.ProtocolBuffers.snk b/csharp/ProtocolBuffers/Properties/Google.ProtocolBuffers.snk Binary files differnew file mode 100644 index 00000000..6bbfc90f --- /dev/null +++ b/csharp/ProtocolBuffers/Properties/Google.ProtocolBuffers.snk diff --git a/csharp/google-pb.pc.in b/csharp/google-pb.pc.in new file mode 100644 index 00000000..83758de3 --- /dev/null +++ b/csharp/google-pb.pc.in @@ -0,0 +1,7 @@ +assemblies_dir=@PREFIX@ +Libraries=${assemblies_dir}/gac/Google.ProtocolBuffers/1.0.0.0__17b3b1f090c3ea48/Google.ProtocolBuffers.dll + +Name: Google Protocol Buffers for C# +Description: Google Protocol Buffers for C# +Version: 1.0.0.0 +Libs: -r:${assemblies_dir}/gac/Google.ProtocolBuffers/1.0.0.0__17b3b1f090c3ea48/Google.ProtocolBuffers.dll |