Skip to content

Commit 87b73f0

Browse files
authored
[android][ios] Add SDK and workload to support library mode (#83487)
Introduces the experimental workload mobile-librarybuilder-experimental that supports building self-contained shared or static native libraries on iOS and Android. Once installed, the workload can be activated when the runtime identifier is android, ios, tvos, or maccatalyst based and the project contains the property <NativeLib>true</NativeLib>. NativeLib is a property NativeAOT uses to activate library mode and we will use that for consistency. The Microsoft.NET.Runtime.LibraryBuilder.Sdk is a new nuget package will contain all of the necessary msbuild props and targets that drive the whole library builder process.
1 parent 8cacc0f commit 87b73f0

30 files changed

+382
-139
lines changed

eng/testing/tests.android.targets

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,27 @@
44
</PropertyGroup>
55

66
<Import Project="$(MonoProjectRoot)\msbuild\common\LibraryBuilder.props" />
7-
<Import Project="$(MonoProjectRoot)\msbuild\android\build\AndroidApp.props" />
8-
<Import Project="$(MonoProjectRoot)\msbuild\android\build\AndroidApp.InTree.targets" />
7+
<Import Project="$(MonoProjectRoot)\msbuild\android\build\AndroidBuild.props" />
8+
<Import Project="$(MonoProjectRoot)\msbuild\android\build\AndroidBuild.InTree.targets" />
99

1010
<PropertyGroup>
11-
<AndroidBuildAppDependsOn>PrepareForAndroidBuildApp;$(AndroidBuildAppDependsOn);_CopyTestArchive</AndroidBuildAppDependsOn>
12-
<BundleTestAndroidAppDependsOn>AndroidBuildApp</BundleTestAndroidAppDependsOn>
11+
<AndroidBuildDependsOn>PrepareForAndroidBuild;$(AndroidBuildDependsOn);_CopyTestArchive</AndroidBuildDependsOn>
12+
<BundleTestAndroidAppDependsOn>AndroidBuild</BundleTestAndroidAppDependsOn>
1313
</PropertyGroup>
1414

1515
<!-- Target that kicks off the whole test build and run flow -->
1616
<Target Name="BundleTestAndroidApp" DependsOnTargets="$(BundleTestAndroidAppDependsOn)" />
1717

18-
<Target Name="PrepareForAndroidBuildApp">
18+
<Target Name="PrepareForAndroidBuild">
1919
<Error Condition="!Exists('$(MicrosoftNetCoreAppRuntimePackRidDir)')" Text="MicrosoftNetCoreAppRuntimePackRidDir=$(MicrosoftNetCoreAppRuntimePackRidDir) doesn't exist" />
2020

2121
<WriteLinesToFile File="$(PublishDir)xunit-excludes.txt" Lines="$(XunitExcludesTxtFileContent)" Overwrite="true" />
2222

2323
<PropertyGroup>
2424
<MainLibraryFileName Condition="'$(MainLibraryFileName)' == ''">AndroidTestRunner.dll</MainLibraryFileName>
2525

26-
<AndroidAppDir>$(PublishDir)</AndroidAppDir>
27-
<AndroidAppBundleDir>$(BundleDir)</AndroidAppBundleDir>
26+
<AndroidBuildDir>$(PublishDir)</AndroidBuildDir>
27+
<AndroidBundleDir>$(BundleDir)</AndroidBundleDir>
2828
</PropertyGroup>
2929

3030
<ItemGroup>

eng/testing/tests.ioslike.targets

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@
3232

3333
<Import Project="$(MonoProjectRoot)\msbuild\common\LibraryBuilder.props"
3434
Condition="'$(BuildTestsOn)' == 'local'" />
35-
<Import Project="$(MonoProjectRoot)\msbuild\apple\build\AppleApp.props"
35+
<Import Project="$(MonoProjectRoot)\msbuild\apple\build\AppleBuild.props"
3636
Condition="'$(BuildTestsOn)' == 'local'" />
37-
<Import Project="$(MonoProjectRoot)\msbuild\apple\build\AppleApp.InTree.targets"
37+
<Import Project="$(MonoProjectRoot)\msbuild\apple\build\AppleBuild.InTree.targets"
3838
Condition="'$(BuildTestsOn)' == 'local'" />
3939

4040
<PropertyGroup>
41-
<AppleBuildAppDependsOn>PrepareForAppleBuildApp;$(AppleBuildAppDependsOn);_CopyTestArchive</AppleBuildAppDependsOn>
41+
<AppleBuildDependsOn>PrepareForAppleBuildApp;$(AppleBuildDependsOn);_CopyTestArchive</AppleBuildDependsOn>
4242

43-
<BundleTestAppleAppDependsOn Condition="'$(BuildTestsOn)' == 'local'">AppleBuildApp</BundleTestAppleAppDependsOn>
43+
<BundleTestAppleAppDependsOn Condition="'$(BuildTestsOn)' == 'local'">AppleBuild</BundleTestAppleAppDependsOn>
4444
<BundleTestAppleAppDependsOn Condition="'$(BuildTestsOnHelix)' == 'true'">$(BundleTestAppleAppDependsOn);_BundleAOTTestAppleAppForHelix;_CopyTestArchive</BundleTestAppleAppDependsOn>
4545
</PropertyGroup>
4646

@@ -138,8 +138,8 @@
138138
<Optimized Condition="'$(Configuration)' == 'Release'">true</Optimized>
139139
<MainLibraryFileName Condition="'$(MainLibraryFileName)' == ''">AppleTestRunner.dll</MainLibraryFileName>
140140

141-
<AppleAppDir>$(PublishDir)</AppleAppDir>
142-
<AppleAppBundleDir>$(BundleDir)</AppleAppBundleDir>
141+
<AppleBuildDir>$(PublishDir)</AppleBuildDir>
142+
<AppleBundleDir>$(BundleDir)</AppleBundleDir>
143143
</PropertyGroup>
144144

145145
<PropertyGroup>

src/mono/msbuild/apple/build/AppleApp.InTree.props renamed to src/mono/msbuild/android/build/AndroidBuild.InTree.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project>
22
<!-- This depends on the root Directory.Build.props imported this file -->
33

4-
<Import Project="$(MSBuildThisFileDirectory)AppleApp.props" />
4+
<Import Project="$(MSBuildThisFileDirectory)AndroidBuild.props" />
55
<PropertyGroup>
66
<TargetFramework>$(NetCoreAppCurrent)</TargetFramework>
77
<EnableTargetingPackDownload>false</EnableTargetingPackDownload>

src/mono/msbuild/android/build/AndroidApp.InTree.targets renamed to src/mono/msbuild/android/build/AndroidBuild.InTree.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<UsingTask TaskName="RuntimeConfigParserTask" AssemblyFile="$(MonoTargetsTasksAssemblyPath)" />
66

77
<Import Project="..\..\common\LibraryBuilder.targets" />
8-
<Import Project="$(MSBuildThisFileDirectory)AndroidApp.targets" />
8+
<Import Project="$(MSBuildThisFileDirectory)AndroidBuild.targets" />
99

1010
<!-- TODO: this breaks runtime tests on Helix due to the file not being there for some reason. Once this is fixed we can remove the UpdateRuntimePack target here -->
1111
<!--<Import Project="$(RepositoryEngineeringDir)targetingpacks.targets" Condition="'$(TargetingpacksTargetsImported)' != 'true'"/>-->

src/mono/msbuild/android/build/AndroidApp.props renamed to src/mono/msbuild/android/build/AndroidBuild.props

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@
66

77
<_IsLibraryMode Condition="'$(NativeLib)' != ''">true</_IsLibraryMode>
88

9-
<AndroidBuildAppAfterThisTarget Condition="'$(AndroidBuildAppAfterThisTarget)' == ''">Publish</AndroidBuildAppAfterThisTarget>
10-
<AndroidBuildAppDependsOn>
9+
<AndroidBuildAfterThisTarget Condition="'$(AndroidBuildAfterThisTarget)' == ''">Publish</AndroidBuildAfterThisTarget>
10+
<AndroidBuildDependsOn>
1111
_InitializeCommonProperties;
12-
_BeforeAndroidBuildApp;
12+
_BeforeAndroidBuild;
1313
_AndroidResolveReferences;
1414
_AndroidPrepareProfiledAot;
15-
_AndroidAotCompileApp;
15+
_AndroidAotCompile;
1616
_BuildNativeLibrary;
1717
_AndroidGenerateAppBundle;
18-
_AfterAndroidBuildApp
19-
</AndroidBuildAppDependsOn>
18+
_AfterAndroidBuild
19+
</AndroidBuildDependsOn>
2020
</PropertyGroup>
2121
</Project>

src/mono/msbuild/android/build/AndroidApp.targets renamed to src/mono/msbuild/android/build/AndroidBuild.targets

Lines changed: 54 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,43 @@
11
<Project>
2-
<UsingTask TaskName="AndroidAppBuilderTask"
3-
AssemblyFile="$(AndroidAppBuilderTasksAssemblyPath)" />
4-
52
<PropertyGroup>
3+
<AndroidGenerateAppBundle Condition="'$(AndroidGenerateAppBundle)' == '' and '$(GenerateAppBundle)' != ''">$(GenerateAppBundle)</AndroidGenerateAppBundle>
64
<AndroidGenerateAppBundle Condition="'$(AndroidGenerateAppBundle)' == ''">true</AndroidGenerateAppBundle>
75
<!-- Unable to properly integrate nativelib into app build, so not supported for now. -->
86
<AndroidGenerateAppBundle Condition="'$(_IsLibraryMode)' == 'true'">false</AndroidGenerateAppBundle>
7+
8+
<EnableDefaultAssembliesToBundle Condition="'$(EnableDefaultAssembliesToBundle)' == ''">false</EnableDefaultAssembliesToBundle>
99
</PropertyGroup>
1010

11-
<Target Name="AndroidBuildApp" AfterTargets="$(AndroidBuildAppAfterThisTarget)" />
11+
<UsingTask Condition="'$(AndroidGenerateAppBundle)' == 'true'"
12+
TaskName="AndroidAppBuilderTask"
13+
AssemblyFile="$(AndroidAppBuilderTasksAssemblyPath)" />
14+
15+
<Target Name="AndroidBuild" AfterTargets="$(AndroidBuildAfterThisTarget)" />
1216

13-
<Target Name="_AndroidCoreBuild" BeforeTargets="AndroidBuildApp" DependsOnTargets="$(AndroidBuildAppDependsOn)" />
17+
<Target Name="_AndroidCoreBuild" BeforeTargets="AndroidBuild" DependsOnTargets="$(AndroidBuildDependsOn)" />
1418

1519
<Target Name="_InitializeCommonProperties">
1620
<Error Condition="'$(IntermediateOutputPath)' == ''" Text="%24(IntermediateOutputPath) property needs to be set" />
1721

1822
<PropertyGroup>
1923
<_MobileIntermediateOutputPath>$([MSBuild]::NormalizeDirectory($(IntermediateOutputPath), 'mobile'))</_MobileIntermediateOutputPath>
24+
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">$(PlatformTarget)</TargetArchitecture>
2025
</PropertyGroup>
2126

2227
<PropertyGroup>
23-
<BundleDir>$(AndroidAppBundleDir)</BundleDir>
24-
<_MonoHeaderPath>$(MicrosoftNetCoreAppRuntimePackNativeDir)include\mono-2.0</_MonoHeaderPath>
25-
<_AotModuleTablePath>$(AndroidAppBundleDir)\modules.c</_AotModuleTablePath>
28+
<MicrosoftNetCoreAppRuntimePackDir Condition="'$(MicrosoftNetCoreAppRuntimePackDir)' == ''">%(ResolvedRuntimePack.PackageDirectory)</MicrosoftNetCoreAppRuntimePackDir>
29+
<MicrosoftNetCoreAppRuntimePackRidDir Condition="'$(MicrosoftNetCoreAppRuntimePackRidDir)' == ''">$([MSBuild]::NormalizeDirectory($(MicrosoftNetCoreAppRuntimePackDir), 'runtimes', '$(TargetOS)-$(TargetArchitecture)'))</MicrosoftNetCoreAppRuntimePackRidDir>
30+
<MicrosoftNetCoreAppRuntimePackRidDir>$([MSBuild]::NormalizeDirectory($(MicrosoftNetCoreAppRuntimePackRidDir)))</MicrosoftNetCoreAppRuntimePackRidDir>
31+
<MicrosoftNetCoreAppRuntimePackRidNativeDir>$([MSBuild]::NormalizeDirectory($(MicrosoftNetCoreAppRuntimePackRidDir), 'native'))</MicrosoftNetCoreAppRuntimePackRidNativeDir>
32+
</PropertyGroup>
33+
34+
<PropertyGroup>
35+
<AndroidBuildDir Condition="'$(AndroidBuildDir)' == ''">$([MSBuild]::NormalizeDirectory($(PublishDir)))</AndroidBuildDir>
36+
<AndroidBundleDir Condition="'$(AndroidBundleDir)' == ''">$([MSBuild]::NormalizeDirectory('$(OutDir)', 'Bundle'))</AndroidBundleDir>
37+
38+
<BundleDir>$(AndroidBundleDir)</BundleDir>
39+
<_MonoHeaderPath>$([MSBuild]::NormalizeDirectory($(MicrosoftNetCoreAppRuntimePackRidNativeDir), 'include', 'mono-2.0'))</_MonoHeaderPath>
40+
<_AotModuleTablePath>$(AndroidBundleDir)\modules.c</_AotModuleTablePath>
2641
</PropertyGroup>
2742

2843
<PropertyGroup>
@@ -40,36 +55,41 @@
4055
Include="$(RuntimeComponents)" />
4156

4257
<_RuntimeLibraries
43-
Include="$(AndroidAppDir)\*-stub-static.a" />
58+
Include="$(AndroidBuildDir)\*-stub-static.a" />
4459
<_RuntimeLibraries
45-
Include="$(AndroidAppDir)\*.a"
46-
Exclude="$(AndroidAppDir)\*-static.a" />
60+
Include="$(AndroidBuildDir)\*.a"
61+
Exclude="$(AndroidBuildDir)\*-static.a" />
4762

48-
<_RuntimeLibraries Remove="$(AndroidAppDir)\libmono-component-%(_UsedComponents.Identity)-stub-static.a" />
49-
<_RuntimeLibraries Include="$(AndroidAppDir)\libmono-component-%(_UsedComponents.Identity)-static.a" />
63+
<_RuntimeLibraries Remove="$(AndroidBuildDir)\libmono-component-%(_UsedComponents.Identity)-stub-static.a" />
64+
<_RuntimeLibraries Include="$(AndroidBuildDir)\libmono-component-%(_UsedComponents.Identity)-static.a" />
5065
</ItemGroup>
5166
</Target>
5267

53-
<Target Name="_BeforeAndroidBuildApp">
68+
<Target Name="_BeforeAndroidBuild">
5469
<PropertyGroup>
55-
<_AndroidRuntimeConfigFilePath Condition="'$(_AndroidRuntimeConfigFilePath)' == ''">$([MSBuild]::NormalizePath($(AndroidAppDir), '$(AssemblyName).runtimeconfig.json'))</_AndroidRuntimeConfigFilePath>
56-
<_ParsedRuntimeConfigFilePath Condition="'$(_ParsedRuntimeConfigFilePath)' == ''">$([MSBuild]::NormalizePath($(AndroidAppDir), 'runtimeconfig.bin'))</_ParsedRuntimeConfigFilePath>
70+
<_AndroidRuntimeConfigFilePath Condition="'$(_AndroidRuntimeConfigFilePath)' == ''">$([MSBuild]::NormalizePath($(AndroidBuildDir), '$(AssemblyName).runtimeconfig.json'))</_AndroidRuntimeConfigFilePath>
71+
<_ParsedRuntimeConfigFilePath Condition="'$(_ParsedRuntimeConfigFilePath)' == ''">$([MSBuild]::NormalizePath($(AndroidBuildDir), 'runtimeconfig.bin'))</_ParsedRuntimeConfigFilePath>
5772
</PropertyGroup>
5873

59-
<RemoveDir Directories="$(AndroidAppBundleDir)" />
74+
<RemoveDir Directories="$(AndroidBundleDir)" />
6075
</Target>
6176

6277
<Target Name="_AndroidResolveReferences">
78+
<ItemGroup Condition="'$(EnableDefaultAssembliesToBundle)' == 'true'">
79+
<AndroidAssembliesToBundle Remove="@(AndroidAssembliesToBundle)" />
80+
<AndroidAssembliesToBundle Include="$(PublishDir)\**\*.dll" />
81+
</ItemGroup>
82+
6383
<ItemGroup>
64-
<AppAssembliesInternal Remove="@(AppAssembliesInternal)" />
65-
<AppAssembliesInternal Include="@(AndroidAssembliesToBundle)">
84+
<_AssembliesToBundleInternal Remove="@(_AssembliesToBundleInternal)" />
85+
<_AssembliesToBundleInternal Include="@(AndroidAssembliesToBundle)">
6686
<_InternalForceInterpret>%(AndroidAssembliesToBundle._InternalForceInterpret)</_InternalForceInterpret>
6787
<_IsNative>%(AndroidAssembliesToBundle._IsNative)</_IsNative>
68-
</AppAssembliesInternal>
88+
</_AssembliesToBundleInternal>
6989
</ItemGroup>
7090
</Target>
7191

72-
<Target Name="_AndroidBeforeAotCompileApp">
92+
<Target Name="_AndroidBeforeAotCompile">
7393
<PropertyGroup>
7494
<_AOTMode Condition="'$(UseMonoJustInterp)' != 'true'">Normal</_AOTMode>
7595
<_AOTMode Condition="'$(UseMonoJustInterp)' == 'true'">JustInterp</_AOTMode>
@@ -107,22 +127,22 @@
107127
</PropertyGroup>
108128

109129
<ItemGroup>
110-
<_AotInputAssemblies Include="@(AppAssembliesInternal)"
111-
Condition="'%(AppAssembliesInternal._InternalForceInterpret)' != 'true'">
130+
<_AotInputAssemblies Include="@(_AssembliesToBundleInternal)"
131+
Condition="'%(_AssembliesToBundleInternal._InternalForceInterpret)' != 'true'">
112132
<AotArguments>$(AotArguments)</AotArguments>
113133
<ProcessArguments>$(ProcessArguments)</ProcessArguments>
114134
</_AotInputAssemblies>
115135

116-
<_AOT_InternalForceInterpretAssemblies Include="@(AppAssembliesInternal->WithMetadataValue('_InternalForceInterpret', 'true'))" />
117-
<AppAssembliesInternal Remove="@(AppAssembliesInternal)" />
136+
<_AOT_InternalForceInterpretAssemblies Include="@(_AssembliesToBundleInternal->WithMetadataValue('_InternalForceInterpret', 'true'))" />
137+
<_AssembliesToBundleInternal Remove="@(_AssembliesToBundleInternal)" />
118138
</ItemGroup>
119139

120140
<MakeDir Directories="$(_MobileIntermediateOutputPath)" />
121141
</Target>
122142

123143
<Target Name="_AndroidPrepareProfiledAot"
124144
Condition="'$(NetTraceFilePath)' != '' and '$(ForceFullAOT)' != 'true'"
125-
DependsOnTargets="_AndroidBeforeAotCompileApp">
145+
DependsOnTargets="_AndroidBeforeAotCompile">
126146
<PropertyGroup>
127147
<_ToolPath>$([System.IO.Path]::GetDirectoryName('$(DotnetPgoToolPath)'))</_ToolPath>
128148
</PropertyGroup>
@@ -136,9 +156,9 @@
136156
</NetTraceToMibcConverter>
137157
</Target>
138158

139-
<Target Name="_AndroidAotCompileApp"
159+
<Target Name="_AndroidAotCompile"
140160
Condition="'$(RunAOTCompilation)' == 'true'"
141-
DependsOnTargets="_AndroidBeforeAotCompileApp">
161+
DependsOnTargets="_AndroidBeforeAotCompile">
142162

143163
<PropertyGroup Condition="'$(_IsLibraryMode)' == 'true'">
144164
<_EnableUnmanagedCallersOnlyMethodsExport>true</_EnableUnmanagedCallersOnlyMethodsExport>
@@ -175,11 +195,11 @@
175195
OutputType="AsmOnly"
176196
UseAotDataFile="$(_UseAotDataFile)"
177197
UseLLVM="$(MonoEnableLLVM)">
178-
<Output TaskParameter="CompiledAssemblies" ItemName="AppAssembliesInternal" />
198+
<Output TaskParameter="CompiledAssemblies" ItemName="_AssembliesToBundleInternal" />
179199
</MonoAOTCompiler>
180200

181201
<ItemGroup>
182-
<AppAssembliesInternal Include="@(_AOT_InternalForceInterpretAssemblies)" />
202+
<_AssembliesToBundleInternal Include="@(_AOT_InternalForceInterpretAssemblies)" />
183203
</ItemGroup>
184204
</Target>
185205

@@ -194,8 +214,8 @@
194214
</ItemGroup>
195215

196216
<AndroidAppBuilderTask
197-
AppDir="$(AndroidAppDir)"
198-
Assemblies="@(AppAssembliesInternal)"
217+
AppDir="$(AndroidBuildDir)"
218+
Assemblies="@(_AssembliesToBundleInternal)"
199219
DiagnosticPorts="$(DiagnosticPorts)"
200220
EnvironmentVariables="@(AndroidEnv)"
201221
ExtraLinkerArguments="@(ExtraAppLinkerArgs)"
@@ -206,7 +226,7 @@
206226
MainLibraryFileName="$(MainLibraryFileName)"
207227
MonoRuntimeHeaders="$(_MonoHeaderPath)"
208228
NativeDependencies="@(_NativeDependencies)"
209-
OutputDir="$(AndroidAppBundleDir)"
229+
OutputDir="$(AndroidBundleDir)"
210230
ProjectName="$(AssemblyName)"
211231
RuntimeComponents="$(RuntimeComponents)"
212232
RuntimeIdentifier="$(RuntimeIdentifier)"
@@ -220,7 +240,7 @@
220240
<Message Importance="High" Text="Apk: $(ApkBundlePath)"/>
221241
</Target>
222242

223-
<Target Name="_AfterAndroidBuildApp">
243+
<Target Name="_AfterAndroidBuild">
224244

225245
</Target>
226246

src/mono/msbuild/android/build/AndroidApp.InTree.props renamed to src/mono/msbuild/apple/build/AppleBuild.InTree.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project>
22
<!-- This depends on the root Directory.Build.props imported this file -->
33

4-
<Import Project="$(MSBuildThisFileDirectory)AndroidApp.props" />
4+
<Import Project="$(MSBuildThisFileDirectory)AppleBuild.props" />
55
<PropertyGroup>
66
<TargetFramework>$(NetCoreAppCurrent)</TargetFramework>
77
<EnableTargetingPackDownload>false</EnableTargetingPackDownload>

src/mono/msbuild/apple/build/AppleApp.InTree.targets renamed to src/mono/msbuild/apple/build/AppleBuild.InTree.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
</PropertyGroup>
1010

1111
<Import Project="..\..\common\LibraryBuilder.targets" />
12-
<Import Project="$(MSBuildThisFileDirectory)AppleApp.targets" />
12+
<Import Project="$(MSBuildThisFileDirectory)AppleBuild.targets" />
1313

1414
<!-- Use local runtime pack -->
1515
<Target Name="UpdateRuntimePack" AfterTargets="ResolveFrameworkReferences">

src/mono/msbuild/apple/build/AppleApp.LocalBuild.props renamed to src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!--
2-
AppleApp.LocalBuild* files are meant for projects that want to use
2+
AppleBuild.LocalBuild* files are meant for projects that want to use
33
a local build of `dotnet/runtime` repo.
44
55
Two ways to use this:
@@ -19,7 +19,7 @@
1919
$(AppleBuildSupportDir) - directory which has all the tasks, targets, and runtimepack
2020
-->
2121
<Project>
22-
<Import Project="$(MSBuildThisFileDirectory)AppleApp.props" />
22+
<Import Project="$(MSBuildThisFileDirectory)AppleBuild.props" />
2323

2424
<PropertyGroup>
2525
<_NetCoreAppCurrent>net8.0</_NetCoreAppCurrent>

src/mono/msbuild/apple/build/AppleApp.LocalBuild.targets renamed to src/mono/msbuild/apple/build/AppleBuild.LocalBuild.targets

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<!--
2-
AppleApp.LocalBuild* files are meant for projects that want to use
2+
AppleBuild.LocalBuild* files are meant for projects that want to use
33
a local build of `dotnet/runtime` repo.
44
55
Two ways to use this:
@@ -20,7 +20,7 @@
2020
$(AppleBuildSupportDir)
2121
-->
2222
<Project>
23-
<Import Project="$(MSBuildThisFileDirectory)AppleApp.targets" />
23+
<Import Project="$(MSBuildThisFileDirectory)AppleBuild.targets" />
2424
<UsingTask TaskName="MonoAOTCompiler" AssemblyFile="$(MonoAOTCompilerTasksAssemblyPath)" />
2525
<UsingTask TaskName="RuntimeConfigParserTask" AssemblyFile="$(MonoTargetsTasksAssemblyPath)" />
2626

src/mono/msbuild/apple/build/AppleApp.props renamed to src/mono/msbuild/apple/build/AppleBuild.props

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<!-- iOS/tvOS device + arm64 simulators need to AOT -->
33
<PropertyGroup Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'tvos' or (('$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'tvossimulator') And '$(TargetArchitecture)' == 'arm64')">
44
<RunAOTCompilation Condition="'$(RunAOTCompilation)' == ''">true</RunAOTCompilation>
5-
<iOSLikeDedup>true</iOSLikeDedup>
5+
<iOSLikeDedup Condition="'$(iOSLikeDedup)' == ''">true</iOSLikeDedup>
66
</PropertyGroup>
77

88
<!-- iOS/tvOS arm64 simulators do not support JIT, so force interpreter fallback, devices should FullAOT -->
@@ -18,17 +18,16 @@
1818
<!--<ShouldILStrip Condition="'$(RunAOTCompilation)' == 'true' and '$(MonoForceInterpreter)' != 'true'">true</ShouldILStrip>-->
1919

2020
<_IsLibraryMode Condition="'$(NativeLib)' != ''">true</_IsLibraryMode>
21-
<_NativeLibraryTarget Condition="'$(_IsLibraryMode)' == 'true'">_BuildNativeLibrary;</_NativeLibraryTarget>
2221

23-
<AppleBuildAppAfterThisTarget Condition="'$(AppleBuildAppAfterThisTarget)' == ''">Publish</AppleBuildAppAfterThisTarget>
24-
<AppleBuildAppDependsOn>
22+
<AppleBuildAfterThisTarget Condition="'$(AppleBuildAfterThisTarget)' == ''">Publish</AppleBuildAfterThisTarget>
23+
<AppleBuildDependsOn>
2524
_InitializeCommonProperties;
26-
_BeforeAppleBuildApp;
25+
_BeforeAppleBuild;
2726
_AppleResolveReferences;
28-
_AppleAotCompileApp;
29-
$(_NativeLibraryTarget)
27+
_AppleAotCompile;
28+
_BuildNativeLibrary;
3029
_AppleGenerateAppBundle;
31-
_AfterAppleBuildApp
32-
</AppleBuildAppDependsOn>
30+
_AfterAppleBuild
31+
</AppleBuildDependsOn>
3332
</PropertyGroup>
3433
</Project>

0 commit comments

Comments
 (0)