Skip to content

Commit

Permalink
Fix: Building a Reqnroll project on macOS ARM64 architecture (eg MacB…
Browse files Browse the repository at this point in the history
…ook M1) fails (#152) (#153)
  • Loading branch information
gasparnagy committed May 31, 2024
1 parent 6c90cb6 commit d15eee0
Show file tree
Hide file tree
Showing 8 changed files with 40 additions and 41 deletions.
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -367,8 +367,6 @@ Reqnroll.sln.GhostDoc.xml
Features.Generated/
GitExtensions.settings.backup

/Installer/NuGetPackages/Reqnroll.Tools.MsBuild.Generation/build/Reqnroll.Tools.MsBuild.Generation.targets
/Installer/NuGetPackages/Reqnroll.Tools.MsBuild.Generation/build/Reqnroll.Tools.MsBuild.Generation.props
/Tests/Reqnroll.MsBuildNetSdk.IntegrationTests/Features/dummy.feature.cs
*.feature.cs
*.AssemblyHooks.cs
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## Bug fixes:

* Fix: Building a Reqnroll project on macOS ARM64 architecture (eg MacBook M1) fails (#152)
* Fix: xUnit .NET framework Reqnroll projects might not run BeforeTestRun even with the fix for #146 (#152)

# v2.0.1 - 2024-05-29
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project>

<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<Import Project="..\..\..\Reqnroll.Tools.MsBuild.Generation\build\Reqnroll.Tools.MsBuild.Generation.props" />
<Import Project="..\..\..\Tests\Reqnroll.Specs\build/Reqnroll.Tools.MsBuild.Generation.OwnTests.props" />

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
Expand All @@ -23,11 +23,6 @@

<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />

<PropertyGroup>
<_Reqnroll_Needed_MSBuildGenerator Condition=" '$(MSBuildRuntimeType)' == 'Core'">$(Reqnroll_Core_Tools_TFM)</_Reqnroll_Needed_MSBuildGenerator>
<_Reqnroll_Needed_MSBuildGenerator Condition=" '$(MSBuildRuntimeType)' != 'Core'">$(Reqnroll_FullFramework_Tools_TFM)</_Reqnroll_Needed_MSBuildGenerator>
</PropertyGroup>

<Target Name="PreBuild">
<MSBuild Projects="..\..\..\Reqnroll.Tools.MsBuild.Generation\Reqnroll.Tools.MsBuild.Generation.csproj" ContinueOnError="false" Properties="TargetFramework=$(_Reqnroll_Needed_MSBuildGenerator)" />
<MSBuild Projects="..\Reqnroll.ExternalData.ReqnrollPlugin\Reqnroll.ExternalData.ReqnrollPlugin.csproj" ContinueOnError="false" Properties="TargetFramework=netstandard2.0" />
Expand All @@ -37,10 +32,6 @@
<ReqnrollGeneratorPlugins Include="$(MSBuildThisFileDirectory)..\Reqnroll.ExternalData.ReqnrollPlugin\bin\$(Configuration)\netstandard2.0\Reqnroll.ExternalData.ReqnrollPlugin.dll" />
</ItemGroup>

<PropertyGroup>
<_Reqnroll_TaskAssembly>..\..\Reqnroll.Tools.MsBuild.Generation\bin\$(Configuration)\$(_Reqnroll_Needed_MSBuildGenerator)\tasks\Reqnroll.Tools.MsBuild.Generation.dll</_Reqnroll_TaskAssembly>
</PropertyGroup>

<Import Project="..\..\..\Reqnroll.Tools.MsBuild.Generation\build\Reqnroll.Tools.MsBuild.Generation.targets" />
<!-- has to be before the PropertyGroup change-->
<PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project>

<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<Import Project="..\..\..\Reqnroll.Tools.MsBuild.Generation\build\Reqnroll.Tools.MsBuild.Generation.props" />
<Import Project="..\..\..\Tests\Reqnroll.Specs\build/Reqnroll.Tools.MsBuild.Generation.OwnTests.props" />

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
Expand Down Expand Up @@ -30,9 +30,6 @@
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />

<PropertyGroup>
<_Reqnroll_Needed_MSBuildGenerator Condition=" '$(MSBuildRuntimeType)' == 'Core'">$(Reqnroll_Core_Tools_TFM)</_Reqnroll_Needed_MSBuildGenerator>
<_Reqnroll_Needed_MSBuildGenerator Condition=" '$(MSBuildRuntimeType)' != 'Core'">$(Reqnroll_FullFramework_Tools_TFM)</_Reqnroll_Needed_MSBuildGenerator>

<_VerifyGeneratorPluginFramework Condition=" '$(MSBuildRuntimeType)' == 'Core'">netstandard2.0</_VerifyGeneratorPluginFramework>
<_VerifyGeneratorPluginFramework Condition=" '$(MSBuildRuntimeType)' != 'Core'">net462</_VerifyGeneratorPluginFramework>
</PropertyGroup>
Expand All @@ -52,10 +49,6 @@
<Folder Include="Features\" />
</ItemGroup>

<PropertyGroup>
<_Reqnroll_TaskAssembly>..\..\Reqnroll.Tools.MsBuild.Generation\bin\$(Configuration)\$(_Reqnroll_Needed_MSBuildGenerator)\tasks\Reqnroll.Tools.MsBuild.Generation.dll</_Reqnroll_TaskAssembly>
</PropertyGroup>

<Import Project="..\..\..\Reqnroll.Tools.MsBuild.Generation\build\Reqnroll.Tools.MsBuild.Generation.targets" />
<!-- has to be before the PropertyGroup change-->
<PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
<Project>
<!-- Using `TaskHostFactory` ensures that the task assembly will not be locked
at the end of the build. If it's omitted, that can cause build failures
in subsequent builds because the task assembly can't be written by the
next build.

Reference: https://learn.microsoft.com/en-us/visualstudio/msbuild/how-to-configure-targets-and-tasks?view=vs-2022#task-factories
-->
<UsingTask TaskName="Reqnroll.Tools.MsBuild.Generation.GenerateFeatureFileCodeBehindTask" AssemblyFile="$(_Reqnroll_TaskAssembly)" TaskFactory="TaskHostFactory" />
<UsingTask TaskName="Reqnroll.Tools.MsBuild.Generation.ReplaceTokenInFileTask" AssemblyFile="$(_Reqnroll_TaskAssembly)" TaskFactory="TaskHostFactory" />
<UsingTask TaskName="Reqnroll.Tools.MsBuild.Generation.GenerateFeatureFileCodeBehindTask" AssemblyFile="$(_Reqnroll_TaskAssembly)" />
<UsingTask TaskName="Reqnroll.Tools.MsBuild.Generation.ReplaceTokenInFileTask" AssemblyFile="$(_Reqnroll_TaskAssembly)" />

<PropertyGroup>
<_ReqnrollTasksImported>true</_ReqnrollTasksImported>
Expand Down
13 changes: 1 addition & 12 deletions Tests/Reqnroll.Specs/Reqnroll.Specs.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project>

<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<Import Project="../../Reqnroll.Tools.MsBuild.Generation/build/Reqnroll.Tools.MsBuild.Generation.props" />
<Import Project="build/Reqnroll.Tools.MsBuild.Generation.OwnTests.props" />

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
Expand Down Expand Up @@ -56,13 +56,6 @@

<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />

<PropertyGroup>
<_Reqnroll_Needed_MSBuildGenerator Condition=" '$(MSBuildRuntimeType)' == 'Core'">$(Reqnroll_Core_Tools_TFM)</_Reqnroll_Needed_MSBuildGenerator>
<_Reqnroll_Needed_MSBuildGenerator Condition=" '$(MSBuildRuntimeType)' != 'Core'">$(Reqnroll_FullFramework_Tools_TFM)</_Reqnroll_Needed_MSBuildGenerator>
</PropertyGroup>



<Target Name="WriteNuGetVersion" AfterTargets="GetBuildVersion" BeforeTargets="BeforeCompile" Condition="$(DesignTimeBuild) != 'true' OR '$(BuildingProject)' == 'true'">
<ReplaceTextInFileTask InputFile="$(ProjectDir)\\NuGetPackageVersion.template.cs" OutputFile="$(ProjectDir)\\NuGetPackageVersion.cs" TextToReplace="NUGET_VERSION" TextToReplaceWith="$(PackageVersion)" WriteOnlyWhenChanged="true" />

Expand All @@ -80,10 +73,6 @@
<ReqnrollGeneratorPlugins Include="$(MSBuildThisFileDirectory)..\..\Plugins\Reqnroll.xUnit.Generator.ReqnrollPlugin\bin\$(Configuration)\netstandard2.0\Reqnroll.xUnit.Generator.ReqnrollPlugin.dll" />
</ItemGroup>

<PropertyGroup>
<_Reqnroll_TaskAssembly>..\..\Reqnroll.Tools.MsBuild.Generation\bin\$(Configuration)\$(_Reqnroll_Needed_MSBuildGenerator)\tasks\Reqnroll.Tools.MsBuild.Generation.dll</_Reqnroll_TaskAssembly>
</PropertyGroup>

<Import Project="..\..\Reqnroll.Tools.MsBuild.Generation\build\Reqnroll.Tools.MsBuild.Generation.targets" /> <!-- has to be before the PropertyGroup change-->
<PropertyGroup>
<BuildDependsOn>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<Project TreatAsLocalProperty="TaskFolder;TaskAssembly">

<PropertyGroup>
<_ReqnrollTasksImported>true</_ReqnrollTasksImported>
</PropertyGroup>

<Import Project="../../../Reqnroll.Tools.MsBuild.Generation\build\Reqnroll.Tools.MsBuild.Generation.props" />

<PropertyGroup>
<_Reqnroll_Needed_MSBuildGenerator Condition=" '$(MSBuildRuntimeType)' == 'Core'">$(Reqnroll_Core_Tools_TFM)</_Reqnroll_Needed_MSBuildGenerator>
<_Reqnroll_Needed_MSBuildGenerator Condition=" '$(MSBuildRuntimeType)' != 'Core'">$(Reqnroll_FullFramework_Tools_TFM)</_Reqnroll_Needed_MSBuildGenerator>
</PropertyGroup>
<PropertyGroup>
<_Reqnroll_TaskAssembly>$(MSBuildThisFileDirectory)../../../Reqnroll.Tools.MsBuild.Generation/bin/$(Configuration)/$(_Reqnroll_Needed_MSBuildGenerator)/tasks/Reqnroll.Tools.MsBuild.Generation.dll</_Reqnroll_TaskAssembly>
</PropertyGroup>
<Import Project="Reqnroll.Tools.MsBuild.Generation.OwnTests.tasks" Condition="'$(_ReqnrollTasksOwnTestImported)' =='' " />

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<Project>
<!-- Using `TaskHostFactory` ensures that the task assembly will not be locked
at the end of the build. If it's omitted, that can cause build failures
in subsequent builds because the task assembly can't be written by the
next build.

Reference: https://learn.microsoft.com/en-us/visualstudio/msbuild/how-to-configure-targets-and-tasks?view=vs-2022#task-factories
-->
<UsingTask TaskName="Reqnroll.Tools.MsBuild.Generation.GenerateFeatureFileCodeBehindTask" AssemblyFile="$(_Reqnroll_TaskAssembly)" TaskFactory="TaskHostFactory" />
<UsingTask TaskName="Reqnroll.Tools.MsBuild.Generation.ReplaceTokenInFileTask" AssemblyFile="$(_Reqnroll_TaskAssembly)" TaskFactory="TaskHostFactory" />

<PropertyGroup>
<_ReqnrollTasksImported>true</_ReqnrollTasksImported>
<_ReqnrollTasksOwnTestImported>true</_ReqnrollTasksOwnTestImported>
</PropertyGroup>
</Project>

0 comments on commit d15eee0

Please sign in to comment.