diff options
author | Daniel Cazzulino <daniel@cazzulino.com> | 2015-05-27 18:24:23 +0300 |
---|---|---|
committer | Daniel Cazzulino <daniel@cazzulino.com> | 2015-05-27 20:09:28 +0300 |
commit | dd1efeb9fab32076c03b62e2c72cc9ec8add52e6 (patch) | |
tree | 951dd36fd3819b302cda34a7e668fa2aad109772 /rocks | |
parent | e68c4baebd66b7827ccd9f24fa699a3c39ddb474 (diff) |
Allow upstream consumers to override build settings.
Projects consuming and distributing Cecil in environments they
don't control (i.e. an addin inside VS or XS) risk having the
environment load an incompatible version of Cecil from another
addin or location (depending on the process/domain configuration
and the probing paths set up for the host).
To shield from this issue, XS has forked Cecil, changed its
assembly name and signing key, and now it has to maintain that
fork in sync with upstream. Others with similar requirements
(in particular, the Xamarin Visual Studio extension team now)
will need to do the same, with the added maintainability burden.
This commit provides a conditional import that allows products
that distribute Cecil to tweak settings that will affect its
build, without having to fork the project unnecessarily. The
Mono.Cecil.overrides file is a plain MSBuild file with additional
properties that can exist anywhere upwards from the current Cecil
repo clone path, making it very flexible even if the project
is submoduled.
It's imported before the C# targets so that changes to the
assembly name, signing key, etc. are properly overwritten before
the C# targets process them. This involved moving the existing
.settings files down in all .csproj files.
Fixes #216
Diffstat (limited to 'rocks')
-rw-r--r-- | rocks/Mono.Cecil.Rocks.csproj | 2 | ||||
-rw-r--r-- | rocks/Test/Mono.Cecil.Rocks.Tests.csproj | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/rocks/Mono.Cecil.Rocks.csproj b/rocks/Mono.Cecil.Rocks.csproj index 1fda5b0..79d3a49 100644 --- a/rocks/Mono.Cecil.Rocks.csproj +++ b/rocks/Mono.Cecil.Rocks.csproj @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\Mono.Cecil.settings" /> <PropertyGroup> <ProjectGuid>{FBC6DD59-D09D-499C-B03C-99C1C78FF2AC}</ProjectGuid> <RootNamespace>Mono.Cecil.Rocks</RootNamespace> @@ -25,5 +24,6 @@ <Name>Mono.Cecil</Name> </ProjectReference> </ItemGroup> + <Import Project="..\Mono.Cecil.settings" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> </Project>
\ No newline at end of file diff --git a/rocks/Test/Mono.Cecil.Rocks.Tests.csproj b/rocks/Test/Mono.Cecil.Rocks.Tests.csproj index 4c85ca7..bd03aa2 100644 --- a/rocks/Test/Mono.Cecil.Rocks.Tests.csproj +++ b/rocks/Test/Mono.Cecil.Rocks.Tests.csproj @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="..\..\Mono.Cecil.Tests.settings" /> <PropertyGroup> <ProjectGuid>{C6CFD7E1-B855-44DC-B4CE-9CD72984AF52}</ProjectGuid> <RootNamespace>Mono.Cecil.Rocks.Tests</RootNamespace> @@ -32,5 +31,6 @@ <Content Include="Resources\assemblies\decsec-att.dll" /> <Content Include="Resources\assemblies\decsec-xml.dll" /> </ItemGroup> + <Import Project="..\..\Mono.Cecil.Tests.settings" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> </Project>
\ No newline at end of file |