Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,13 @@
namespace Mono.Linker.Steps {
public class GenerateProguardConfiguration : BaseStep
{

#if !ILLINK
public GenerateProguardConfiguration (string outputFileName)
{
this.filename = outputFileName;
}
#endif // !ILLINK

string filename;
TextWriter writer;

protected override void Process ()
{
#if ILLINK
if (Context.TryGetCustomData ("ProguardConfiguration", out string proguardPath))
filename = proguardPath;
#endif // ILLINK
var dir = Path.GetDirectoryName (filename);
if (!Directory.Exists (dir))
Directory.CreateDirectory (dir);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,17 @@

namespace MonoDroid.Tuner {

public class MarkJavaObjects :
#if ILLINK
BaseMarkHandler
#else // !ILLINK
BaseSubStep
#endif // !ILLINK
public class MarkJavaObjects : BaseMarkHandler
{
Dictionary<ModuleDefinition, Dictionary<string, TypeDefinition>> module_types = new Dictionary<ModuleDefinition, Dictionary<string, TypeDefinition>> ();

#if ILLINK
public override void Initialize (LinkContext context, MarkContext markContext)
{
base.Initialize (context, markContext);
markContext.RegisterMarkTypeAction (type => ProcessType (type));
}
#else // !ILLINK
public override SubStepTargets Targets {
get { return SubStepTargets.Type; }
}
#endif // !ILLINK

public
#if !ILLINK
override
#endif // !ILLINK
void ProcessType (TypeDefinition type)
public void ProcessType (TypeDefinition type)
{
// If this isn't a JLO or IJavaObject implementer,
// then we don't need to MarkJavaObjects
Expand All @@ -60,9 +45,7 @@ void PreserveJavaObjectImplementation (TypeDefinition type)
PreserveIntPtrConstructor (type);
PreserveAttributeSetConstructor (type);
PreserveInvoker (type);
#if ILLINK
PreserveInterfaces (type);
#endif // ILLINK
}

void PreserveAttributeSetConstructor (TypeDefinition type)
Expand Down Expand Up @@ -199,12 +182,9 @@ void PreserveInvoker (TypeDefinition type)
PreserveConstructors (type, invoker);
PreserveIntPtrConstructor (invoker);
PreserveInterfaceMethods (type, invoker);
#if ILLINK
PreserveInterfaces (invoker);
#endif // ILLINK
}

#if ILLINK
void PreserveInterfaces (TypeDefinition type)
{
if (!type.HasInterfaces)
Expand Down Expand Up @@ -255,7 +235,6 @@ bool ShouldPreserveInterfaces (TypeDefinition type)

return true;
}
#endif // ILLINK

TypeDefinition GetInvokerType (TypeDefinition type)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,17 @@

<Compile Include="..\Xamarin.Android.Build.Tasks\obj\$(Configuration)\Profile.g.cs" Link="Profile.g.cs" />

<!--Include required linker sources-->
<!--Include shared linker sources-->
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\AddKeepAlivesStep.cs" Link="MonoDroid.Tuner\AddKeepAlivesStep.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\AndroidLinkConfiguration.cs" Link="MonoDroid.Tuner\AndroidLinkConfiguration.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\Extensions.cs" Link="MonoDroid.Tuner\Extensions.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\FixAbstractMethodsStep.cs" Link="MonoDroid.Tuner\FixAbstractMethodsStep.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\FixLegacyResourceDesignerStep.cs" Link="MonoDroid.Tuner\FixLegacyResourceDesignerStep.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\GenerateProguardConfiguration.cs" Link="MonoDroid.Tuner\GenerateProguardConfiguration.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\GetAssembliesStep.cs" Link="MonoDroid.Tuner\GetAssembliesStep.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\LinkDesignerBase.cs" Link="MonoDroid.Tuner\LinkDesignerBase.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\MarkJavaObjects.cs" Link="MonoDroid.Tuner\MarkJavaObjects.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\PreserveApplications.cs" Link="MonoDroid.Tuner\PreserveApplications.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\PreserveExportedTypes.cs" Link="MonoDroid.Tuner\PreserveExportedTypes.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\PreserveJavaExceptions.cs" Link="MonoDroid.Tuner\PreserveJavaExceptions.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\RemoveResourceDesignerStep.cs" Link="MonoDroid.Tuner\RemoveResourceDesignerStep.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\StripEmbeddedLibraries.cs" Link="MonoDroid.Tuner\StripEmbeddedLibraries.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\MonoDroidProfile.cs" Link="MonoDroid.Tuner\MonoDroidProfile.cs" />
<Compile Include="..\Xamarin.Android.Build.Tasks\Linker\Mobile.Tuner\MobileProfile.cs" Link="Mobile.Tuner\MobileProfile.cs" />

<!--TODO: Subclasses MarkStep
<Compile Remove="..\Xamarin.Android.Build.Tasks\Linker\MonoDroid.Tuner\MonoDroidMarkStep.cs" /-->

<!--Other Xamarin.Android / Java.Interop files-->
<Compile Include="..\..\external\Java.Interop\src\Java.Interop.Tools.Cecil\Java.Interop.Tools.Cecil\CustomAttributeProviderRocks.cs" Link="Java.Interop\CustomAttributeProviderRocks.cs" />
<Compile Include="..\..\external\Java.Interop\src\Java.Interop.Tools.Cecil\Java.Interop.Tools.Cecil\MethodDefinitionRocks.cs" Link="Java.Interop\MethodDefinitionRocks.cs" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,61 +12,31 @@

namespace MonoDroid.Tuner {

public class PreserveApplications :
#if ILLINK
BaseMarkHandler
#else // !ILLINK
BaseSubStep
#endif // !ILLINK
public class PreserveApplications : BaseMarkHandler
{

#if ILLINK
public override void Initialize (LinkContext context, MarkContext markContext)
{
base.Initialize (context, markContext);
markContext.RegisterMarkAssemblyAction (assembly => ProcessAssembly (assembly));
markContext.RegisterMarkTypeAction (type => ProcessType (type));
}
#else // !ILLINK
public override SubStepTargets Targets {
get { return SubStepTargets.Type
| SubStepTargets.Assembly;
}
}
#endif // !ILLINK

public
#if !ILLINK
override
#endif // !ILLINK
bool IsActiveFor (AssemblyDefinition assembly)
public bool IsActiveFor (AssemblyDefinition assembly)
{
return Annotations.GetAction (assembly) == AssemblyAction.Link;
}

public
#if !ILLINK
override
#endif // !ILLINK
void ProcessAssembly (AssemblyDefinition assembly)
public void ProcessAssembly (AssemblyDefinition assembly)
{
#if ILLINK
if (!IsActiveFor (assembly))
return;
#endif // ILLINK
ProcessAttributeProvider (assembly);
}

public
#if !ILLINK
override
#endif // !ILLINK
void ProcessType (TypeDefinition type)
public void ProcessType (TypeDefinition type)
{
#if ILLINK
if (!IsActiveFor (type.Module.Assembly))
return;
#endif // ILLINK
if (!type.Inherits ("Android.App.Application"))
return;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,7 @@
using Mono.Linker.Steps;

using Mono.Cecil;

#if ILLINK
using Microsoft.Android.Sdk.ILLink;
#endif

namespace Mono.Tuner {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,31 +12,16 @@

namespace MonoDroid.Tuner {

public class PreserveJavaExceptions :
#if ILLINK
BaseMarkHandler
#else // !ILLINK
BaseSubStep
#endif // !ILLINK
public class PreserveJavaExceptions : BaseMarkHandler
{

#if ILLINK
public override void Initialize (LinkContext context, MarkContext markContext)
{
base.Initialize (context, markContext);
markContext.RegisterMarkTypeAction (type => ProcessType (type));
}
#else // !ILLINK
public override SubStepTargets Targets {
get { return SubStepTargets.Type; }
}
#endif // !ILLINK

public
#if !ILLINK
override
#endif // !ILLINK
void ProcessType (TypeDefinition type)
public void ProcessType (TypeDefinition type)
{
if (type.IsJavaException ())
PreserveJavaException (type);
Expand Down
11 changes: 0 additions & 11 deletions src/Xamarin.Android.Build.Tasks/Linker/LinkModes.cs

This file was deleted.

This file was deleted.

Loading