diff --git a/.gitignore b/.gitignore index 5f1fff3aa3..07a93a5923 100644 --- a/.gitignore +++ b/.gitignore @@ -82,9 +82,6 @@ cache/ **/.vscode/* .DS_Store -tools/netstandard/CreateSigningKey/bin -tools/netstandard/CreateSigningKey/obj - **/.vs/* **/dotnet-test/* @@ -100,4 +97,8 @@ examples/dotnet/**/obj ortools/dotnet/**/bin ortools/dotnet/**/obj ortools/dotnet/**/packages + +tools/dotnet/CreateSigningKey/bin +tools/dotnet/CreateSigningKey/obj + *.userprefs diff --git a/makefiles/Makefile.csharp.mk b/makefiles/Makefile.csharp.mk index a510e706d2..ba311532e0 100755 --- a/makefiles/Makefile.csharp.mk +++ b/makefiles/Makefile.csharp.mk @@ -241,7 +241,7 @@ endif netstandardortools: ortoolslibs $(BIN_DIR)/$(NETSTANDARD_ORTOOLS_DLL_NAME)$D $(BIN_DIR)/$(CLR_PROTOBUF_DLL_NAME)$D $(NETSTANDARD_OBJ_DIR)/AssemblyInfo.cs: \ - netstandard_keyfile \ + $(CLR_KEYFILE) \ $(GEN_DIR)/dotnet/ortools/properties/CommonAssemblyInfo.cs $(COPY) tools$Scsharp$SAssemblyInfo.cs $(NETSTANDARD_OBJ_DIR)$SAssemblyInfo.cs ifdef CLR_KEYFILE @@ -337,16 +337,8 @@ $(GEN_DIR)/dotnet/ortools/sat/SatParameters.pb.cs: $(SRC_DIR)/ortools/sat/sat_pa $(PROTOC) --proto_path=$(SRC_DIR) --csharp_out=$(GEN_PATH)$Sdotnet$Sortools$Ssat --csharp_opt=file_extension=.pb.cs $(SRC_DIR)$Sortools$Ssat$Ssat_parameters.proto # Main DLL - $(CLR_KEYFILE): | $(BIN_DIR) -ifdef CLR_KEYFILE - sn -k $(CLR_KEYFILE) -endif - -netstandard_keyfile: -ifdef CLR_KEYFILE - $(PATH_TO_DOTNET_EXE) run --project tools$Snetstandard$SCreateSigningKey$SCreateSigningKey.csproj $(CLR_KEYFILE) -endif + $(PATH_TO_DOTNET_EXE) run --project tools$Sdotnet$SCreateSigningKey$SCreateSigningKey.csproj $(CLR_KEYFILE) $(BIN_DIR)/$(CLR_ORTOOLS_DLL_NAME)$D: \ $(GEN_DIR)/dotnet/ortools/properties/AssemblyInfo.cs \ diff --git a/makefiles/Makefile.dotnet.mk b/makefiles/Makefile.dotnet.mk index 02f205d176..9880b14d1d 100644 --- a/makefiles/Makefile.dotnet.mk +++ b/makefiles/Makefile.dotnet.mk @@ -23,6 +23,8 @@ CLR_ORTOOLS_TEST_DLL_NAME := Google.$(ORTOOLS_TEST_DLL_NAME) CLR_ORTOOLS_FSHARP_DLL_NAME := Google.$(ORTOOLS_FSHARP_DLL_NAME) CLR_ORTOOLS_FSHARP_TEST_DLL_NAME := Google.$(ORTOOLS_FSHARP_TEST_DLL_NAME) CLR_ORTOOLS_IMPORT_DLL_NAME := $(CLR_ORTOOLS_DLL_NAME).import +CLR_KEYFILE = $(BIN_DIR)/or-tools.snk +CLR_KEYFILE_PATH = $(subst /,$S,$(CLR_KEYFILE)) # relative to the project root folder TEMP_DOTNET_TEST_DIR=temp_dotnet_test @@ -59,8 +61,8 @@ $(GEN_DIR)/ortools/properties/GitVersion$(OR_TOOLS_VERSION).txt: \ @echo $(OR_TOOLS_VERSION) > $(GEN_PATH)$Sortools$Sproperties$SGitVersion$(OR_TOOLS_VERSION).txt # Auto-generated code -$(BIN_DIR)/$(CLR_PROTOBUF_DLL_NAME)$D: tools/$(CLR_PROTOBUF_DLL_NAME)$D | $(BIN_DIR) - $(COPY) tools$S$(CLR_PROTOBUF_DLL_NAME)$D $(BIN_DIR) +$(BIN_DIR)/$(CLR_PROTOBUF_DLL_NAME)$D: tools/dotnet/$(CLR_PROTOBUF_DLL_NAME)$D | $(BIN_DIR) + $(COPY) tools$Sdotnet$S$(CLR_PROTOBUF_DLL_NAME)$D $(BIN_DIR) $(GEN_DIR)/ortools/linear_solver/linear_solver_csharp_wrap.cc: \ $(SRC_DIR)/ortools/linear_solver/csharp/linear_solver.i \ @@ -247,9 +249,7 @@ $(GEN_DIR)/ortools/sat/SatParameters.pb.cs: \ $(SRC_DIR)$Sortools$Ssat$Ssat_parameters.proto $(CLR_KEYFILE): | $(BIN_DIR) -ifdef CLR_KEYFILE - sn -k $(CLR_KEYFILE) -endif + "$(DOTNET_BIN)" run --project tools$Sdotnet$SCreateSigningKey$SCreateSigningKey.csproj $S$(CLR_KEYFILE_PATH) # Main DLL $(BIN_DIR)/$(CLR_ORTOOLS_DLL_NAME)$D: \ @@ -316,6 +316,18 @@ endif .PHONY: clean_dotnet # Clean files clean_dotnet: + -$(DELREC) tools$Sdotnet$SCreateSigningKey$Sbin + -$(DELREC) tools$Sdotnet$SCreateSigningKey$Sobj + -$(DEL) $(CLR_KEYFILE_PATH) + -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_DLL_NAME)$Sbin + -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_DLL_NAME)$Sobj + -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_TEST_DLL_NAME)$Sbin + -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_TEST_DLL_NAME)$Sobj + -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_FSHARP_DLL_NAME)$Sbin + -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_FSHARP_DLL_NAME)$Sobj + -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_FSHARP_TEST_DLL_NAME)$Sbin + -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_FSHARP_TEST_DLL_NAME)$Sobj + -$(DELREC) ortools$Sdotnet$Spackages -$(DEL) $(GEN_PATH)$Sortools$Salgorithms$S*.cs -$(DEL) $(GEN_PATH)$Sortools$Salgorithms$S*csharp_wrap* -$(DEL) $(GEN_PATH)$Sortools$Sgraph$S*.cs @@ -326,21 +338,11 @@ clean_dotnet: -$(DEL) $(GEN_PATH)$Sortools$Slinear_solver$S*csharp_wrap* -$(DEL) $(GEN_PATH)$Sortools$Ssat$S*.cs -$(DEL) $(GEN_PATH)$Sortools$Ssat$S*csharp_wrap* - -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_DLL_NAME)$Sbin - -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_DLL_NAME)$Sobj - -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_TEST_DLL_NAME)$Sbin - -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_TEST_DLL_NAME)$Sobj - -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_FSHARP_DLL_NAME)$Sbin - -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_FSHARP_DLL_NAME)$Sobj - -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_FSHARP_TEST_DLL_NAME)$Sbin - -$(DELREC) ortools$Sdotnet$S$(ORTOOLS_FSHARP_TEST_DLL_NAME)$Sobj - -$(DELREC) ortools$Sdotnet$Spackage -$(DEL) $(OBJ_DIR)$Sswig$S*_csharp_wrap.$O -$(DEL) $(BIN_DIR)$S$(CLR_ORTOOLS_IMPORT_DLL_NAME).* -$(DEL) $(BIN_DIR)$S$(CLR_PROTOBUF_DLL_NAME).* -$(DEL) $(BIN_DIR)$S$(CLR_ORTOOLS_DLL_NAME).* -$(DEL) $(BIN_DIR)$S$(CLR_ORTOOLS_FSHARP_DLL_NAME).* - -$(DEL) $(CLR_KEYFILE) -$(DELREC) $(TEMP_DOTNET_DIR) -$(DELREC) $(TEMP_DOTNET_TEST_DIR) @@ -402,6 +404,7 @@ detect_dotnet: @echo Relevant info for the dotnet build: @echo PROTOC = $(PROTOC) @echo DOTNET_BIN = $(DOTNET_BIN) + @echo CLR_KEYFILE = $(CLR_KEYFILE) @echo NUGET_BIN = $(NUGET_BIN) @echo SWIG_PYTHON_LIB_SUFFIX = $(SWIG_PYTHON_LIB_SUFFIX) @echo CLR_PROTOBUF_DLL_NAME = $(CLR_PROTOBUF_DLL_NAME) diff --git a/makefiles/Makefile.third_party.unix.mk b/makefiles/Makefile.third_party.unix.mk index a0fcbb47d8..00dad92a7a 100644 --- a/makefiles/Makefile.third_party.unix.mk +++ b/makefiles/Makefile.third_party.unix.mk @@ -635,7 +635,6 @@ Makefile.local: makefiles/Makefile.third_party.unix.mk @echo UNIX_PYTHON_VER = $(DETECTED_PYTHON_VERSION)>> Makefile.local @echo PATH_TO_CSHARP_COMPILER = $(DETECTED_MCS_BINARY)>> Makefile.local @echo PATH_TO_DOTNET_COMPILER = $(DETECTED_DOTNET_BINARY)>> Makefile.local - @echo CLR_KEYFILE = bin/or-tools.snk>> Makefile.local @echo >> Makefile.local @echo "## OPTIONAL DEPENDENCIES ##" >> Makefile.local @echo "# Define UNIX_CPLEX_DIR to use CPLEX" >> Makefile.local diff --git a/makefiles/Makefile.third_party.win.mk b/makefiles/Makefile.third_party.win.mk index 020f46b49c..ea4837ad9c 100644 --- a/makefiles/Makefile.third_party.win.mk +++ b/makefiles/Makefile.third_party.win.mk @@ -329,7 +329,6 @@ Makefile.local: makefiles/Makefile.third_party.$(SYSTEM).mk @echo # i.e.: path\\scip-4.0.0 >> Makefile.local @echo # See instructions here: >> Makefile.local @echo # http://or-tools.blogspot.com/2017/03/changing-way-we-link-with-scip.html >> Makefile.local - @echo CLR_KEYFILE = bin\\or-tools.snk >> Makefile.local @echo # Define WINDOWS_GUROBI_DIR and GUROBI_LIB_VERSION to use Gurobi >> Makefile.local @echo # >> Makefile.local @echo # Define WINDOWS_ZLIB_DIR, WINDOWS_ZLIB_NAME, WINDOWS_GFLAGS_DIR, >> Makefile.local diff --git a/tools/netstandard/CreateSigningKey/CreateSigningKey.csproj b/tools/dotnet/CreateSigningKey/CreateSigningKey.csproj similarity index 98% rename from tools/netstandard/CreateSigningKey/CreateSigningKey.csproj rename to tools/dotnet/CreateSigningKey/CreateSigningKey.csproj index 23df6047ff..ad872913e4 100644 --- a/tools/netstandard/CreateSigningKey/CreateSigningKey.csproj +++ b/tools/dotnet/CreateSigningKey/CreateSigningKey.csproj @@ -1,8 +1,6 @@ - Exe netcoreapp2.1 - diff --git a/tools/dotnet/CreateSigningKey/Program.cs b/tools/dotnet/CreateSigningKey/Program.cs new file mode 100644 index 0000000000..c72da071e0 --- /dev/null +++ b/tools/dotnet/CreateSigningKey/Program.cs @@ -0,0 +1,24 @@ +using System; +using System.IO; +using System.Security.Cryptography; + +namespace CreateSigningKey { + class Program { + static void Main(string[] args) { + if (args == null || args.Length == 0) { + Console.WriteLine("Key filename not specified."); + return; + } + string path = Directory.GetCurrentDirectory() + args[0]; + Console.WriteLine("Key filename:" + path); + if (Console.Out!=null) Console.Out.Flush(); + File.WriteAllBytes(path, GenerateStrongNameKeyPair()); + } + + public static byte[] GenerateStrongNameKeyPair() { + using (var provider = new RSACryptoServiceProvider(1024)) { + return provider.ExportCspBlob(!provider.PublicOnly); + } + } + } +} diff --git a/tools/Google.Protobuf.dll b/tools/dotnet/Google.Protobuf.dll similarity index 100% rename from tools/Google.Protobuf.dll rename to tools/dotnet/Google.Protobuf.dll diff --git a/tools/netstandard/OrTools.NetCore.csproj b/tools/dotnet/OrTools.NetCore.csproj similarity index 100% rename from tools/netstandard/OrTools.NetCore.csproj rename to tools/dotnet/OrTools.NetCore.csproj diff --git a/tools/netstandard/OrTools.targets b/tools/dotnet/OrTools.targets similarity index 100% rename from tools/netstandard/OrTools.targets rename to tools/dotnet/OrTools.targets diff --git a/tools/netstandard/example.csproj b/tools/dotnet/example.csproj similarity index 100% rename from tools/netstandard/example.csproj rename to tools/dotnet/example.csproj diff --git a/tools/netstandard/nuget.config b/tools/dotnet/nuget.config similarity index 100% rename from tools/netstandard/nuget.config rename to tools/dotnet/nuget.config diff --git a/tools/netstandard/CreateSigningKey/Program.cs b/tools/netstandard/CreateSigningKey/Program.cs deleted file mode 100644 index 1709d56c4c..0000000000 --- a/tools/netstandard/CreateSigningKey/Program.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.IO; -using System.Security.Cryptography; - -namespace CreateSigningKey -{ - class Program - { - static void Main(string[] args) - { - if (args == null || args.Length == 0) - { - Console.WriteLine("Key filename not specified."); - return; - } - - File.WriteAllBytes(args[0], GenerateStrongNameKeyPair()); - } - - public static byte[] GenerateStrongNameKeyPair() - { - using (var provider = new RSACryptoServiceProvider(1024, new CspParameters() { KeyNumber = 2 })) - { - return provider.ExportCspBlob(!provider.PublicOnly); - } - } - } -}