diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..526c8a3 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.sh text eol=lf \ No newline at end of file diff --git a/.gitignore b/.gitignore index 9b5994f..7373826 100755 --- a/.gitignore +++ b/.gitignore @@ -306,3 +306,6 @@ Packages.props #Local Log Files log*.txt + +.NET Extension Library Files +/src/dotnet/lib \ No newline at end of file diff --git a/README-DotNet.md b/README-DotNet.md index d288280..401bf05 100644 --- a/README-DotNet.md +++ b/README-DotNet.md @@ -52,3 +52,21 @@ To package the .NET extension for NORM, execute the .NET CLI command in the src/ ``` dotnet pack . -c Release ``` + +To package the .NET extension for NORM that targets 64-bit Windows, execute the command in the src/dotnet directory: + +``` +pack-win-x64.bat +``` + +To package the .NET extension for NORM that targets 32-bit Windows, execute the command in the src/dotnet directory: + +``` +pack-win-x86.bat +``` + +To package the .NET extension for NORM that targets 64-bit Linux, execute the command in the src/dotnet directory: + +``` +./pack-linux-x64.sh +``` \ No newline at end of file diff --git a/src/dotnet/Mil.Navy.Nrl.Norm.sln b/src/dotnet/Mil.Navy.Nrl.Norm.sln index d51cd5d..9766910 100644 --- a/src/dotnet/Mil.Navy.Nrl.Norm.sln +++ b/src/dotnet/Mil.Navy.Nrl.Norm.sln @@ -3,28 +3,71 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.4.33213.308 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mil.Navy.Nrl.Norm", "src\Mil.Navy.Nrl.Norm\Mil.Navy.Nrl.Norm.csproj", "{0B38FE25-685E-4ADC-B63D-CA43EC023E1F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mil.Navy.Nrl.Norm", "src\Mil.Navy.Nrl.Norm\Mil.Navy.Nrl.Norm.csproj", "{0B38FE25-685E-4ADC-B63D-CA43EC023E1F}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A6F15F54-6953-49E7-9394-8F6BF6EF64D0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mil.Navy.Nrl.Norm.IntegrationTests", "tests\Mil.Navy.Nrl.Norm.IntegrationTests\Mil.Navy.Nrl.Norm.IntegrationTests.csproj", "{E5CDA4C5-C1A1-4AD7-B10D-80B8A995FC49}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mil.Navy.Nrl.Norm.IntegrationTests", "tests\Mil.Navy.Nrl.Norm.IntegrationTests\Mil.Navy.Nrl.Norm.IntegrationTests.csproj", "{E5CDA4C5-C1A1-4AD7-B10D-80B8A995FC49}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8B6C912C-2A15-41F3-B3A4-E9C01E6672DE}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mil.Navy.Nrl.Norm.win-x64", "src\Mil.Navy.Nrl.Norm.win-x64\Mil.Navy.Nrl.Norm.win-x64.csproj", "{EC81BD1A-ECF0-4F4D-86E3-B0B53531EBD4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mil.Navy.Nrl.Norm.win-x86", "src\Mil.Navy.Nrl.Norm.win-x86\Mil.Navy.Nrl.Norm.win-x86.csproj", "{E5EABC55-159A-4AA2-80EC-F817C20BDA40}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{CD4475A5-559A-4852-A2FE-E85A8AB9E0D8}" + ProjectSection(SolutionItems) = preProject + pack-linux.sh = pack-linux.sh + pack-win32.bat = pack-win32.bat + pack-win64.bat = pack-win64.bat + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Mil.Navy.Nrl.Norm.linux-x64", "src\Mil.Navy.Nrl.Norm.linux-x64\Mil.Navy.Nrl.Norm.linux-x64.csproj", "{A4967E0C-FF3E-4B61-BD6B-D63D040585CA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU + Release-linux-x64|Any CPU = Release-linux-x64|Any CPU + Release-win-x64|Any CPU = Release-win-x64|Any CPU + Release-win-x86|Any CPU = Release-win-x86|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {0B38FE25-685E-4ADC-B63D-CA43EC023E1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {0B38FE25-685E-4ADC-B63D-CA43EC023E1F}.Debug|Any CPU.Build.0 = Debug|Any CPU {0B38FE25-685E-4ADC-B63D-CA43EC023E1F}.Release|Any CPU.ActiveCfg = Release|Any CPU {0B38FE25-685E-4ADC-B63D-CA43EC023E1F}.Release|Any CPU.Build.0 = Release|Any CPU + {0B38FE25-685E-4ADC-B63D-CA43EC023E1F}.Release-linux-x64|Any CPU.ActiveCfg = Release|Any CPU + {0B38FE25-685E-4ADC-B63D-CA43EC023E1F}.Release-linux-x64|Any CPU.Build.0 = Release|Any CPU + {0B38FE25-685E-4ADC-B63D-CA43EC023E1F}.Release-win-x64|Any CPU.ActiveCfg = Release|Any CPU + {0B38FE25-685E-4ADC-B63D-CA43EC023E1F}.Release-win-x64|Any CPU.Build.0 = Release|Any CPU + {0B38FE25-685E-4ADC-B63D-CA43EC023E1F}.Release-win-x86|Any CPU.ActiveCfg = Release|Any CPU + {0B38FE25-685E-4ADC-B63D-CA43EC023E1F}.Release-win-x86|Any CPU.Build.0 = Release|Any CPU {E5CDA4C5-C1A1-4AD7-B10D-80B8A995FC49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E5CDA4C5-C1A1-4AD7-B10D-80B8A995FC49}.Debug|Any CPU.Build.0 = Debug|Any CPU {E5CDA4C5-C1A1-4AD7-B10D-80B8A995FC49}.Release|Any CPU.ActiveCfg = Release|Any CPU {E5CDA4C5-C1A1-4AD7-B10D-80B8A995FC49}.Release|Any CPU.Build.0 = Release|Any CPU + {E5CDA4C5-C1A1-4AD7-B10D-80B8A995FC49}.Release-linux-x64|Any CPU.ActiveCfg = Release|Any CPU + {E5CDA4C5-C1A1-4AD7-B10D-80B8A995FC49}.Release-win-x64|Any CPU.ActiveCfg = Release|Any CPU + {E5CDA4C5-C1A1-4AD7-B10D-80B8A995FC49}.Release-win-x86|Any CPU.ActiveCfg = Release|Any CPU + {EC81BD1A-ECF0-4F4D-86E3-B0B53531EBD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC81BD1A-ECF0-4F4D-86E3-B0B53531EBD4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC81BD1A-ECF0-4F4D-86E3-B0B53531EBD4}.Release-linux-x64|Any CPU.ActiveCfg = Release|Any CPU + {EC81BD1A-ECF0-4F4D-86E3-B0B53531EBD4}.Release-win-x64|Any CPU.ActiveCfg = Release|Any CPU + {EC81BD1A-ECF0-4F4D-86E3-B0B53531EBD4}.Release-win-x64|Any CPU.Build.0 = Release|Any CPU + {EC81BD1A-ECF0-4F4D-86E3-B0B53531EBD4}.Release-win-x86|Any CPU.ActiveCfg = Release|Any CPU + {E5EABC55-159A-4AA2-80EC-F817C20BDA40}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5EABC55-159A-4AA2-80EC-F817C20BDA40}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5EABC55-159A-4AA2-80EC-F817C20BDA40}.Release-linux-x64|Any CPU.ActiveCfg = Release|Any CPU + {E5EABC55-159A-4AA2-80EC-F817C20BDA40}.Release-win-x64|Any CPU.ActiveCfg = Release|Any CPU + {E5EABC55-159A-4AA2-80EC-F817C20BDA40}.Release-win-x86|Any CPU.ActiveCfg = Release|Any CPU + {E5EABC55-159A-4AA2-80EC-F817C20BDA40}.Release-win-x86|Any CPU.Build.0 = Release|Any CPU + {A4967E0C-FF3E-4B61-BD6B-D63D040585CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4967E0C-FF3E-4B61-BD6B-D63D040585CA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4967E0C-FF3E-4B61-BD6B-D63D040585CA}.Release-linux-x64|Any CPU.ActiveCfg = Release|Any CPU + {A4967E0C-FF3E-4B61-BD6B-D63D040585CA}.Release-linux-x64|Any CPU.Build.0 = Release|Any CPU + {A4967E0C-FF3E-4B61-BD6B-D63D040585CA}.Release-win-x64|Any CPU.ActiveCfg = Release|Any CPU + {A4967E0C-FF3E-4B61-BD6B-D63D040585CA}.Release-win-x86|Any CPU.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -32,6 +75,9 @@ Global GlobalSection(NestedProjects) = preSolution {0B38FE25-685E-4ADC-B63D-CA43EC023E1F} = {A6F15F54-6953-49E7-9394-8F6BF6EF64D0} {E5CDA4C5-C1A1-4AD7-B10D-80B8A995FC49} = {8B6C912C-2A15-41F3-B3A4-E9C01E6672DE} + {EC81BD1A-ECF0-4F4D-86E3-B0B53531EBD4} = {A6F15F54-6953-49E7-9394-8F6BF6EF64D0} + {E5EABC55-159A-4AA2-80EC-F817C20BDA40} = {A6F15F54-6953-49E7-9394-8F6BF6EF64D0} + {A4967E0C-FF3E-4B61-BD6B-D63D040585CA} = {A6F15F54-6953-49E7-9394-8F6BF6EF64D0} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8BC1F27F-D633-4B45-A16D-D112CB08840E} diff --git a/src/dotnet/pack-linux-x64.sh b/src/dotnet/pack-linux-x64.sh new file mode 100644 index 0000000..3a81a2c --- /dev/null +++ b/src/dotnet/pack-linux-x64.sh @@ -0,0 +1,12 @@ +#!/bin/bash +currenPath="$PWD" +cd ../../ +./waf +cd "$currenPath" +libPath="$currenPath/lib" +if [ ! -d "$libPath" ] +then + mkdir "$libPath" +fi +cp -f ../../build/libnorm.so "$libPath/norm.so" +dotnet pack . -c Release-linux-x64 \ No newline at end of file diff --git a/src/dotnet/pack-win-x64.bat b/src/dotnet/pack-win-x64.bat new file mode 100644 index 0000000..fc23a99 --- /dev/null +++ b/src/dotnet/pack-win-x64.bat @@ -0,0 +1,14 @@ +set currenPath=%cd% +cd ..\..\ +python .\waf configure --msvc_target=x64 +python .\waf +cd %currenPath% +if not exist lib\ ( + mkdir lib +) +copy ..\..\build\norm*.dll lib +cd lib +del /f norm.dll +ren norm*.dll norm.dll +cd %currenPath% +dotnet pack . -c Release-win-x64 \ No newline at end of file diff --git a/src/dotnet/pack-win-x86.bat b/src/dotnet/pack-win-x86.bat new file mode 100644 index 0000000..14895db --- /dev/null +++ b/src/dotnet/pack-win-x86.bat @@ -0,0 +1,14 @@ +set currenPath=%cd% +cd ..\..\ +python .\waf configure --msvc_target=x86 +python .\waf +cd %currenPath% +if not exist lib\ ( + mkdir lib +) +copy ..\..\build\norm*.dll lib +cd lib +del /f norm.dll +ren norm*.dll norm.dll +cd %currenPath% +dotnet pack . -c Release-win-x86 \ No newline at end of file diff --git a/src/dotnet/src/Mil.Navy.Nrl.Norm.linux-x64/Mil.Navy.Nrl.Norm.linux-x64.csproj b/src/dotnet/src/Mil.Navy.Nrl.Norm.linux-x64/Mil.Navy.Nrl.Norm.linux-x64.csproj new file mode 100644 index 0000000..f3c039f --- /dev/null +++ b/src/dotnet/src/Mil.Navy.Nrl.Norm.linux-x64/Mil.Navy.Nrl.Norm.linux-x64.csproj @@ -0,0 +1,22 @@ + + + + net6.0 + enable + enable + 1.0.0 + + + + + Always + runtimes/linux-x64/native + true + + + + + + + + diff --git a/src/dotnet/src/Mil.Navy.Nrl.Norm.win-x64/Mil.Navy.Nrl.Norm.win-x64.csproj b/src/dotnet/src/Mil.Navy.Nrl.Norm.win-x64/Mil.Navy.Nrl.Norm.win-x64.csproj new file mode 100644 index 0000000..38a6584 --- /dev/null +++ b/src/dotnet/src/Mil.Navy.Nrl.Norm.win-x64/Mil.Navy.Nrl.Norm.win-x64.csproj @@ -0,0 +1,22 @@ + + + + net6.0 + enable + enable + 1.0.0 + + + + + Always + runtimes/win-x64/native + true + + + + + + + + diff --git a/src/dotnet/src/Mil.Navy.Nrl.Norm.win-x86/Mil.Navy.Nrl.Norm.win-x86.csproj b/src/dotnet/src/Mil.Navy.Nrl.Norm.win-x86/Mil.Navy.Nrl.Norm.win-x86.csproj new file mode 100644 index 0000000..e44f7a9 --- /dev/null +++ b/src/dotnet/src/Mil.Navy.Nrl.Norm.win-x86/Mil.Navy.Nrl.Norm.win-x86.csproj @@ -0,0 +1,22 @@ + + + + net6.0 + enable + enable + 1.0.0 + + + + + Always + runtimes/win-x86/native + true + + + + + + + +