THRIFT-3933 Microsoft .Net Core library port and generator for this library
Client: .NET Core
Patch: Volodymyr Gotra <vgotra@gmail.com> PR #1088, with significant improvements by Jens Geyer <jensg@apache.org> PR #1149

This closes #1088
This closes #1149
diff --git a/lib/netcore/Makefile.am b/lib/netcore/Makefile.am
new file mode 100644
index 0000000..99f86b8
--- /dev/null
+++ b/lib/netcore/Makefile.am
@@ -0,0 +1,108 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+SUBDIRS = . 
+
+THRIFT = $(top_builddir)/compiler/cpp/thrift
+
+TESTDIR = Tests/Thrift.PublicInterfaces.Compile.Tests
+GENDIR = $(TESTDIR)/gen-netcore
+
+THRIFTCODE = \
+			Thrift/ITAsyncProcessor.cs \
+			Thrift/ITProcessorFactory.cs \
+			Thrift/SingletonTProcessorFactory.cs \
+			Thrift/TApplicationException.cs \
+			Thrift/TBaseClient.cs \
+			Thrift/TException.cs \
+			Thrift/TMultiplexedProcessor.cs \
+			Thrift/Collections/TCollections.cs \
+			Thrift/Collections/THashSet.cs \
+			Thrift/Properties/AssemblyInfo.cs \
+			Thrift/Protocols/ITProtocolFactory.cs \
+			Thrift/Protocols/TAbstractBase.cs \
+			Thrift/Protocols/TBase.cs \
+			Thrift/Protocols/TBinaryProtocol.cs \
+			Thrift/Protocols/TCompactProtocol.cs \
+			Thrift/Protocols/TJSONProtocol.cs \
+			Thrift/Protocols/TMultiplexedProtocol.cs \
+			Thrift/Protocols/TProtocol.cs \
+			Thrift/Protocols/TProtocolDecorator.cs \
+			Thrift/Protocols/TProtocolException.cs \
+			Thrift/Protocols/Entities/TField.cs \
+			Thrift/Protocols/Entities/TList.cs \
+			Thrift/Protocols/Entities/TMap.cs \
+			Thrift/Protocols/Entities/TMessage.cs \
+			Thrift/Protocols/Entities/TMessageType.cs \
+			Thrift/Protocols/Entities/TSet.cs \
+			Thrift/Protocols/Entities/TStruct.cs \
+			Thrift/Protocols/Entities/TType.cs \
+			Thrift/Protocols/Utilities/TBase64Utils.cs \
+			Thrift/Protocols/Utilities/TProtocolUtil.cs \
+			Thrift/Server/AsyncBaseServer.cs \
+			Thrift/Server/TBaseServer.cs \
+			Thrift/Server/TServerEventHandler.cs \
+			Thrift/Transports/TClientTransport.cs \
+			Thrift/Transports/TServerTransport.cs \
+			Thrift/Transports/TTransportException.cs \
+			Thrift/Transports/TTransportFactory.cs \
+			Thrift/Transports/Client/TBufferedClientTransport.cs \
+			Thrift/Transports/Client/TFramedClientTransport.cs \
+			Thrift/Transports/Client/THttpClientTransport.cs \
+			Thrift/Transports/Client/TMemoryBufferClientTransport.cs \
+			Thrift/Transports/Client/TNamedPipeClientTransport.cs \
+			Thrift/Transports/Client/TSocketClientTransport.cs \
+			Thrift/Transports/Client/TStreamClientTransport.cs \
+			Thrift/Transports/Client/TTlsSocketClientTransport.cs \
+			Thrift/Transports/Server/THttpServerTransport.cs \
+			Thrift/Transports/Server/TNamedPipeServerTransport.cs \
+			Thrift/Transports/Server/TServerSocketTransport.cs \
+			Thrift/Transports/Server/TTlsServerSocketTransport.cs 
+
+all-local: \
+	Thrift.dll
+
+Thrift.dll: $(THRIFTCODE)
+	$(MKDIR_P) $(GENDIR)
+	$(THRIFT)  -gen netcore:wcf   -r  -out $(GENDIR)  $(TESTDIR)/CassandraTest.thrift
+	$(THRIFT)  -gen netcore:wcf   -r  -out $(GENDIR)  $(top_srcdir)/test/ThriftTest.thrift
+	$(THRIFT)  -gen netcore:wcf   -r  -out $(GENDIR)  $(top_srcdir)/contrib/fb303/if/fb303.thrift
+	$(DOTNETCORE) --info
+	$(DOTNETCORE) restore
+	$(DOTNETCORE) build **/*/project.json -r win10-x64 
+	$(DOTNETCORE) build **/*/project.json -r osx.10.11-x64 
+	$(DOTNETCORE) build **/*/project.json -r ubuntu.16.04-x64 
+
+clean-local:
+	$(RM) Thrift.dll
+	$(RM) -r $(GENDIR)
+	$(RM) -r Thrift/bin
+	$(RM) -r Thrift/obj
+	$(RM) -r Tests/Thrift.PublicInterfaces.Compile.Tests/bin
+	$(RM) -r Tests/Thrift.PublicInterfaces.Compile.Tests/obj
+
+EXTRA_DIST = \
+			 $(THRIFTCODE) \
+			 global.json \
+			 Thrift.sln \
+			 Thrift/project.json \
+			 Thrift/Thrift.xproj \
+			 Tests \
+			 README.md
+