From af021fce584c5c9ac72bb852cd4f515d5b5f7a4c Mon Sep 17 00:00:00 2001 From: John Tur Date: Sat, 24 Jun 2023 04:54:20 -0400 Subject: [PATCH 1/3] Basic NuGet package investigation --- FNA.Core.csproj | 39 ++++++++++++++++++++++++++++++++++++++- FNA.Core.props | 7 +++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 FNA.Core.props diff --git a/FNA.Core.csproj b/FNA.Core.csproj index ddf932a2b..c2bd5023f 100644 --- a/FNA.Core.csproj +++ b/FNA.Core.csproj @@ -1,6 +1,6 @@ - netstandard2.0;net7.0 + net40;netstandard2.0;net7.0 x64 @@ -10,6 +10,26 @@ true false + + true + 23.06 + Accuracy-focused XNA4 reimplementation for open platforms + Copyright (c) 2009-2023 + flibitijibibo + https://fna-xna.github.io/ + true + + + true + snupkg + true + true + $(AllowedOutputExtensionsInPackageBuildOutputFolder);.config + + + <_FNATargetFramework Include="$(TargetFrameworks)" /> + + $(SolutionDir)FNA.Settings.props @@ -367,4 +387,21 @@ Microsoft.Xna.Framework.Graphics.Effect.Resources.YUVToRGBAEffect.fxb + + + $(BaseIntermediateOutputPath)fnalibs + + + + + + + + + + + + + + diff --git a/FNA.Core.props b/FNA.Core.props new file mode 100644 index 000000000..f462e59d7 --- /dev/null +++ b/FNA.Core.props @@ -0,0 +1,7 @@ + + + + PreserveNewest + + + From 34a2898b537bfbdbc7bd49715aa3ce795db7ae58 Mon Sep 17 00:00:00 2001 From: John Tur Date: Sat, 1 Jul 2023 16:29:55 -0400 Subject: [PATCH 2/3] Misc. quality improvements --- FNA.Core.csproj | 23 ++++++++++------------- FNA.Core.props | 6 ++++-- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/FNA.Core.csproj b/FNA.Core.csproj index c2bd5023f..edadc89e5 100644 --- a/FNA.Core.csproj +++ b/FNA.Core.csproj @@ -1,7 +1,6 @@ net40;netstandard2.0;net7.0 - x64 false @@ -12,7 +11,7 @@ true - 23.06 + 23.07 Accuracy-focused XNA4 reimplementation for open platforms Copyright (c) 2009-2023 flibitijibibo @@ -23,12 +22,10 @@ true snupkg true - true - $(AllowedOutputExtensionsInPackageBuildOutputFolder);.config - <_FNATargetFramework Include="$(TargetFrameworks)" /> - + + $(SolutionDir)FNA.Settings.props @@ -387,9 +384,9 @@ Microsoft.Xna.Framework.Graphics.Effect.Resources.YUVToRGBAEffect.fxb - + - $(BaseIntermediateOutputPath)fnalibs + $(BaseIntermediateOutputPath)fnalibs\ @@ -397,11 +394,11 @@ - - - - - + + + + + diff --git a/FNA.Core.props b/FNA.Core.props index f462e59d7..ee76087ac 100644 --- a/FNA.Core.props +++ b/FNA.Core.props @@ -1,7 +1,9 @@ - + PreserveNewest - + false + %(Filename)%(Extension) + From 597f83fa8eb403d00e1dbe411dfd9d4711b2ac1f Mon Sep 17 00:00:00 2001 From: John Tur Date: Sat, 1 Jul 2023 21:59:57 -0400 Subject: [PATCH 3/3] Add package metadata --- FNA.Core.csproj | 8 +++++++- README => README.md | 26 +++++++++++++------------- nuget/FNA.png | Bin 0 -> 12281 bytes FNA.Core.props => nuget/FNA.props | 0 nuget/NuGetLicense.txt | 7 +++++++ 5 files changed, 27 insertions(+), 14 deletions(-) rename README => README.md (82%) create mode 100644 nuget/FNA.png rename FNA.Core.props => nuget/FNA.props (100%) create mode 100644 nuget/NuGetLicense.txt diff --git a/FNA.Core.csproj b/FNA.Core.csproj index edadc89e5..ade4f279e 100644 --- a/FNA.Core.csproj +++ b/FNA.Core.csproj @@ -17,6 +17,9 @@ flibitijibibo https://fna-xna.github.io/ true + README.md + FNA.png + LICENSE.txt true @@ -24,8 +27,11 @@ true - + + + + $(SolutionDir)FNA.Settings.props diff --git a/README b/README.md similarity index 82% rename from README rename to README.md index a8f060da3..7d408675c 100644 --- a/README +++ b/README.md @@ -1,26 +1,26 @@ This is FNA, an XNA4 reimplementation that focuses solely on developing a fully accurate XNA4 runtime for the desktop. -Project Website: https://fna-xna.github.io/ - -License -------- -FNA is released under the Microsoft Public License. See LICENSE for details. - -FNA uses LzxDecoder.cs, released under a dual MSPL/LGPL license. -See lzxdecoder.LICENSE for details. - -FNA uses code from the Mono.Xna project, released under the MIT license. -See monoxna.LICENSE for details. +Project Website: Documentation ------------- Documentation for FNA can be found on the FNA wiki: -https://github.com/FNA-XNA/FNA/wiki + Found an issue? --------------- Issues and patches can be reported via GitHub: -https://github.com/FNA-XNA/FNA/issues + + +License +------- +FNA is released under the Microsoft Public License. See LICENSE for details. + +FNA uses LzxDecoder.cs, released under a dual MSPL/LGPL license. +See lzxdecoder.LICENSE for details. + +FNA uses code from the Mono.Xna project, released under the MIT license. +See monoxna.LICENSE for details. diff --git a/nuget/FNA.png b/nuget/FNA.png new file mode 100644 index 0000000000000000000000000000000000000000..69e7bd6ee6603a49c4e54fa5cc90515c4ae522ae GIT binary patch literal 12281 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