Skip to content

Commit

Permalink
Remove build cruft
Browse files Browse the repository at this point in the history
- Migrate to SDK-style csprojs for everything
- Migrate all nuspec to msbuild pack
- Remove custom generation of assembly info and rely on sdk-style generation
- Make FileVersion still auto increment based on current time, but not trigger rebuilds
- Migrate MonoMac embedded samples to Xamarin.Mac
- Simplify build.proj considerably
  • Loading branch information
cwensley committed Dec 19, 2019
1 parent 74a722b commit 8a4d732
Show file tree
Hide file tree
Showing 195 changed files with 2,323 additions and 10,446 deletions.
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
The BSD-3 License.

AUTHORS
Copyright © 2011-2018 Curtis Wensley. All Rights Reserved.
Copyright © 2011-2019 Curtis Wensley. All Rights Reserved.
Copyright © 2012-2013 Vivek Jhaveri. All Rights Reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted
Expand Down
6 changes: 0 additions & 6 deletions addin-project.xml

This file was deleted.

3 changes: 1 addition & 2 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
version: 2.5.0.{build}
image: Visual Studio 2017
install:
- cinst gtksharp -y
- ps: $DOTNET_SDK_VERSION = "3.0.100"
- ps: $DOTNET_SDK_VERSION = "3.1.100"
- ps: Start-FileDownload "https://dot.net/v1/dotnet-install.ps1"
- ps: "& ./dotnet-install.ps1 -Version $DOTNET_SDK_VERSION"
- ps: $DOTNET_CLI_COMMAND = Get-Command -CommandType Application dotnet | Select-Object -First 1
Expand Down
8 changes: 4 additions & 4 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,13 @@ jobs:
- task: CopyFiles@2
displayName: Copy nupkg
inputs:
contents: artifacts/nuget/$(build.configuration)/Eto.Platform.XamMac*.nupkg
contents: |
artifacts/nuget/$(build.configuration)/Eto.Platform.XamMac*.nupkg
artifacts/nuget/$(build.configuration)/Eto.Platform.Gtk2*.nupkg
targetFolder: $(Build.ArtifactStagingDirectory)

- task: PublishBuildArtifacts@1
displayName: Publish XamMac nupkg
displayName: Publish nupkg
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/artifacts/nuget/$(build.configuration)
artifactName: nuget
Expand Down Expand Up @@ -72,8 +74,6 @@ jobs:
vmImage: 'VS2017-Win2016'

steps:
- script: cinst gtksharp -y
displayName: Install GTK#
- powershell: |
Write-Host "##vso[task.setvariable variable=DOTNET_SDK_VERSION]3.0.100"
displayName: Set .NET Core SDK version to install
Expand Down
4 changes: 2 additions & 2 deletions build.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

WHERE msbuild > nul
IF %ERRORLEVEL% NEQ 0 (
ECHO msbuild not found. Run in the Developer Command Prompt for VS 2017
ECHO msbuild not found. Run in the Developer Command Prompt for VS 2019
pause
)

set BUILD_DIR=%~dp0build
msbuild -t:Package -p:BuildVersion=%1 "%BUILD_DIR%\Build.proj"
msbuild -v:minimal -t:Package -p:BuildVersion=%1 "%BUILD_DIR%\Build.proj"
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
msbuild /t:Package /p:BuildVersion=$1 $DIR/build/Build.proj
msbuild /v:minimal /t:Package /p:BuildVersion=$1 $DIR/build/Build.proj
162 changes: 30 additions & 132 deletions build/Build.proj

Large diffs are not rendered by default.

44 changes: 0 additions & 44 deletions build/BuildMacAddin.targets

This file was deleted.

12 changes: 6 additions & 6 deletions build/Common.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,23 @@
<Import Project="$(MSBuildThisFileDirectory)Common.props" />
<PropertyGroup>

<AssemblyVersion Condition="$(AssemblyVersion) == ''">2.5.0.0</AssemblyVersion>
<AssemblyInformationalVersion Condition="$(AssemblyInformationalVersion) == ''">2.5.0-dev</AssemblyInformationalVersion>

<XamarinMacPath>\Library\Frameworks\Xamarin.Mac.framework\Versions\Current</XamarinMacPath>
<XamarinMacLibPath>$(XamarinMacPath)\lib\mono</XamarinMacLibPath>
<ReferencePath Condition="$(ReferencePath) == '' and Exists('$(XamarinMacLibPath)')">$(XamarinMacLibPath)</ReferencePath>
<!-- Prevent VS2015 from copying files from the GAC to the output folder -->
<DoNotCopyLocalIfInGac>true</DoNotCopyLocalIfInGac>
<BaseIntermediateOutputPath>$(BasePath)artifacts\obj\$(OSPlatform)\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<GenerateAssemblyVersion Condition="$(GenerateAssemblyVersion) == ''">True</GenerateAssemblyVersion>
<GenerateAssemblyInfo>True</GenerateAssemblyInfo>
<Deterministic Condition="$(Deterministic) == '' and $(GenerateAssemblyVersion) == 'True'">True</Deterministic>
<Deterministic Condition="$(Deterministic) == ''">False</Deterministic>
<!-- RestoreProjectStyle will be supported in VS for Mac 7.4 -->
<RestoreProjectStyle Condition="'$(RestoreProjectStyle)' == '' AND $(UsePackagesConfig) != 'True'">PackageReference</RestoreProjectStyle>

<DefaultItemExcludes>$(DefaultItemExcludes);.DS_Store</DefaultItemExcludes>
<DefaultItemExcludes>$(DefaultItemExcludes);**\.DS_Store</DefaultItemExcludes>

<!-- we add this manually in .targets so it doesn't trigger a rebuild each time -->
<GenerateAssemblyFileVersionAttribute>False</GenerateAssemblyFileVersionAttribute>
</PropertyGroup>

<Import Condition="Exists('$(BasePath)..\Eto.Common.props')" Project="$(BasePath)..\Eto.Common.props" />
</Project>
71 changes: 21 additions & 50 deletions build/Common.Build.targets
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Import Project="$(MSBuildThisFileDirectory)MSBuildTaskHelper.props" Condition="'$(MSBuildTaskHelpersImported)'!='true'"/>
<UsingTask TaskName="_GetCommonFiles" TaskFactory="$(MSBuildTaskFactoryType)" AssemblyFile="$(MSBuildTasksAssemblyFile)">
<ParameterGroup>
Expand Down Expand Up @@ -55,9 +56,14 @@
</ItemGroup>
<Message Importance="high" Text="Embedding: @(FilesToEmbed->'%(Filename)%(Extension)', ', ')" />
</Target>
<Import Project="$(BasePath)build\MacTemplate\MacTemplate.targets" Condition="$(UseMacTemplate) == 'True'" />
<Import Project="$(MSBuildThisFileDirectory)Common.Mac.targets" Condition="$(UseMacTargets) == 'True'" />
<Import Condition="Exists('$(BasePath)..\Eto.Common.targets')" Project="$(BasePath)..\Eto.Common.targets" />


<PropertyGroup>
<AssemblySearchPaths Condition="$(FixGtkReferences)=='true'">$(AssemblySearchPaths);{GAC}</AssemblySearchPaths>
</PropertyGroup>


<Target Name="FixGtkReferences" Condition="$(FixGtkReferences)=='true'" BeforeTargets="BeforeBuild">
<!--
Set the path of gtk references explicitly for linux msbuild support.
Expand Down Expand Up @@ -89,55 +95,20 @@
<Message Text="%(Reference.Filename) - %(Reference.HintPath)" Importance="high" />
-->
</Target>

<ItemGroup Condition="$(GenerateAssemblyVersion) == 'True'">
<Compile Include="$(IntermediateOutputPath)VersionInfo.cs">
<Link>Properties\VersionInfo.cs</Link>
<Visible>false</Visible>
</Compile>
<Compile Include="$(SourceDir)Shared\GlobalAssemblyInfo.cs">
<Link>Properties\GlobalAssemblyInfo.cs</Link>
<Visible>false</Visible>
</Compile>
</ItemGroup>

<Target Name="_WriteVersion"
BeforeTargets="CoreCompile"
Condition="$(GenerateAssemblyVersion) == 'True'"
Inputs="$(MSBuildAllProjects);
@(Compile);
@(_CoreCompileResourceInputs);
$(ApplicationIcon);
$(AssemblyOriginatorKeyFile);
@(ReferencePathWithRefAssemblies);
@(CompiledLicenseFile);
@(LinkResource);
@(EmbeddedDocumentation);
$(Win32Resource);
$(Win32Manifest);
@(CustomAdditionalCompileInputs);
$(ResolvedCodeAnalysisRuleSet);
@(AdditionalFiles);
@(EmbeddedFiles)"
Outputs="$(IntermediateOutputPath)VersionInfo.cs">
<!-- Generate auto version number so:
a) we can use deterministic builds
b) VS on Mac won't break intellisense when strong naming the assemblies
see: https://github.com/mono/monodevelop/issues/4763
-->
<PropertyGroup>
<AssemblyVersionMajorMinor>$([System.Version]::Parse($([System.String]::Copy('$(AssemblyVersion)').Replace('.*', ''))).ToString(2))</AssemblyVersionMajorMinor>
<DaysSince2000>$([System.DateTime]::Today.Subtract($([System.DateTime]::Parse('2000-01-01T00:00:00Z'))).TotalDays.ToString('0'))</DaysSince2000>
<SecondsOfTodayHalved>$([MSBuild]::Divide($([System.DateTime]::Now.Subtract($([System.DateTime]::Today)).TotalSeconds), 2).ToString('0'))</SecondsOfTodayHalved>
<AssemblyFileVersion>$(AssemblyVersionMajorMinor).$(DaysSince2000).$(SecondsOfTodayHalved)</AssemblyFileVersion>
</PropertyGroup>


<PropertyGroup>
<!-- why oh why do we need to specify both explicitly -->
<AssemblyTitle Condition="$(Title) != ''">$(Title)</AssemblyTitle>
</PropertyGroup>


<Target Name="_AddFileVersionAttribute" BeforeTargets="CoreGenerateAssemblyInfo">
<!-- We add this here so it doesn't trigger a rebuild due to changing based on time -->
<ItemGroup>
<VersionInfo Include="[assembly: System.Reflection.AssemblyVersion(&quot;$(AssemblyVersion)&quot;)]" />
<VersionInfo Include="[assembly: System.Reflection.AssemblyFileVersion(&quot;$(AssemblyFileVersion)&quot;)]" />
<VersionInfo Include="[assembly: System.Reflection.AssemblyInformationalVersion(&quot;$(AssemblyInformationalVersion)&quot;)]" />
<AssemblyAttribute Include="System.Reflection.AssemblyFileVersionAttribute" Condition="'$(FileVersion)' != ''">
<_Parameter1>$(FileVersion)</_Parameter1>
</AssemblyAttribute>
</ItemGroup>
<MakeDir Directories="$(IntermediateOutputPath)" />
<WriteLinesToFile File="$(IntermediateOutputPath)VersionInfo.cs" Overwrite="True" Lines="@(VersionInfo)" />

</Target>
</Project>
13 changes: 13 additions & 0 deletions build/Common.Mac.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<!-- Include this file if you want to reference Eto.Mac64.csproj directly vs. using the nuget package -->

<Import Project="$(MSBuildThisFileDirectory)MSBuildTaskHelper.props" Condition="'$(MSBuildTaskHelpersImported)'!='true'"/>
<Import Project="$(MSBuildThisFileDirectory)..\src\Eto.Mac\build\Mac.targets" />

<ItemGroup>
<PackageReference Include="RoslynCodeTaskFactory" Version="2.0.7" />
</ItemGroup>

</Project>
43 changes: 33 additions & 10 deletions build/Common.props
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,47 @@

<XamarinMacPath>\Library\Frameworks\Xamarin.Mac.framework\Versions\Current\</XamarinMacPath>
<XamarinMacLibPath>$(XamarinMacPath)lib\mono\</XamarinMacLibPath>
<XamarinMacTargetsPath>$(XamarinMacPath)lib\msbuild\</XamarinMacTargetsPath>
<ReferencePath Condition="$(ReferencePath) == '' and Exists('$(XamarinMacLibPath)')">$(XamarinMacLibPath)</ReferencePath>

<ArtifactsDir Condition="$(BuildOutoutDir) == ''">$(BasePath)artifacts\</ArtifactsDir>
<ArtifactsNet45Dir Condition="$(ArtifactsNet45Dir) == ''">$(ArtifactsDir)core\$(Configuration)\net45\</ArtifactsNet45Dir>
<ArtifactsNetStandard10Dir Condition="$(ArtifactsNetStandard10Dir) == ''">$(ArtifactsDir)core\$(Configuration)\netstandard1.0\</ArtifactsNetStandard10Dir>
<ArtifactsNetStandard20Dir Condition="$(ArtifactsNetStandard20Dir) == ''">$(ArtifactsDir)core\$(Configuration)\netstandard2.0\</ArtifactsNetStandard20Dir>
<ArtifactsModernDir Condition="$(ArtifactsModernDir) == ''">$(ArtifactsDir)core\$(Configuration)\modern\</ArtifactsModernDir>
<BaseIntermediateOutputPath>$(BasePath)artifacts\obj\$(OSPlatform)\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<SourceDir Condition="$(SourceDir) == ''">$(BasePath)src\</SourceDir>
<NugetDir Condition="$(NugetDir) == ''">$(SourceDir)</NugetDir>
<NugetOutputDir Condition="$(NugetOutputDir) == ''">$(ArtifactsDir)nuget\$(Configuration)\</NugetOutputDir>
<PackageOutputPath>$(ArtifactsDir)nuget\$(Configuration)\</PackageOutputPath>
<AddinDir>$(SourceDir)\Addins\</AddinDir>
<mdtool Condition="$(mdtool) == '' and $(OSPlatform) == 'Linux'">"mdtool"</mdtool>
<mdtool Condition="$(mdtool) == '' and $(OSPlatform) == 'Mac'">"/Applications/Xamarin Studio.app/Contents/MacOS/mdtool"</mdtool>
<mdtool Condition="$(mdtool) == '' and $(OSPlatform) == 'Windows'">"c:\Program Files (x86)\Xamarin Studio\bin\mdtool.exe"</mdtool>
<UtilitiesBasePath>$(ArtifactsDir)obj</UtilitiesBasePath>

<VersionInfoPropsFile>$(ArtifactsDir)obj\VersionInfo.props</VersionInfoPropsFile>
</PropertyGroup>

<PropertyGroup>
<!-- global nuget/assembly properties -->

<Version Condition="$(AssemblyVersion) == ''">2.5.0.0</Version>
<InformationalVersion Condition="$(InformationalVersion) == ''">2.5.0-dev</InformationalVersion>
<Company>Picoe Software Solutions</Company>
<Copyright>(c) 2010-2019 by Curtis Wensley, 2012-2014 by Vivek Jhaveri and contributors</Copyright>

<PackageVersion>$(InformationalVersion)</PackageVersion>
<PackageLicenseFile>Eto-LICENSE.txt</PackageLicenseFile>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>

<AssemblyVersionMajorMinor>$([System.Version]::Parse($([System.String]::Copy('$(Version)').Replace('.*', ''))).ToString(2))</AssemblyVersionMajorMinor>
<DaysSince2000>$([System.DateTime]::Today.Subtract($([System.DateTime]::Parse('2000-01-01T00:00:00Z'))).TotalDays.ToString('0'))</DaysSince2000>
<SecondsOfTodayHalved>$([MSBuild]::Divide($([System.DateTime]::Now.Subtract($([System.DateTime]::Today)).TotalSeconds), 2).ToString('0'))</SecondsOfTodayHalved>
<FileVersion>$(AssemblyVersionMajorMinor).$(DaysSince2000).$(SecondsOfTodayHalved)</FileVersion>

<PackageProjectUrl>https://github.com/picoe/Eto</PackageProjectUrl>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>$(PackageProjectUrl).git</RepositoryUrl>

</PropertyGroup>

<ItemGroup>
<Content Include="$(BasePath)LICENSE.txt" PackageCopyToOutput="False" Pack="True" PackagePath="$(PackageLicenseFile)">
<Link>Eto-LICENSE.txt</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>


</Project>
Binary file removed build/MacTemplate/Launcher32
Binary file not shown.
Loading

0 comments on commit 8a4d732

Please sign in to comment.