Skip to content

Commit

Permalink
Update MonoDevelop/VS for Mac addin
Browse files Browse the repository at this point in the history
- Updated for the latest 7.3 release
- Now works on Mac and Linux
- Added dotnet new template for C# and F# covering all the usual cases (and more!)
- Removed old project templates
  • Loading branch information
cwensley committed Feb 1, 2018
1 parent da4ab46 commit 0a04d7d
Show file tree
Hide file tree
Showing 228 changed files with 3,103 additions and 3,215 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ AppPackages
.vs/
[Tt]humbs.db
/artifacts

packages/
62 changes: 30 additions & 32 deletions build/Build.proj
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,9 @@
<Platform Condition="$(Platform) == '' and '$(OS)' == 'Unix' and Exists('/Library/Frameworks')">Mac</Platform>
<Platform Condition="$(Platform) == '' and '$(OS)' != 'Unix'">Windows</Platform>
<BuildVersion Condition="$(BuildVersion) == ''"></BuildVersion>
<XamarinStudioAddinProject>$(SourceDir)\Addins\Eto.Addin.XamarinStudio.sln</XamarinStudioAddinProject>
<VisualStudioAddinProject>$(SourceDir)\Addins\Eto.Addin.VisualStudio.sln</VisualStudioAddinProject>
<AddinDir>$(SourceDir)\Addins\</AddinDir>
<XamarinStudioAddinProject>$(AddinDir)Eto.Addin.MonoDevelop.sln</XamarinStudioAddinProject>
<VisualStudioAddinProject>$(AddinDir)Eto.Addin.VisualStudio.sln</VisualStudioAddinProject>
<mdtool Condition="$(mdtool) == '' and $(Platform) == 'Linux'">"mdtool"</mdtool>
<mdtool Condition="$(mdtool) == '' and $(Platform) == 'Mac'">"/Applications/Xamarin Studio.app/Contents/MacOS/mdtool"</mdtool>
<mdtool Condition="$(mdtool) == '' and $(Platform) == 'Windows'">"c:\Program Files (x86)\Xamarin Studio\bin\mdtool.exe"</mdtool>
Expand Down Expand Up @@ -62,23 +63,8 @@
Pattern='AssemblyVersion(\\s*)[(]&quot;.*?&quot;[)]'
Replacement='AssemblyVersion$1(&quot;$(AssemblyVersion)&quot;)' />

<ItemGroup>
<TemplateFiles Include="$(SourceDir)\Addins\Eto.Addin.VisualStudio\**\*.vstemplate" />
<TemplateFiles Include="$(SourceDir)\Addins\Eto.Addin.XamarinStudio\**\*.xpt.xml" />
<ProjFiles Include="$(SourceDir)\Addins\Eto.Addin.XamarinStudio\Eto.Addin.XamarinStudio.csproj" />
<ProjFiles Include="$(SourceDir)\Addins\Eto.Addin.XamarinStudio\Eto.Addin.XamarinStudio - nuget.csproj" />
<TemplateFiles Include="$(MSBuildThisFileDirectory)\packages.config" />
</ItemGroup>

<FileUpdate Files="@(ProjFiles)"
WarnOnNoUpdate="true"
Pattern="(?&lt;=Eto.[\\w\\.]+?)(\\.\\d+)*([-]\\w+\\d*)?\\.nupkg"
Replacement='.$(AssemblyInformationalVersion).nupkg' />

<FileUpdate Files="@(TemplateFiles)"
WarnOnNoUpdate="false"
Pattern="(?&lt;=id\\s*[=]\\s*&quot;Eto\\.[\\w\\.]+&quot;\\s+)version\\s*=\\s*&quot;[^&quot;]+&quot;"
Replacement='version=&quot;$(AssemblyInformationalVersion)&quot;' />
<MSBuild Targets="UpdateReference" Properties="ReferenceName=(Eto.[\\w\\.]+?);ReferenceVersion=$(AssemblyInformationalVersion)" Projects="$(MSBuildProjectFile)"/>

</Target>

<Target Name="UpdateReference">
Expand All @@ -87,31 +73,42 @@

<PropertyGroup>
<ReferenceName>$(ReferenceName.Replace('.', '\\.'))</ReferenceName>
<ReplaceVersionPattern>([\\.\\d\\-\\w]+)</ReplaceVersionPattern>
</PropertyGroup>

<ItemGroup>
<TemplateFiles Include="$(SourceDir)\Addins\Eto.Addin.VisualStudio\**\*.vstemplate" />
<TemplateFiles Include="$(SourceDir)\Addins\Eto.Addin.XamarinStudio\**\*.xpt.xml" />
<TemplateFiles Include="$(SourceDir)\Addins\Eto.Addin.MonoDevelop\**\*.xpt.xml" />
<TemplateFiles Include="$(SourceDir)\**\packages.config" />
<TemplateFiles Include="$(MSBuildThisFileDirectory)\nuspec\**\*.nuspec" />

<ProjFiles Include="$(SourceDir)\**\*.csproj" />
<ProjFiles Include="$(SourceDir)\**\*.fsproj" />
<PackageFiles Include="$(AddinDir)\Eto.Forms.Templates\Eto.Forms.Templates.csproj" />
</ItemGroup>

<!-- single line PackageReference -->
<FileUpdate Files="@(ProjFiles)"
WarnOnNoUpdate="false"
Pattern="(?&lt;=&lt;PackageReference.+?Include\\s*[=]\\s*&quot;$(ReferenceName)&quot;.+?Version\\s*[=]\\s*&quot;)([\\.\\d]+)"
Pattern="(?&lt;=&lt;PackageReference.+?Include\\s*[=]\\s*&quot;$(ReferenceName)&quot;.+?Version\\s*[=]\\s*&quot;)$(ReplaceVersionPattern)(?=&quot;)"
Replacement='$(ReferenceVersion)' />

<!-- multi-line PackageReference -->
<FileUpdate Files="@(ProjFiles)"
WarnOnNoUpdate="false"
Pattern="(?&lt;=&lt;PackageReference.+?Include\\s*[=]\\s*&quot;$(ReferenceName)&quot;.*&gt;\\s*&lt;Version&gt;)([\\.\\d]+)"
Pattern="(?&lt;=&lt;PackageReference.+?Include\\s*[=]\\s*&quot;$(ReferenceName)&quot;.*&gt;\\s*&lt;Version&gt;)$(ReplaceVersionPattern)(?=&lt;)"
Replacement='$(ReferenceVersion)' />

<!-- PackageVersion tag in sdk-style projects -->
<FileUpdate Files="@(PackageFiles)"
WarnOnNoUpdate="false"
Pattern="(?&lt;=&lt;PackageVersion&gt;)$(ReplaceVersionPattern)(?=&lt;/PackageVersion&gt;)"
Replacement='$(ReferenceVersion)' />

<FileUpdate Files="@(TemplateFiles)"
WarnOnNoUpdate="false"
Pattern="(?&lt;=id\\s*[=]\\s*&quot;$(ReferenceName)&quot;\\s+)version\\s*=\\s*&quot;[^&quot;]+&quot;"
Replacement='version=&quot;$(ReferenceVersion)&quot;' />
Pattern="(?&lt;=id\\s*[=]\\s*&quot;$(ReferenceName)&quot;\\s+version\\s*=\\s*&quot;)$(ReplaceVersionPattern)(?=&quot;)"
Replacement='$(ReferenceVersion)' />
</Target>

<Target Name="BuildHelpShfb" DependsOnTargets="Build">
Expand Down Expand Up @@ -148,7 +145,7 @@
<Package Include="Eto.Platform.XamMac">
<Assembly>$(ArtifactsNet45Dir)\Eto.XamMac.dll</Assembly>
</Package>
<Package Include="Eto.Platform.XamMac2">
<Package Include="Eto.Platform.XamMac2" Condition="$(Platform) == 'Mac'">
<Assembly>$(ArtifactsModernDir)\Eto.XamMac2.dll</Assembly>
</Package>
<Package Include="Eto.Platform.Windows">
Expand Down Expand Up @@ -202,18 +199,19 @@
<StandalonePackage Include="Eto.Platform.Mac.Template"/>
</ItemGroup>

<MSBuild Targets="BuildPackage" Properties="Configuration=$(Configuration);AssemblyPath=;NuspecPath=nuspec\%(StandalonePackage.Identity).nuspec;NupkgOutputDir=$(NugetOutputDir);NugetBuildOptions=-Version $(AssemblyVersion)" Projects="nuget.targets" />
</Target>
<MSBuild Targets="BuildPackage" Properties="Configuration=$(Configuration);AssemblyPath=%(Package.Assembly);NuspecPath=nuspec\%(Package.Identity).nuspec;BasePath=$(BaseDir);NupkgOutputDir=$(NugetOutputDir)" Projects="nuget.targets" Condition="Exists('%(Package.Assembly)')" />

<!-- build dotnet template -->
<MSBuild Targets="RestorePackages" Properties="PackageSource=$(AddinDir)Eto.Forms.Templates\Eto.Forms.Templates.csproj" Projects="NuGet.targets" />
<MSBuild Projects="$(AddinDir)Eto.Forms.Templates\Eto.Forms.Templates.csproj" Targets="Pack" Properties="Configuration=$(Configuration)" />
</Target>

<Target Name="BuildAddins">
<!-- monodevelop/VS for Mac -->
<MSBuild Projects="$(XamarinStudioAddinProject)" Targets="Restore" Properties="Configuration=XSRelease" Condition="$(Platform) != 'Windows'" />
<MSBuild Projects="$(XamarinStudioAddinProject)" Targets="Build" Properties="Configuration=XSRelease" Condition="$(Platform) != 'Windows'" />
<Exec Command="$(mdtool) setup pack $(BaseDir)/artifacts/$(Configuration)/addins/XamarinStudio/Eto.Addin.XamarinStudio.dll -d:$(BaseDir)/artifacts/$(Configuration)/addins" Condition="$(Platform) != 'Windows'"/>
<MSBuild Projects="$(XamarinStudioAddinProject)" Targets="Restore;Build;PackageAddin" Properties="Configuration=$(Configuration)" Condition="$(Platform) != 'Windows'" />

<!-- Visual Studio Addin -->
<Exec Command="$(NuGetCommand) restore $(VisualStudioAddinProject)" Condition="$(Platform) == 'Windows'" />
<MSBuild Projects="$(VisualStudioAddinProject)" Targets="Build" Properties="Configuration=$(Configuration)" Condition="$(Platform) == 'Windows'" />
<MSBuild Projects="$(VisualStudioAddinProject)" Targets="Restore;Build" Properties="Configuration=$(Configuration)" Condition="$(Platform) == 'Windows'" />
</Target>

<Target Name="Publish" DependsOnTargets="GetMainAssemblyVersion">
Expand Down
12 changes: 8 additions & 4 deletions build/build-addin.cmd
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
echo off
@echo off

rem set MSBUILD=c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
set MSBUILD="%ProgramFiles(x86)%\MSBuild\14.0\bin\MSBuild.exe"
WHERE msbuild > nul
IF %ERRORLEVEL% NEQ 0 (
ECHO msbuild not found. Run in the Developer Command Prompt for VS 2017
pause
)

%MSBUILD% -t:BuildAddins Build.proj
set BUILD_DIR=%~dp0build
msbuild -t:BuildAddins "%BUILD_DIR%\Build.proj"

pause
2 changes: 1 addition & 1 deletion build/build-addin.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/bin/bash

xbuild /t:BuildAddins /p:Platform=Mac Build.proj
msbuild /t:BuildAddins Build.proj
6 changes: 6 additions & 0 deletions build/nuspec/Eto.Forms.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,12 @@ https://github.com/picoe/Eto/wiki
</description>
<copyright>$copyright$</copyright>
<tags>cross platform gui ui framework desktop winforms wpf mac osx gtk eto.forms</tags>
<dependencies>
<group>
<dependency id="System.ComponentModel" version="4.3.0" />
<dependency id="System.Runtime.Serialization.Primitives" version="4.3.0" />
</group>
</dependencies>
</metadata>
<files>
<file src="artifacts\core\$configuration$\netstandard1.0\Eto.dll" target="lib\netstandard1.0" />
Expand Down
2 changes: 1 addition & 1 deletion build/nuspec/Eto.Platform.Gtk.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ On Linux, mono framework 2.10 or higher and gtk-sharp2 are required.
<dependencies>
<group>
<dependency id="Eto.Forms" version="[$version$]" />
<dependency id="GtkSharp" version="3.22.24.28" />
<dependency id="GtkSharp" version="3.22.24.29" />
</group>
</dependencies>
</metadata>
Expand Down
17 changes: 0 additions & 17 deletions build/packages.config

This file was deleted.

Loading

0 comments on commit 0a04d7d

Please sign in to comment.