-
Notifications
You must be signed in to change notification settings - Fork 564
[build] Prepare Java.Runtime.Environment.Override.dllmap #1739
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[build] Prepare Java.Runtime.Environment.Override.dllmap #1739
Conversation
|
Unfortunately, as also seen in PR #1734, current Java.Interop won't build on our Azure Ubuntu instances, as the JVM can't be found: See also: dotnet/java-interop#327 |
|
Please rebase now that PR #1747 is merged. |
…blies Use `jnimarshalmethod-gen` on resolved user assemblies. As a preview feature it is conditional and only enabled when `JniMarshalMethods` is True. This feature implements main part of https://github.com/xamarin/xamarin-android/projects/1
Prepare dllmap override in Java.Interop repo to have Java.Runtime.Environment.dll working with our libmono-android shared library. Introduced `build-tools/scripts/java-interop.dllmap` to share that information between `Java.Interop.dll.config` and `Java.Runtime.Environment.dll.config`.
597b411 to
3af2f69
Compare
|
This broke all the Java.Interop unit tests, for example: Looking at the contents of xamarin.android-oss_v8.3.99.229_Darwin-x86_64_HEAD_f1c953a.zip, I see that configuration>
<dllmap dll="java-interop" os="osx" target="lib/host-Darwin/libmono-android.debug.dylib" />
<dllmap dll="java-interop" os="linux" target="lib/host-Linux/libmono-android.debug.so" />
<dllmap dll="java-interop" os="windows" wordsize="64" target="lib/host-mxe-Win64/libmono-android.debug.dll" />
<dllmap dll="java-interop" os="windows" wordsize="32" target="lib/host-mxe-Win32/libmono-android.debug.dll" />
</configuration>That explains where
I suspect that "a fix" would be place a full path into the <dllmap dll="java-interop" os="osx" target="/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/lib/host-Darwin/libmono-android.debug.dylib" />That's not a good fix, mind you, but it should allow things to progress on macOS...assuming that the build machine has a system-wide Xamarin.Android install which is relatively recent. I believe a "better" fix is: dotnet/java-interop#321 (comment)
|
|
I think the The problem is I will try to modify it so that we generate two configs in Java.Interop. One for Java.Interop which will be the same as before and another for Xamarin.Android with injected dllmap to copy and use in Xamarin.Android. |
|
In the end I looks better to modify the config file directly in XA, so I created #1761 for that. It keeps the Java.Interop local configs unchanged, so tests should run OK and only XA copy is modified. That would also avoid another PR rountrip to modify Java.Interop and Xamarin.Android. |
Prepare dllmap override in Java.Interop repo to have
Java.Runtime.Environment.dllworking with our libmono-android sharedlibrary.
Introduced
build-tools/scripts/java-interop.dllmapto share thatinformation between
Java.Interop.dll.configandJava.Runtime.Environment.dll.config.