Skip to content

Commit

Permalink
Added net45, net461, net standard 2.0 and net standard 2.1 compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
dbeuchler committed Oct 5, 2020
1 parent 9496f00 commit 8826dcc
Show file tree
Hide file tree
Showing 148 changed files with 1,595 additions and 8,949 deletions.
137 changes: 92 additions & 45 deletions .build/BuildToolkit.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,6 @@ $global:NunitCli = "$BuildTools\NUnit.ConsoleRunner.$NunitVersion\tools\nunit3-c
$global:ReportGeneratorCli = "$BuildTools\ReportGenerator.$ReportGeneratorVersion\tools\net47\ReportGenerator.exe";
$global:DocFxCli = "$BuildTools\docfx.console.$DocFxVersion\tools\docfx.exe";

# Global Variables
$global:AssemblyVersion = "";
$global:AssemblyFileVersion = "";
$global:AssemblyInformationalVersion = ""
$global:PackageVersion = "";

# Git
$global:GitCommitHash = "";

Expand Down Expand Up @@ -106,11 +100,22 @@ function Invoke-Initialize([string]$Version = "1.0.0", [bool]$Cleanup = $False)
$env:MORYX_PACKAGE_TARGET = "";
}

$global:AssemblyVersion = $Version;
$global:AssemblyFileVersion = $Version;
$global:AssemblyInformationalVersion = $Version;
$global:PackageVersion = $Version;
if (-not $env:MORYX_ASSEMBLY_VERSION) {
$env:MORYX_ASSEMBLY_VERSION = $Version;
}

if (-not $env:MORYX_FILE_VERSION) {
$env:MORYX_FILE_VERSION = $Version;
}

if (-not $env:MORYX_INFORMATIONAL_VERSION) {
$env:MORYX_INFORMATIONAL_VERSION = $Version;
}

if (-not $env:MORYX_PACKAGE_VERSION) {
$env:MORYX_PACKAGE_VERSION = $Version;
}

Set-Version $Version;

# Printing Variables
Expand All @@ -120,10 +125,6 @@ function Invoke-Initialize([string]$Version = "1.0.0", [bool]$Cleanup = $False)
Write-Variable "NunitReportsDir" $NunitReportsDir;

Write-Step "Printing global scope"
Write-Variable "AssemblyVersion" $global:AssemblyVersion;
Write-Variable "AssemblyFileVersion" $global:AssemblyFileVersion;
Write-Variable "AssemblyInformationalVersion" $global:AssemblyInformationalVersion;
Write-Variable "PackageVersion" $global:PackageVersion;
Write-Variable "OpenCoverCli" $global:OpenCoverCli;
Write-Variable "NUnitCli" $global:NUnitCli;
Write-Variable "ReportGeneratorCli" $global:ReportGeneratorCli;
Expand All @@ -140,6 +141,12 @@ function Invoke-Initialize([string]$Version = "1.0.0", [bool]$Cleanup = $False)
Write-Variable "MORYX_NUGET_VERBOSITY" $env:MORYX_NUGET_VERBOSITY;
Write-Variable "MORYX_PACKAGE_TARGET" $env:MORYX_PACKAGE_TARGET;

Write-Variable "MORYX_ASSEMBLY_VERSION" $env:MORYX_ASSEMBLY_VERSION;
Write-Variable "MORYX_FILE_VERSION" $env:MORYX_FILE_VERSION;
Write-Variable "MORYX_INFORMATIONAL_VERSION" $env:MORYX_INFORMATIONAL_VERSION;
Write-Variable "MORYX_PACKAGE_VERSION" $env:MORYX_PACKAGE_VERSION;


# Cleanp
if ($Cleanup) {
Write-Step "Cleanup"
Expand Down Expand Up @@ -349,6 +356,15 @@ function Get-CsprojIsNetCore($csprojFile) {
return $false;
}

function Get-CsprojIsSdkProject($csprojFile) {
[xml]$csprojContent = Get-Content $csprojFile.FullName
$sdkProject = $csprojContent.Project.Sdk;
if ($null -ne $sdkProject) {
return $true;
}
return $false;
}

function Invoke-CoverReport {
Write-Step "Creating cover report. Searching for OpenCover.xml files in $OpenCoverReportsDir."

Expand Down Expand Up @@ -393,12 +409,41 @@ function Invoke-DocFx($Metadata = [System.IO.Path]::Combine($DocumentationDir, "
CopyAndReplaceFolder $docFxDest "$DocumentationArtifcacts\DocFx";
}

function Invoke-Pack($FilePath, [bool]$IsTool = $False, [bool]$IncludeSymbols = $False) {
CreateFolderIfNotExists $NugetPackageArtifacts;
function Invoke-PackSdkProject($ProjectPath, [bool]$IsTool = $False, [bool]$IncludeSymbols = $False) {
# Check if the project should be packed
$csprojFullName = $csprojFile.FullName;
[xml]$csprojContent = Get-Content $csprojFullName
$createPackage = $csprojContent.Project.PropertyGroup.CreatePackage;
;
if ($null -eq $createPackage -or "false" -eq $createPackage) {
return;
}

$packargs = "--output", "$NugetPackageArtifacts";
$packargs += "--configuration", "$env:MORYX_BUILD_CONFIG";
$packargs += "--verbosity", "$env:MORYX_NUGET_VERBOSITY";
$packargs += "--no-build";


if ($IncludeSymbols) {
$packargs += "--include-symbols";
}

& $global:DotNetCli pack "$csprojFullName" @packargs
Invoke-ExitCodeCheck $LastExitCode;
}

function Invoke-PackFrameworkProject($ProjectPath, [bool]$IsTool = $False, [bool]$IncludeSymbols = $False) {

# Check if there is a matching nuspec for the proj
$nuspecPath = [IO.Path]::ChangeExtension($ProjectPath, "nuspec")
if(-not (Test-Path $nuspecPath)) {
return;
}

$packargs = "-outputdirectory", "$NugetPackageArtifacts";
$packargs += "-includereferencedprojects";
$packargs += "-Version", "$global:PackageVersion";
$packargs += "-Version", "$env:MORYX_PACKAGE_VERSION";
$packargs += "-Prop", "Configuration=$env:MORYX_BUILD_CONFIG";
$packargs += "-Verbosity", "$env:MORYX_NUGET_VERBOSITY";

Expand All @@ -411,24 +456,26 @@ function Invoke-Pack($FilePath, [bool]$IsTool = $False, [bool]$IncludeSymbols =
}

# Call nuget with default arguments plus optional
& $global:NugetCli pack "$FilePath" @packargs
& $global:NugetCli pack "$nuspecPath" @packargs
Invoke-ExitCodeCheck $LastExitCode;
}

function Invoke-Pack($ProjectPath, [bool]$IsTool = $False, [bool]$IncludeSymbols = $False) {
CreateFolderIfNotExists $NugetPackageArtifacts;

if (Get-CsprojIsSdkProject($ProjectPath)) {
Invoke-PackSdkProject $ProjectPath $IsTool $IncludeSymbols;
}
else {
Invoke-PackFrameworkProject $ProjectPath $IsTool $IncludeSymbols;
}
}

function Invoke-PackAll([switch]$Symbols = $False) {
Write-Host "Looking for .nuspec files..."
# Look for nuspec in this directory
foreach ($nuspecFile in Get-ChildItem $RootPath -Recurse -Filter *.nuspec) {
$nuspecPath = $nuspecFile.FullName
Write-Host "Packing $nuspecPath" -ForegroundColor Green

# Check if there is a matching proj for the nuspec
$projectPath = [IO.Path]::ChangeExtension($nuspecPath, "csproj")
if(Test-Path $projectPath) {
Invoke-Pack -FilePath $projectPath -IncludeSymbols $Symbols
} else {
Invoke-Pack -FilePath $nuspecPath -IncludeSymbols $Symbols
}
Write-Host "Looking for .csproj files..."
# Look for csproj in this directory
foreach ($csprojFile in Get-ChildItem $RootPath -Recurse -Filter *.csproj) {
Invoke-Pack -ProjectPath $csprojFile -IncludeSymbols $Symbols
}
}

Expand Down Expand Up @@ -473,15 +520,15 @@ function Set-Version ([string]$MajorMinorPatch) {
$mmp = $majorGroup.Value + "." + $minorGroup.Value + "." + $patchGroup.Value;

# Check if it is a pre release
$global:AssemblyVersion = $majorGroup.Value + ".0.0.0" # 3.0.0.0
$global:AssemblyFileVersion = $mmp + "." + $env:MORYX_BUILDNUMBER; # 3.1.2.42
$env:MORYX_ASSEMBLY_VERSION = $majorGroup.Value + ".0.0.0" # 3.0.0.0
$env:MORYX_FILE_VERSION = $mmp + "." + $env:MORYX_BUILDNUMBER; # 3.1.2.42

if ($preReleaseGroup.Success) {
$global:AssemblyInformationalVersion = $mmp + "-" + $preReleaseGroup.Value + "+" + $global:GitCommitHash; # 3.1.2-beta.1+d95a996ed5ba14a1421dafeb844a56ab08211ead
$global:PackageVersion = $mmp + "-" + $preReleaseGroup.Value;
$env:MORYX_INFORMATIONAL_VERSION = $mmp + "-" + $preReleaseGroup.Value + "+" + $global:GitCommitHash; # 3.1.2-beta.1+d95a996ed5ba14a1421dafeb844a56ab08211ead
$env:MORYX_PACKAGE_VERSION = $mmp + "-" + $preReleaseGroup.Value;
} else {
$global:AssemblyInformationalVersion = $mmp + "+" + $global:GitCommitHash; # 3.1.2+d95a996ed5ba14a1421dafeb844a56ab08211ead
$global:PackageVersion = $mmp;
$env:MORYX_INFORMATIONAL_VERSION = $mmp + "+" + $global:GitCommitHash; # 3.1.2+d95a996ed5ba14a1421dafeb844a56ab08211ead
$env:MORYX_PACKAGE_VERSION = $mmp;
}
}

Expand Down Expand Up @@ -534,16 +581,16 @@ function Set-AssemblyVersion([string]$InputFile) {
exit 1;
}

Write-Host "Applying assembly info of $($file.FullName) -> $global:AssemblyVersion ";
Write-Host "Applying assembly info of $($file.FullName) -> $env:MORYX_ASSEMBLY_VERSION ";

$assemblyVersionPattern = 'AssemblyVersion\("[0-9]+(\.([0-9]+)){3}"\)';
$assemblyVersion = 'AssemblyVersion("' + $global:AssemblyVersion + '")';
$assemblyVersion = 'AssemblyVersion("' + $env:MORYX_ASSEMBLY_VERSION + '")';

$assemblyFileVersionPattern = 'AssemblyFileVersion\("[0-9]+(\.([0-9]+)){3}"\)';
$assemblyFileVersion = 'AssemblyFileVersion("' + $global:AssemblyFileVersion + '")';
$assemblyFileVersion = 'AssemblyFileVersion("' + $env:MORYX_FILE_VERSION + '")';

$assemblyInformationalVersionPattern = 'AssemblyInformationalVersion\("[0-9]+(\.([0-9]+)){3}"\)';
$assemblyInformationalVersion = 'AssemblyInformationalVersion("' + $global:AssemblyInformationalVersion + '")';
$assemblyInformationalVersion = 'AssemblyInformationalVersion("' + $env:MORYX_INFORMATIONAL_VERSION + '")';

$assemblyConfigurationPattern = 'AssemblyConfiguration\("\w+"\)';
$assemblyConfiguration = 'AssemblyConfiguration("' + $env:MORYX_BUILD_CONFIG + '")';
Expand Down Expand Up @@ -583,10 +630,10 @@ function Set-VsixManifestVersion([string]$VsixManifest) {
}

[xml]$manifestContent = Get-Content $file
$manifestContent.PackageManifest.Metadata.Identity.Version = $global:AssemblyVersion
$manifestContent.PackageManifest.Metadata.Identity.Version = $env:MORYX_ASSEMBLY_VERSION
$manifestContent.Save($VsixManifest)

Write-Host "Version $global:AssemblyVersion applied to $VsixManifest!"
Write-Host "Version $env:MORYX_ASSEMBLY_VERSION applied to $VsixManifest!"
}

function Set-VsTemplateVersion([string]$VsTemplate) {
Expand All @@ -600,11 +647,11 @@ function Set-VsTemplateVersion([string]$VsTemplate) {

$versionRegex = "(\d+)\.(\d+)\.(\d+)\.(\d+)"

$wizardAssemblyStrongName = $templateContent.VSTemplate.WizardExtension.Assembly -replace $versionRegex, $global:AssemblyVersion
$wizardAssemblyStrongName = $templateContent.VSTemplate.WizardExtension.Assembly -replace $versionRegex, $env:MORYX_ASSEMBLY_VERSION
$templateContent.VSTemplate.WizardExtension.Assembly = $wizardAssemblyStrongName
$templateContent.Save($vsTemplate)

Write-Host "Version $global:AssemblyVersion applied to $VsTemplate!"
Write-Host "Version$env:MORYX_ASSEMBLY_VERSION applied to $VsTemplate!"
}

function CreateFolderIfNotExists([string]$Folder) {
Expand Down
39 changes: 39 additions & 0 deletions .build/Common.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<!--EXTERNAL_PROPERTIES: MORYX_ASSEMBLY_VERSION-->
<!--EXTERNAL_PROPERTIES: MORYX_FILE_VERSION-->
<!--EXTERNAL_PROPERTIES: MORYX_INFORMATIONAL_VERSION-->
<!--EXTERNAL_PROPERTIES: MORYX_PACKAGE_VERSION-->
<Project>

<PropertyGroup>
<AssemblyVersion>3.0.0</AssemblyVersion>
<AssemblyVersion Condition="'$(MORYX_ASSEMBLY_VERSION)'!=''">$(MORYX_ASSEMBLY_VERSION)</AssemblyVersion>

<FileVersion>3.0.0.0</FileVersion>
<FileVersion Condition="'$(MORYX_FILE_VERSION)'!=''">$(MORYX_FILE_VERSION)</FileVersion>

<InformationalVersion>3.0.0.0</InformationalVersion>
<InformationalVersion Condition="'$(MORYX_INFORMATIONAL_VERSION)'!=''">$(MORYX_INFORMATIONAL_VERSION)</InformationalVersion>

<PackageVersion>3.0.0</PackageVersion>
<PackageVersion Condition="'$(MORYX_PACKAGE_VERSION)'!=''">$(MORYX_PACKAGE_VERSION)</PackageVersion>

<Authors>PHOENIXCONTACT</Authors>
<Company>PHOENIX CONTACT</Company>
<Product>MORYX</Product>

<CurrentYear>$([System.DateTime]::Now.ToString("yyyy"))</CurrentYear>
<Copyright>Copyright © PHOENIX CONTACT $(CurrentYear)</Copyright>

<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/PHOENIXCONTACT/MORYX-Platform</RepositoryUrl>

<PackageIconUrl>https://www.phoenixcontact.com/favicon.ico</PackageIconUrl>
<PackageProjectUrl>https://moryx-industry.net/</PackageProjectUrl>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PublishRepositoryUrl>true</PublishRepositoryUrl>

<IncludeSymbols>true</IncludeSymbols>
</PropertyGroup>

</Project>
Loading

0 comments on commit 8826dcc

Please sign in to comment.