Started refactoring the build process, Moved assets around, Separated some build scripts, Added other assets

Update .gitignore, NibblePoker.Application.ListComPort.csproj, and 39 more files...
This commit is contained in:
2022-11-19 02:34:20 +01:00
parent b278c4cc73
commit e2bc49c0f6
30 changed files with 14149 additions and 36 deletions
+6 -1
View File
@@ -1,4 +1,6 @@
.idea/
.vs/
Builds/any/
Builds/arm*/
Builds/x*/
@@ -8,10 +10,10 @@ bin/
obj/
NibblePoker.Packaging.ListComPort/Trash/
NibblePoker.Packaging.ListComPort/*.msi
NibblePoker.Packaging.ListComPort/*.wixobj
NibblePoker.Packaging.ListComPort/*.wixpdb
NibblePoker.Packaging.ListComPort/*.bat
NibblePoker.Packaging.ListComPort/AppX/
Packages/
@@ -20,5 +22,8 @@ Packages/
*.so
*.zip
*.url
*.crt
*.pem
*.msi
notes.txt
@@ -11,9 +11,9 @@
<FileVersion>3.0.0</FileVersion>
<Version>3.0.0</Version>
<NeutralLanguage>en-001</NeutralLanguage>
<ApplicationIcon>..\lscom-v2-text-01.ico</ApplicationIcon>
<IsPackable>false</IsPackable>
<Authors>Herwin Bozet (@NibblePoker)</Authors>
<ApplicationIcon>..\NibblePoker.Packaging.ListComPort\Icons\lscom-v2-text-01.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
@@ -25,7 +25,7 @@
</ItemGroup>
<ItemGroup>
<None Include="..\lscom-v2-text-01.ico">
<None Include="..\NibblePoker.Packaging.ListComPort\Icons\lscom-v2-text-01.ico">
<Link>lscom-v2-text-01.ico</Link>
</None>
</ItemGroup>
@@ -1,4 +1,7 @@
using NibblePoker.Library.Arguments;
using System;
using System.Collections.Generic;
using System.Linq;
using NibblePoker.Library.Arguments;
using NibblePoker.Library.ComPortWatcher;
namespace NibblePoker.Application.ListComPort;
@@ -0,0 +1,7 @@
# Certificates notice
This folder should contain the signing certificate for ???.
It is not included in this repository for obvious reasons and ???.
## ???
???
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 519 KiB

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 450 KiB

File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
@echo off
:: Setting some naming constants
set NP_LSCOM_VERSION=3.0.0
:: Defining the %NP_ESC% variable for later use.
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set NP_ESC=%%b
)
@@ -0,0 +1,43 @@
@echo off
:: Keeping the starting CWD in memory and going into the script's directory.
pushd %~dp0
cd /D "%~dp0"
:: Calling the common script
call .\commons.bat
:: Moving to the project's root
cd .\..\..
:: Cleaning
echo Removing any old binaries and any intermediate files...
rmdir /Q /S NibblePoker.Application.ListComPort\bin 2>nul
rmdir /Q /S NibblePoker.Application.ListComPort\obj 2>nul
rmdir /Q /S NibblePoker.Library.ComPortHelpers\bin 2>nul
rmdir /Q /S NibblePoker.Library.ComPortHelpers\obj 2>nul
rmdir /Q /S Builds 2>nul
mkdir Builds
echo.
:: Compiling
echo Building "Any" target...
dotnet publish "./NibblePoker.Application.ListComPort/NibblePoker.Application.ListComPort.csproj" --nologo -o "./Builds/any/"
echo.
echo Building "Single" targets...
dotnet publish "./NibblePoker.Application.ListComPort/NibblePoker.Application.ListComPort.csproj" --nologo -r win-x86 -c Release -o "./Builds/x86_single" --no-self-contained -p:PublishSingleFile=true -p:PublishReadyToRun=true
dotnet publish "./NibblePoker.Application.ListComPort/NibblePoker.Application.ListComPort.csproj" --nologo -r win-x64 -c Release -o "./Builds/x64_single" --no-self-contained -p:PublishSingleFile=true -p:PublishReadyToRun=true
dotnet publish "./NibblePoker.Application.ListComPort/NibblePoker.Application.ListComPort.csproj" --nologo -r win-arm -c Release -o "./Builds/arm_single" --no-self-contained -p:PublishSingleFile=true -p:PublishReadyToRun=true
dotnet publish "./NibblePoker.Application.ListComPort/NibblePoker.Application.ListComPort.csproj" --nologo -r win-arm64 -c Release -o "./Builds/arm64_single" --no-self-contained -p:PublishSingleFile=true -p:PublishReadyToRun=true
echo.
echo Building "Optimized Single" targets...
dotnet publish "./NibblePoker.Application.ListComPort/NibblePoker.Application.ListComPort.csproj" --nologo -r win-x86 -c Release -o "./Builds/x86_single_sc_trim_comp" --self-contained true -p:PublishReadyToRun=true -p:PublishTrimmed=true -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=true
dotnet publish "./NibblePoker.Application.ListComPort/NibblePoker.Application.ListComPort.csproj" --nologo -r win-x64 -c Release -o "./Builds/x64_single_sc_trim_comp" --self-contained true -p:PublishReadyToRun=true -p:PublishTrimmed=true -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=true
dotnet publish "./NibblePoker.Application.ListComPort/NibblePoker.Application.ListComPort.csproj" --nologo -r win-arm -c Release -o "./Builds/arm_single_sc_trim_comp" --self-contained true -p:PublishReadyToRun=true -p:PublishTrimmed=true -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=true
dotnet publish "./NibblePoker.Application.ListComPort/NibblePoker.Application.ListComPort.csproj" --nologo -r win-arm64 -c Release -o "./Builds/arm64_single_sc_trim_comp" --self-contained true -p:PublishReadyToRun=true -p:PublishTrimmed=true -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=true
echo.
:: Going back to the original directory
popd
@@ -0,0 +1,56 @@
@echo off
:: Keeping the starting CWD in memory and going into the script's directory.
pushd %~dp0
cd /D "%~dp0"
:: Calling the common script
call .\commons.bat
:: Moving to the "NibblePoker.Packaging.ListComPort\Wix" folder.
cd .\..\Wix
:: Cleaning
echo Removing old MSI-related files...
del *.msi >nul 2>&1
del *.wixobj >nul 2>&1
del *.wixpdb >nul 2>&1
echo.
:: Packaging into MSI
echo Creating x64 MSI package...
set WixTargetPlatform=x64
candle -nologo ListComPort.wxs -out ListComPort_x64.wixobj -ext WixUIExtension
if ERRORLEVEL 1 (
echo.
echo %NP_ESC%[31mFATAL ERROR:%NP_ESC%[0m Failed to preprocess and compile the .wix file !
echo.
goto end-msi-error
)
light ListComPort_x64.wixobj -loc en-us.wxl -out ListComPort_x64.msi -ext WixUIExtension -cultures:en-us
if ERRORLEVEL 1 (
echo.
echo %NP_ESC%[31mFATAL ERROR:%NP_ESC%[0m Failed to link and create the final MSI package !
echo.
goto end-msi-error
)
echo Creating x86 MSI package...
set WixTargetPlatform=x86
candle -nologo ListComPort.wxs -out ListComPort_x86.wixobj -ext WixUIExtension
if ERRORLEVEL 1 (
echo.
echo %NP_ESC%[31mFATAL ERROR:%NP_ESC%[0m Failed to preprocess and compile the .wix file !
echo.
goto end-msi-error
)
light ListComPort_x86.wixobj -loc en-us.wxl -out ListComPort_x86.msi -ext WixUIExtension -cultures:en-us
if ERRORLEVEL 1 (
echo.
echo %NP_ESC%[31mFATAL ERROR:%NP_ESC%[0m Failed to link and create the final MSI package !
echo.
goto end-msi-error
)
:: Going back to the original directory
popd

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

@@ -33,7 +33,7 @@
Icon used for the entry in the control panel's "Programs and Features" section.
See: https://wixtoolset.org/documentation/manual/v3/xsd/wix/icon.html
-->
<Icon Id="IconMain" SourceFile="..\lscom-v2-text-01.ico" />
<Icon Id="IconMain" SourceFile="..\Icons\lscom-v2-text-01.ico" />
<!--
Binds the Icon "IconMain" to the aforementioned control panel's section
@@ -63,16 +63,16 @@
MIT licenses aren't included as they don't act as EULA.
The "WixUILicenseRtf" variable is used by the standard "LicenseAgreementDlg".
-->
<WixVariable Id="WixUILicenseMicrosoftDotNetRtf" Value="Licenses\License_Microsoft_DotNet.rtf" />
<WixVariable Id="WixUILicenseMicrosoftVisualStudioRtf" Value="Licenses\License_Microsoft_VisualStudio.rtf" />
<WixVariable Id="WixUILicenseMicrosoftWindowsSdkRtf" Value="Licenses\License_WindowsSDK.rtf" />
<WixVariable Id="WixUILicenseMicrosoftPrivacyNoticeRtf" Value="Licenses\PrivacyNotice_Microsoft_2022-09.rtf" />
<WixVariable Id="WixUILicenseMicrosoftDotNetRtf" Value="..\Licenses\License_Microsoft_DotNet.rtf" />
<WixVariable Id="WixUILicenseMicrosoftVisualStudioRtf" Value="..\Licenses\License_Microsoft_VisualStudio.rtf" />
<WixVariable Id="WixUILicenseMicrosoftWindowsSdkRtf" Value="..\Licenses\License_WindowsSDK.rtf" />
<WixVariable Id="WixUILicenseMicrosoftPrivacyNoticeRtf" Value="..\Licenses\PrivacyNotice_Microsoft_2022-09.rtf" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.PlatformProgramFilesFolder)" Name="PFiles">
<Directory Id="ORGANIZATIONFOLDER" Name="NibblePoker">
<Directory Id="INSTALLFOLDER" Name="lscom">
<Directory Id="LICENSESFOLDER" Name="Licenses"></Directory>
<Directory Id="LICENSESFOLDER" Name="Licenses"/>
</Directory>
</Directory>
</Directory>
@@ -83,12 +83,12 @@
<File KeyPath="yes" Source="$(var.FilePathExecutable)" Name="lscom.exe" />
</Component>
<Component Id="Licenses" Guid="5aa34a6f-2b5c-4544-8979-a20d6c1d3f3c" Directory="LICENSESFOLDER" Feature="FeatureLicenses" Win64="$(var.Win64)">
<File Source="Licenses\License_DotNetCore.pdf" Name="License_DotNetCore.pdf" />
<File Source="Licenses\License_Microsoft_DotNet.pdf" Name="License_Microsoft_DotNet.pdf" />
<File Source="Licenses\License_Microsoft_VisualStudio.pdf" Name="License_Microsoft_VisualStudio.pdf" />
<File Source="Licenses\License_NibblePoker.pdf" Name="License_NibblePoker.pdf" />
<File Source="Licenses\License_WindowsSDK.pdf" Name="License_WindowsSDK.pdf" />
<File Source="Licenses\PrivacyNotice_Microsoft_2022-09.pdf" Name="PrivacyNotice_Microsoft_2022-09.pdf" />
<File Source="..\Licenses\License_DotNetCore.pdf" Name="License_DotNetCore.pdf" />
<File Source="..\Licenses\License_Microsoft_DotNet.pdf" Name="License_Microsoft_DotNet.pdf" />
<File Source="..\Licenses\License_Microsoft_VisualStudio.pdf" Name="License_Microsoft_VisualStudio.pdf" />
<File Source="..\Licenses\License_NibblePoker.pdf" Name="License_NibblePoker.pdf" />
<File Source="..\Licenses\License_WindowsSDK.pdf" Name="License_WindowsSDK.pdf" />
<File Source="..\Licenses\PrivacyNotice_Microsoft_2022-09.pdf" Name="PrivacyNotice_Microsoft_2022-09.pdf" />
</Component>
<Component Id="Registry" Guid="73b5468a-97b3-4469-a95d-70330ed229e6" Directory="INSTALLFOLDER" Feature="FeatureRegistryPath" Win64="$(var.Win64)">
<Environment Id="UpdatePath" Name="PATH" Part="last" Action="set" Permanent="yes" System="yes" Value="[INSTALLFOLDER]" />
@@ -2,7 +2,7 @@
<Include>
<!-- Shared variables -->
<?define ProductManufacturer = "Herwin Bozet" ?>
<?define PackageDescription = "ListComPort / lscom" ?> <!-- Also reffered to as 'Subject' ! -->
<?define PackageDescription = "ListComPort (lscom)" ?> <!-- Also reffered to as 'Subject' ! -->
<?define PackageComments = "This installer database contains the logic and data required to install ListComPort." ?>
<!-- TODO: Add contact, support and help fields ! -->
@@ -17,8 +17,7 @@
<?define PackagePlatform = "x64" ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?define FilePathExecutable = "..\Builds\x64_single_sc_trim_comp\NibblePoker.Application.ListComPort.exe" ?>
<?define FilePathLicense = "..\LICENSE" ?>
<?define FilePathExecutable = "..\..\Builds\x64_single_sc_trim_comp\NibblePoker.Application.ListComPort.exe" ?>
<?else ?>
<?define Win64 = "no" ?>
@@ -28,7 +27,6 @@
<?define PackagePlatform = "x86" ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?define FilePathExecutable = "..\Builds\x86_single_sc_trim_comp\NibblePoker.Application.ListComPort.exe" ?>
<?define FilePathLicense = "..\LICENSE" ?>
<?define FilePathExecutable = "..\..\Builds\x86_single_sc_trim_comp\NibblePoker.Application.ListComPort.exe" ?>
<?endif ?>
</Include>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Before

Width:  |  Height:  |  Size: 83 B

After

Width:  |  Height:  |  Size: 83 B

Before

Width:  |  Height:  |  Size: 83 B

After

Width:  |  Height:  |  Size: 83 B

Before

Width:  |  Height:  |  Size: 83 B

After

Width:  |  Height:  |  Size: 83 B

Before

Width:  |  Height:  |  Size: 83 B

After

Width:  |  Height:  |  Size: 83 B

+18 -14
View File
@@ -9,6 +9,9 @@ set PATH_MAKEAPPX=C:\Program Files (x86)\Windows Kits\10\App Certification Kit\
set PATH_WIX=C:\Program Files (x86)\WiX Toolset v3.14\bin\
set PATH_7ZIP=C:\Program Files\7-Zip\7z.exe
:: Setting some naming constants
set NP_LSCOM_VERSION=3.0.0
:: Defining the %NP_ESC% variable for later use.
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set NP_ESC=%%b
@@ -130,7 +133,7 @@ if ERRORLEVEL 1 (
echo.
goto end-msi-error
)
light ListComPort_x64.wixobj -out ListComPort_x64.msi -ext WixUIExtension -cultures:en-us
light ListComPort_x64.wixobj -loc en-us.wxl -out ListComPort_x64.msi -ext WixUIExtension -cultures:en-us
if ERRORLEVEL 1 (
echo.
echo %NP_ESC%[31mFATAL ERROR:%NP_ESC%[0m Failed to link and create the final MSI package !
@@ -147,7 +150,7 @@ if ERRORLEVEL 1 (
echo.
goto end-msi-error
)
light ListComPort_x86.wixobj -out ListComPort_x86.msi -ext WixUIExtension -cultures:en-us
light ListComPort_x86.wixobj -loc en-us.wxl -out ListComPort_x86.msi -ext WixUIExtension -cultures:en-us
if ERRORLEVEL 1 (
echo.
echo %NP_ESC%[31mFATAL ERROR:%NP_ESC%[0m Failed to link and create the final MSI package !
@@ -198,8 +201,8 @@ copy Packages\licenses_SelfContained\Licenses\License_NibblePoker.pdf Packages\l
xcopy /E /v Builds\any Packages\any
del Packages\any\*.pdb
copy /B /V NibblePoker.Packaging.ListComPort\ListComPort_x86.msi Packages\ListComPort_x86.msi
copy /B /V NibblePoker.Packaging.ListComPort\ListComPort_x64.msi Packages\ListComPort_x64.msi
copy /B /V NibblePoker.Packaging.ListComPort\ListComPort_x86.msi Packages\ListComPort_v%NP_LSCOM_VERSION%_x86.msi
copy /B /V NibblePoker.Packaging.ListComPort\ListComPort_x64.msi Packages\ListComPort_v%NP_LSCOM_VERSION%_x64.msi
copy /B /V Builds\x86_single\NibblePoker.Application.ListComPort.exe Packages\x86_DotNet6\lscom.exe
copy /B /V Builds\x86_single_sc_trim_comp\NibblePoker.Application.ListComPort.exe Packages\x86_SelfContained\lscom.exe
@@ -215,19 +218,19 @@ copy /B /V Builds\arm64_single_sc_trim_comp\NibblePoker.Application.ListComPort.
echo.
echo Renaming some files...
:: TODO: For the any build !
ren Packages\any\NibblePoker.Application.ListComPort.exe lscom.exe
echo.
echo Creating final distributable packages...
7z a -mx9 "./Packages/ListComPort_AnyCPU.zip" ./Packages/any/* ./Packages/licenses_Others/* > nul
7z a -mx9 "./Packages/ListComPort_x86_Single.zip" ./Packages/x86_DotNet6/* ./Packages/licenses_Others/* > nul
7z a -mx9 "./Packages/ListComPort_x86_SelfContained.zip" ./Packages/x86_SelfContained/* ./Packages/licenses_SelfContained/* > nul
7z a -mx9 "./Packages/ListComPort_x64_Single.zip" ./Packages/x64_DotNet6/* ./Packages/licenses_Others/* > nul
7z a -mx9 "./Packages/ListComPort_x64_SelfContained.zip" ./Packages/x64_SelfContained/* ./Packages/licenses_SelfContained/* > nul
7z a -mx9 "./Packages/ListComPort_arm_Single.zip" ./Packages/arm_DotNet6/* ./Packages/licenses_Others/* > nul
7z a -mx9 "./Packages/ListComPort_arm_SelfContained.zip" ./Packages/arm_SelfContained/* ./Packages/licenses_SelfContained/* > nul
7z a -mx9 "./Packages/ListComPort_arm64_Single.zip" ./Packages/arm64_DotNet6/* ./Packages/licenses_Others/* > nul
7z a -mx9 "./Packages/ListComPort_arm64_SelfContained.zip" ./Packages/arm64_SelfContained/* ./Packages/licenses_SelfContained/* > nul
7z a -mx9 "./Packages/ListComPort_v%NP_LSCOM_VERSION%_AnyCPU.zip" ./Packages/any/* ./Packages/licenses_Others/* > nul
7z a -mx9 "./Packages/ListComPort_v%NP_LSCOM_VERSION%_x86_Single.zip" ./Packages/x86_DotNet6/* ./Packages/licenses_Others/* > nul
7z a -mx9 "./Packages/ListComPort_v%NP_LSCOM_VERSION%_x86_SelfContained.zip" ./Packages/x86_SelfContained/* ./Packages/licenses_SelfContained/* > nul
7z a -mx9 "./Packages/ListComPort_v%NP_LSCOM_VERSION%_x64_Single.zip" ./Packages/x64_DotNet6/* ./Packages/licenses_Others/* > nul
7z a -mx9 "./Packages/ListComPort_v%NP_LSCOM_VERSION%_x64_SelfContained.zip" ./Packages/x64_SelfContained/* ./Packages/licenses_SelfContained/* > nul
7z a -mx9 "./Packages/ListComPort_v%NP_LSCOM_VERSION%_arm_Single.zip" ./Packages/arm_DotNet6/* ./Packages/licenses_Others/* > nul
7z a -mx9 "./Packages/ListComPort_v%NP_LSCOM_VERSION%_arm_SelfContained.zip" ./Packages/arm_SelfContained/* ./Packages/licenses_SelfContained/* > nul
7z a -mx9 "./Packages/ListComPort_v%NP_LSCOM_VERSION%_arm64_Single.zip" ./Packages/arm64_DotNet6/* ./Packages/licenses_Others/* > nul
7z a -mx9 "./Packages/ListComPort_v%NP_LSCOM_VERSION%_arm64_SelfContained.zip" ./Packages/arm64_SelfContained/* ./Packages/licenses_SelfContained/* > nul
echo.
@@ -309,6 +312,7 @@ set NP_PATH_7ZIP=
set NP_IS_WIX_VALID=
set NP_REDO_PATH_CHECK=
set WixTargetPlatform=
set NP_LSCOM_VERSION=
popd
+8 -1
View File
@@ -102,5 +102,12 @@ Finally, you should be able to find the executables in the "[Builds](Builds/)" f
and the distributable packages in the "[Packages](Packages/)" folder.
## License
## Licenses
### Repository
This project and all the libraries it uses are licensed under the [MIT](LICENSE) license.
### Builds
Some of the final binaries are covered by additional licenses, they are present in the "[NibblePoker.Packaging.ListComPort/Licenses](NibblePoker.Packaging.ListComPort/Licenses)" folder and are automatically packaged with the appropriate builds during the packaging process.
[TODO: Add details]