Skip to content

Commit 2f3e376

Browse files
[Xamarin.Android.Build.Tasks] remove checks for $(UsingAndroidNETSdk)
In .NET 6+, `$(UsingAndroidNETSdk)` is always `true` as the general identifier that this project is .NET and not Xamarin.Android. We used this flag as a way to share code between .NET Android and Xamarin.Android. * Remove checks for `$(UsingAndroidNETSdk)` * No longer need to pass in this value to MSBuilds tasks or other C# classes * Checks if `true` leave in place, and remove the condition * Checks if `false` can just be completely removed now In a future PR, we may also be able to remove `$(_AndroidIsBindingProject)`, which is slightly related. We removed the "binding project" as a concept in .NET 6+. I left the `$(UsingAndroidNETSdk)` property in place, even though it is not used in these targets. Other general MSBuild targets may continue to use it in perpetuity.
1 parent 2f19238 commit 2f3e376

File tree

10 files changed

+36
-162
lines changed

10 files changed

+36
-162
lines changed

src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/FixAbstractMethodsStep.cs

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -113,23 +113,6 @@ internal bool FixAbstractMethods (AssemblyDefinition assembly)
113113
}
114114
#endif // !ILLINK
115115

116-
readonly HashSet<string> warnedAssemblies = new (StringComparer.Ordinal);
117-
118-
internal void CheckAppDomainUsage (AssemblyDefinition assembly, Action<string> warn)
119-
{
120-
if (!warnedAssemblies.Add (assembly.Name.Name))
121-
return;
122-
if (!assembly.MainModule.HasTypeReference ("System.AppDomain"))
123-
return;
124-
125-
foreach (var mr in assembly.MainModule.GetMemberReferences ()) {
126-
if (mr.ToString ().Contains ("System.AppDomain System.AppDomain::CreateDomain")) {
127-
warn (string.Format (CultureInfo.CurrentCulture, Resources.XA2000, assembly));
128-
break;
129-
}
130-
}
131-
}
132-
133116
bool IsProductOrSdkAssembly (AssemblyDefinition assembly) =>
134117
IsProductOrSdkAssembly (assembly.Name.Name);
135118

src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.AvailableItems.targets

Lines changed: 14 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -29,32 +29,15 @@ This item group populates the Build Action drop-down in IDEs.
2929
<AvailableItemName Include="ProjectReference" />
3030
<AvailableItemName Include="AndroidManifestOverlay" />
3131
</ItemGroup>
32-
<!-- Legacy, non-binding projects -->
33-
<ItemGroup Condition=" '$(_AndroidIsBindingProject)' != 'true' and '$(UsingAndroidNETSdk)' != 'true' ">
34-
<AvailableItemName Include="AndroidAarLibrary" />
35-
<AvailableItemName Include="AndroidJavaLibrary" />
36-
</ItemGroup>
37-
<!-- Legacy, non-application projects -->
38-
<ItemGroup Condition=" '$(AndroidApplication)' != 'true' and '$(UsingAndroidNETSdk)' != 'true' ">
39-
<AvailableItemName Include="EmbeddedNativeLibrary" />
40-
</ItemGroup>
41-
<!-- Legacy binding projects or .NET 6 -->
42-
<ItemGroup Condition=" '$(_AndroidIsBindingProject)' == 'true' or '$(UsingAndroidNETSdk)' == 'true' ">
32+
33+
<!-- All project types -->
34+
<ItemGroup>
4335
<AvailableItemName Include="TransformFile" />
4436
<AvailableItemName Include="LibraryProjectProperties" />
4537
<AvailableItemName Include="JavaDocIndex" />
4638
<AvailableItemName Include="JavaDocJar" />
4739
<AvailableItemName Include="JavaSourceJar" />
4840
</ItemGroup>
49-
<!-- Legacy binding projects -->
50-
<ItemGroup Condition=" '$(_AndroidIsBindingProject)' == 'true' and '$(UsingAndroidNETSdk)' != 'true' ">
51-
<AvailableItemName Include="EmbeddedJar" />
52-
<AvailableItemName Include="EmbeddedNativeLibrary" />
53-
<AvailableItemName Include="EmbeddedReferenceJar" />
54-
<AvailableItemName Include="InputJar" />
55-
<AvailableItemName Include="ReferenceJar" />
56-
<AvailableItemName Include="LibraryProjectZip" />
57-
</ItemGroup>
5841

5942
<!-- Default item metadata -->
6043
<ItemDefinitionGroup>
@@ -64,13 +47,13 @@ This item group populates the Build Action drop-down in IDEs.
6447
</AndroidResource>
6548
<AndroidLibrary>
6649
<Bind>true</Bind>
67-
<Pack Condition=" '$(UsingAndroidNETSdk)' == 'true' ">true</Pack>
50+
<Pack>true</Pack>
6851
</AndroidLibrary>
6952
<LibraryProjectZip>
70-
<Pack Condition=" '$(UsingAndroidNETSdk)' == 'true' ">true</Pack>
53+
<Pack>true</Pack>
7154
</LibraryProjectZip>
7255
<AndroidJavaSource>
73-
<Bind Condition=" '$(UsingAndroidNETSdk)' == 'true' ">true</Bind>
56+
<Bind>true</Bind>
7457
</AndroidJavaSource>
7558
<AndroidAarLibrary>
7659
<!-- NOTE: .aar items should skip %(AndroidSkipResourceProcessing) by default -->
@@ -80,38 +63,26 @@ This item group populates the Build Action drop-down in IDEs.
8063

8164
<!-- Convert @(AndroidLibrary) to the legacy item group names -->
8265
<Target Name="_CategorizeAndroidLibraries">
83-
<!-- Applications, or legacy class libraries -->
84-
<ItemGroup Condition=" '$(AndroidApplication)' == 'true' or ('$(_AndroidIsBindingProject)' != 'true' and '$(UsingAndroidNETSdk)' != 'true') ">
66+
<!-- Applications -->
67+
<ItemGroup Condition=" '$(AndroidApplication)' == 'true' ">
8568
<AndroidAarLibrary Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.aar' " />
8669
<AndroidJavaLibrary Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.jar' " />
70+
<InputJar Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.jar' and '%(AndroidLibrary.Bind)' == 'true' " />
8771
</ItemGroup>
88-
<!-- Any library that is not an app -->
72+
<!-- Class libraries, not an application -->
8973
<ItemGroup Condition=" '$(AndroidApplication)' != 'true' ">
9074
<EmbeddedNativeLibrary Include="@(AndroidNativeLibrary)" />
91-
</ItemGroup>
92-
<!-- Any .NET 6 project -->
93-
<ItemGroup Condition=" '$(UsingAndroidNETSdk)' == 'true' ">
94-
<LibraryProjectZip Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.aar' and '%(AndroidLibrary.Bind)' == 'true' " />
95-
</ItemGroup>
96-
<!-- .NET 6 application projects -->
97-
<ItemGroup Condition=" '$(AndroidApplication)' == 'true' and '$(UsingAndroidNETSdk)' == 'true' ">
98-
<InputJar Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.jar' and '%(AndroidLibrary.Bind)' == 'true' " />
99-
</ItemGroup>
100-
<!-- .NET 6 class libraries-->
101-
<ItemGroup Condition=" '$(AndroidApplication)' != 'true' and '$(UsingAndroidNETSdk)' == 'true' ">
10275
<AndroidAarLibrary Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.aar' and '%(AndroidLibrary.Bind)' != 'true' " />
10376
<AndroidJavaLibrary Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.jar' and '%(AndroidLibrary.Bind)' != 'true' " />
10477
<EmbeddedJar Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.jar' and '%(AndroidLibrary.Bind)' == 'true' " />
105-
<!-- .aar files should be copied to $(OutputPath) in .NET 6-->
78+
<!-- .aar files should be copied to $(OutputPath) in .NET 6+ -->
10679
<None Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.aar' " TfmSpecificPackageFile="%(AndroidLibrary.Pack)" Pack="false" CopyToOutputDirectory="PreserveNewest" Link="%(Filename)%(Extension)" />
10780
<!-- @(LibraryProjectZip) items that are not in @(AndroidLibrary) -->
10881
<None Include="@(LibraryProjectZip)" Exclude="@(AndroidLibrary)" TfmSpecificPackageFile="%(LibraryProjectZip.Pack)" Pack="false" CopyToOutputDirectory="PreserveNewest" Link="%(Filename)%(Extension)" />
10982
</ItemGroup>
110-
<!-- Legacy binding projects -->
111-
<ItemGroup Condition=" '$(_AndroidIsBindingProject)' == 'true' and '$(UsingAndroidNETSdk)' != 'true' ">
112-
<LibraryProjectZip Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.aar' and '%(AndroidLibrary.Bind)' == 'true' " />
113-
<EmbeddedJar Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.jar' and '%(AndroidLibrary.Bind)' == 'true' " />
114-
<EmbeddedReferenceJar Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.jar' and '%(AndroidLibrary.Bind)' != 'true' " />
83+
<!-- All projects -->
84+
<ItemGroup>
85+
<LibraryProjectZip Include="@(AndroidLibrary)" Condition=" '%(AndroidLibrary.Extension)' == '.aar' and '%(AndroidLibrary.Bind)' == 'true' " />
11586
</ItemGroup>
11687
</Target>
11788

src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.Core.targets

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,8 @@ It is shared between "legacy" binding projects and .NET 5 projects.
2020
<GeneratedOutputPath Condition=" '$(GeneratedOutputPath)' == '' ">$(IntermediateOutputPath)generated\</GeneratedOutputPath>
2121
<AndroidJavadocVerbosity Condition=" '$(AndroidJavadocVerbosity)' == '' ">intellisense</AndroidJavadocVerbosity>
2222
<ApiOutputFile Condition=" '$(ApiOutputFile)' == '' ">$(IntermediateOutputPath)api.xml</ApiOutputFile>
23-
<ClassParseToolExe Condition=" '$(UsingAndroidNETSdk)' == 'true' ">class-parse.dll</ClassParseToolExe>
24-
<ClassParseToolExe Condition=" '$(ClassParseToolExe)' == '' ">class-parse.exe</ClassParseToolExe>
25-
<BindingsGeneratorToolExe Condition=" '$(UsingAndroidNETSdk)' == 'true' ">generator.dll</BindingsGeneratorToolExe>
26-
<BindingsGeneratorToolExe Condition=" '$(BindingsGeneratorToolExe)' == '' ">generator.exe</BindingsGeneratorToolExe>
23+
<ClassParseToolExe Condition=" '$(ClassParseToolExe)' == '' ">class-parse.dll</ClassParseToolExe>
24+
<BindingsGeneratorToolExe Condition=" '$(BindingsGeneratorToolExe)' == '' ">generator.dll</BindingsGeneratorToolExe>
2725
<JavadocToMdocToolExe Condition=" '$(JavadocToMdocToolExe)' == '' ">javadoc-to-mdoc.exe</JavadocToMdocToolExe>
2826
<_GeneratorStampFile>$(_AndroidStampDirectory)generator.stamp</_GeneratorStampFile>
2927
</PropertyGroup>

src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.DefaultProperties.targets

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
<MonoAndroidAssetsPrefix Condition=" '$(MonoAndroidAssetsPrefix)' == '' ">Assets</MonoAndroidAssetsPrefix>
99
<AndroidResgenClass Condition=" '$(AndroidResgenClass)' == '' ">Resource</AndroidResgenClass>
1010
<AndroidEnableSGenConcurrent Condition=" '$(AndroidEnableSGenConcurrent)' == '' ">true</AndroidEnableSGenConcurrent>
11-
<AndroidHttpClientHandlerType Condition=" '$(AndroidHttpClientHandlerType)' == '' and '$(UsingAndroidNETSdk)' == 'true' ">Xamarin.Android.Net.AndroidMessageHandler</AndroidHttpClientHandlerType>
12-
<AndroidHttpClientHandlerType Condition=" '$(AndroidHttpClientHandlerType)' == '' and '$(UsingAndroidNETSdk)' != 'true' ">Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
11+
<AndroidHttpClientHandlerType Condition=" '$(AndroidHttpClientHandlerType)' == '' ">Xamarin.Android.Net.AndroidMessageHandler</AndroidHttpClientHandlerType>
1312
<AndroidGenerateResourceDesigner Condition=" '$(AndroidGenerateResourceDesigner)' == '' ">true</AndroidGenerateResourceDesigner>
1413
<AndroidUseDesignerAssembly Condition=" '$(AndroidUseDesignerAssembly)' == '' ">true</AndroidUseDesignerAssembly>
1514
<AndroidUseIntermediateDesignerFile Condition=" '$(AndroidUseDesignerAssembly)' == 'True' ">false</AndroidUseIntermediateDesignerFile>

src/Xamarin.Android.Build.Tasks/Tasks/GeneratePackageManagerJava.cs

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ public class GeneratePackageManagerJava : AndroidTask
7979
public string TlsProvider { get; set; }
8080
public string AndroidSequencePointsMode { get; set; }
8181
public bool EnableSGenConcurrent { get; set; }
82-
public bool UsingAndroidNETSdk { get; set; }
8382

8483
[Output]
8584
public string BuildId { get; set; }
@@ -195,7 +194,7 @@ void AddEnvironment ()
195194
BrokenExceptionTransitions = false,
196195
UsesAssemblyPreload = EnablePreloadAssembliesDefault,
197196
};
198-
environmentParser.Parse (Environments, sequencePointsMode, UsingAndroidNETSdk, Log);
197+
environmentParser.Parse (Environments, sequencePointsMode, Log);
199198

200199
foreach (string line in environmentParser.EnvironmentVariableLines) {
201200
AddEnvironmentVariableLine (line);
@@ -219,13 +218,6 @@ void AddEnvironment ()
219218
AddEnvironmentVariable ("XA_HTTP_CLIENT_HANDLER_TYPE", HttpClientHandlerType.Trim ());
220219
}
221220

222-
if (!UsingAndroidNETSdk && !environmentParser.HaveTlsProvider) {
223-
if (TlsProvider == null)
224-
AddEnvironmentVariable (defaultTlsProvider[0], defaultTlsProvider[1]);
225-
else
226-
AddEnvironmentVariable ("XA_TLS_PROVIDER", TlsProvider.Trim ());
227-
}
228-
229221
if (!environmentParser.HaveMonoGCParams) {
230222
if (EnableSGenConcurrent)
231223
AddEnvironmentVariable ("MONO_GC_PARAMS", "major=marksweep-conc");
@@ -355,19 +347,6 @@ void AddEnvironment ()
355347
}
356348
}
357349

358-
// In "classic" Xamarin.Android, we need to add libaot-*.dll.so files
359-
if (!UsingAndroidNETSdk && usesMonoAOT) {
360-
foreach (var assembly in ResolvedAssemblies) {
361-
string name = $"libaot-{Path.GetFileNameWithoutExtension (assembly.ItemSpec)}.dll.so";
362-
if (seenNativeLibraryNames.Contains (name)) {
363-
continue;
364-
}
365-
366-
seenNativeLibraryNames.Add (name);
367-
uniqueNativeLibraries.Add (new TaskItem (name));
368-
}
369-
}
370-
371350
bool haveRuntimeConfigBlob = !String.IsNullOrEmpty (RuntimeConfigBinFilePath) && File.Exists (RuntimeConfigBinFilePath);
372351
var appConfState = BuildEngine4.GetRegisteredTaskObjectAssemblyLocal<ApplicationConfigTaskState> (ProjectSpecificTaskObjectKey (ApplicationConfigTaskState.RegisterTaskObjectKey), RegisteredTaskObjectLifetime.Build);
373352
var jniRemappingNativeCodeInfo = BuildEngine4.GetRegisteredTaskObjectAssemblyLocal<GenerateJniRemappingNativeCode.JniRemappingNativeCodeInfo> (ProjectSpecificTaskObjectKey (GenerateJniRemappingNativeCode.JniRemappingNativeCodeInfoKey), RegisteredTaskObjectLifetime.Build);

src/Xamarin.Android.Build.Tasks/Tasks/LinkAssembliesNoShrink.cs

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ public class LinkAssembliesNoShrink : AndroidTask
3434
[Required]
3535
public string TargetName { get; set; } = "";
3636

37-
public bool UsingAndroidNETSdk { get; set; }
38-
3937
public bool AddKeepAlives { get; set; }
4038

4139
public bool UseDesignerAssembly { get; set; }
@@ -70,15 +68,15 @@ public override bool RunTask ()
7068
// Set up the FixAbstractMethodsStep and AddKeepAlivesStep
7169
var cache = new TypeDefinitionCache ();
7270
var fixAbstractMethodsStep = new FixAbstractMethodsStep (resolver, cache, Log);
73-
var addKeepAliveStep = new AddKeepAlivesStep (resolver, cache, Log, UsingAndroidNETSdk);
71+
var addKeepAliveStep = new AddKeepAlivesStep (resolver, cache, Log);
7472
var fixLegacyResourceDesignerStep = new FixLegacyResourceDesignerStep (resolver, Log);
7573
for (int i = 0; i < SourceFiles.Length; i++) {
7674
var source = SourceFiles [i];
7775
var destination = DestinationFiles [i];
7876
var assemblyName = Path.GetFileNameWithoutExtension (source.ItemSpec);
7977

8078
// In .NET 6+, we can skip the main assembly
81-
if (UsingAndroidNETSdk && !AddKeepAlives && assemblyName == TargetName) {
79+
if (!AddKeepAlives && assemblyName == TargetName) {
8280
CopyIfChanged (source, destination);
8381
continue;
8482
}
@@ -87,17 +85,9 @@ public override bool RunTask ()
8785
continue;
8886
}
8987

90-
// Check AppDomain usage on any non-Product or Sdk assembly
91-
AssemblyDefinition? assemblyDefinition = null;
92-
if (!UsingAndroidNETSdk) {
93-
assemblyDefinition = resolver.GetAssembly (source.ItemSpec);
94-
fixAbstractMethodsStep.CheckAppDomainUsage (assemblyDefinition, (string msg) => Log.LogCodedWarning ("XA2000", msg));
95-
}
96-
9788
// Only run the step on "MonoAndroid" assemblies
9889
if (MonoAndroidHelper.IsMonoAndroidAssembly (source) && !MonoAndroidHelper.IsSharedRuntimeAssembly (source.ItemSpec)) {
99-
if (assemblyDefinition == null)
100-
assemblyDefinition = resolver.GetAssembly (source.ItemSpec);
90+
var assemblyDefinition = resolver.GetAssembly (source.ItemSpec);
10191

10292
bool save = fixAbstractMethodsStep.FixAbstractMethods (assemblyDefinition);
10393
if (UseDesignerAssembly)
@@ -185,19 +175,17 @@ class AddKeepAlivesStep : MonoDroid.Tuner.AddKeepAlivesStep
185175
{
186176
readonly DirectoryAssemblyResolver resolver;
187177
readonly TaskLoggingHelper logger;
188-
readonly bool hasSystemPrivateCoreLib;
189178

190-
public AddKeepAlivesStep (DirectoryAssemblyResolver resolver, TypeDefinitionCache cache, TaskLoggingHelper logger, bool hasSystemPrivateCoreLib)
179+
public AddKeepAlivesStep (DirectoryAssemblyResolver resolver, TypeDefinitionCache cache, TaskLoggingHelper logger)
191180
: base (cache)
192181
{
193182
this.resolver = resolver;
194183
this.logger = logger;
195-
this.hasSystemPrivateCoreLib = hasSystemPrivateCoreLib;
196184
}
197185

198186
protected override AssemblyDefinition GetCorlibAssembly ()
199187
{
200-
return resolver.GetAssembly (hasSystemPrivateCoreLib ? "System.Private.CoreLib.dll" : "mscorlib.dll");
188+
return resolver.GetAssembly ("System.Private.CoreLib.dll");
201189
}
202190

203191
public override void LogMessage (string message)

src/Xamarin.Android.Build.Tasks/Utilities/EnvironmentFilesParser.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public bool AreBrokenExceptionTransitionsEnabled (ITaskItem[] environments)
3333
return false;
3434
}
3535

36-
public void Parse (ITaskItem[] environments, SequencePointsMode sequencePointsMode, bool usingAndroidNETSdk, TaskLoggingHelper log)
36+
public void Parse (ITaskItem[] environments, SequencePointsMode sequencePointsMode, TaskLoggingHelper log)
3737
{
3838
foreach (ITaskItem env in environments ?? Array.Empty<ITaskItem> ()) {
3939
foreach (string line in File.ReadLines (env.ItemSpec)) {
@@ -56,9 +56,6 @@ public void Parse (ITaskItem[] environments, SequencePointsMode sequencePointsMo
5656
if (lineToWrite.StartsWith ("XA_HTTP_CLIENT_HANDLER_TYPE=", StringComparison.Ordinal))
5757
HaveHttpMessageHandler = true;
5858

59-
if (!usingAndroidNETSdk && lineToWrite.StartsWith ("XA_TLS_PROVIDER=", StringComparison.Ordinal))
60-
HaveTlsProvider = true;
61-
6259
if (lineToWrite.StartsWith ("mono.enable_assembly_preload=", StringComparison.Ordinal)) {
6360
int idx = lineToWrite.IndexOf ('=');
6461
uint val;

src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.props.in

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
<!-- Android Sdk Tool versions are sourced from this file. This is maintained in the xamarin-android-tools repo. -->
33
<Import Project="$(MSBuildThisFileDirectory)\Xamarin.Android.Tools.Versions.props" />
44
<PropertyGroup>
5-
<XamarinAndroidVersion Condition=" '$(UsingAndroidNETSdk)' != 'true' ">@PACKAGE_VERSION@-@PACKAGE_VERSION_BUILD@</XamarinAndroidVersion>
65
<_JavaInteropReferences>Java.Interop;System.Runtime</_JavaInteropReferences>
76
<Debugger Condition=" '$(Debugger)' == '' ">Xamarin</Debugger>
87
<DependsOnSystemRuntime Condition=" '$(DependsOnSystemRuntime)' == '' ">true</DependsOnSystemRuntime>

0 commit comments

Comments
 (0)