From a17563bd35ecf63334fec98b3e60a45f05b346f9 Mon Sep 17 00:00:00 2001 From: Radek Doulik Date: Tue, 29 May 2018 10:31:14 +0200 Subject: [PATCH 1/4] [Mono.Android] Build jnimarshalmethod-gen.exe Build the tool to be used for generating the marshal methods, it will be used when user enables it with the `AndroidGenerateJniMarshalMethods` property. --- Xamarin.Android.sln | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Xamarin.Android.sln b/Xamarin.Android.sln index 13b92eefa7f..cccead00b6a 100644 --- a/Xamarin.Android.sln +++ b/Xamarin.Android.sln @@ -41,6 +41,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{864062D3 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "jcw-gen", "external\Java.Interop\tools\jcw-gen\jcw-gen.csproj", "{52C7D9B6-E8C8-47D0-9471-652D278D7D77}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "jnimarshalmethod-gen", "external\Java.Interop\tools\jnimarshalmethod-gen\Xamarin.Android.Tools.JniMarshalMethodGenerator.csproj", "{D1295A8F-4F42-461D-A046-564476C10002}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Java.Interop.Tools.JavaCallableWrappers", "external\Java.Interop\src\Java.Interop.Tools.JavaCallableWrappers\Java.Interop.Tools.JavaCallableWrappers.csproj", "{D18FCF91-8876-48A0-A693-2DC1E7D3D80A}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Android.Tools.ApiXmlAdjuster", "external\Java.Interop\src\Xamarin.Android.Tools.ApiXmlAdjuster\Xamarin.Android.Tools.ApiXmlAdjuster.csproj", "{1268EADF-8344-431C-81F6-FCB7CBC99F49}" @@ -186,6 +188,10 @@ Global {52C7D9B6-E8C8-47D0-9471-652D278D7D77}.Debug|AnyCPU.Build.0 = Debug|Any CPU {52C7D9B6-E8C8-47D0-9471-652D278D7D77}.Release|AnyCPU.ActiveCfg = Release|Any CPU {52C7D9B6-E8C8-47D0-9471-652D278D7D77}.Release|AnyCPU.Build.0 = Release|Any CPU + {D1295A8F-4F42-461D-A046-564476C10002}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU + {D1295A8F-4F42-461D-A046-564476C10002}.Debug|AnyCPU.Build.0 = Debug|Any CPU + {D1295A8F-4F42-461D-A046-564476C10002}.Release|AnyCPU.ActiveCfg = Release|Any CPU + {D1295A8F-4F42-461D-A046-564476C10002}.Release|AnyCPU.Build.0 = Release|Any CPU {D18FCF91-8876-48A0-A693-2DC1E7D3D80A}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU {D18FCF91-8876-48A0-A693-2DC1E7D3D80A}.Debug|AnyCPU.Build.0 = Debug|Any CPU {D18FCF91-8876-48A0-A693-2DC1E7D3D80A}.Release|AnyCPU.ActiveCfg = Release|Any CPU @@ -367,6 +373,7 @@ Global {3F1F2F50-AF1A-4A5A-BEDB-193372F068D7} = {04E3E11E-B47D-4599-8AFC-50515A95E715} {B17475BC-45A2-47A3-B8FC-62F3A0959EE0} = {04E3E11E-B47D-4599-8AFC-50515A95E715} {52C7D9B6-E8C8-47D0-9471-652D278D7D77} = {864062D3-A415-4A6F-9324-5820237BA058} + {D1295A8F-4F42-461D-A046-564476C10002} = {864062D3-A415-4A6F-9324-5820237BA058} {D18FCF91-8876-48A0-A693-2DC1E7D3D80A} = {864062D3-A415-4A6F-9324-5820237BA058} {1268EADF-8344-431C-81F6-FCB7CBC99F49} = {864062D3-A415-4A6F-9324-5820237BA058} {07BC4495-1267-4B78-9EA6-B76FEEA2A64A} = {864062D3-A415-4A6F-9324-5820237BA058} From 6c53d0e0dd2b2985c341cd5d6871fcc7a6c3a1b2 Mon Sep 17 00:00:00 2001 From: Radek Doulik Date: Thu, 31 May 2018 12:31:53 +0200 Subject: [PATCH 2/4] Update our copy of Java.Runtime.Environment.dll.config Add dll maps to map `libmono-android` as `java-interop` shared library for `Java.Runtime.Environment.dll`. Similar way as we do for `Java.Interop.dll` in `monodroid.targets` --- build-tools/scripts/java-interop.dllmap | 4 +++ src/monodroid/monodroid.csproj | 5 ++++ src/monodroid/monodroid.targets | 34 ++++++++++++++++--------- 3 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 build-tools/scripts/java-interop.dllmap diff --git a/build-tools/scripts/java-interop.dllmap b/build-tools/scripts/java-interop.dllmap new file mode 100644 index 00000000000..989096481a4 --- /dev/null +++ b/build-tools/scripts/java-interop.dllmap @@ -0,0 +1,4 @@ + + + + diff --git a/src/monodroid/monodroid.csproj b/src/monodroid/monodroid.csproj index 8f5d5e2038b..9af80d89ace 100644 --- a/src/monodroid/monodroid.csproj +++ b/src/monodroid/monodroid.csproj @@ -32,6 +32,11 @@ dependencies False + + {D1295A8F-4F42-461D-A046-564476C10002} + jnimarshalmethod-gen + False + {C03E6CF1-7460-4CDC-A4AB-292BBC0F61F2} mono-runtimes diff --git a/src/monodroid/monodroid.targets b/src/monodroid/monodroid.targets index 53b9ef0ac3d..097adef6aa4 100644 --- a/src/monodroid/monodroid.targets +++ b/src/monodroid/monodroid.targets @@ -5,6 +5,7 @@ + <_Conf>$(Configuration.ToLowerInvariant()) @@ -116,7 +117,7 @@ @@ -143,20 +144,29 @@ Command="%(_HostRuntime.Strip) %(_HostRuntime.StripFlags) "$(OutputPath)%(_HostRuntime.OutputDirectory)\libmono-android.release.%(_HostRuntime.NativeLibraryExtension)"" /> - + + + + - + /> + + <_DllMaps>@(_JavaInteropDllMapContent->'%(Identity)', '%0a ') + + + From b2550f08a546bbdbd66481e95d8329aa81be9e27 Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Wed, 13 Jun 2018 14:50:47 -0400 Subject: [PATCH 3/4] Fix XML indentation --- src/monodroid/monodroid.targets | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/monodroid/monodroid.targets b/src/monodroid/monodroid.targets index 097adef6aa4..6c7660505f5 100644 --- a/src/monodroid/monodroid.targets +++ b/src/monodroid/monodroid.targets @@ -149,9 +149,7 @@ Outputs="$(XAInstallPrefix)xbuild\Xamarin\Android\Java.Interop.dll.config;$(XAInstallPrefix)xbuild\Xamarin\Android\Java.Runtime.Environment.dll.config"> - + - <_DllMaps>@(_JavaInteropDllMapContent->'%(Identity)', '%0a ') + <_DllMaps>@(_JavaInteropDllMapContent->'%(Identity)', '%0a ') Date: Wed, 13 Jun 2018 14:54:41 -0400 Subject: [PATCH 4/4] Explain the JniMarshalMethodGenerator reference. --- src/monodroid/monodroid.csproj | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/monodroid/monodroid.csproj b/src/monodroid/monodroid.csproj index 9af80d89ace..8c7bdf0f2d3 100644 --- a/src/monodroid/monodroid.csproj +++ b/src/monodroid/monodroid.csproj @@ -32,6 +32,15 @@ dependencies False + {D1295A8F-4F42-461D-A046-564476C10002} jnimarshalmethod-gen