-
Notifications
You must be signed in to change notification settings - Fork 537
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
Bump to xamarin/Java.Interop/master@56c92c70 #4376
Conversation
Doh, forgot to make this a Draft! |
b022fd2
to
1a55380
Compare
d9e3261
to
71c17f8
Compare
71c17f8
to
4c0580e
Compare
Alas, it doesn't work; it fails to build:
Current conjecture is that
Furthermore, if I delete the
|
It looks like using |
***DO NOT MERGE*** Context: dotnet/java-interop#597 Just testing to see if dotnet/java-interop#597 works... Need to use `msbuild /restore` for all builds to allow `Java.Interop.Tools.Cecil` to build; see: dotnet#4376 (comment)
4c0580e
to
a5a2a5d
Compare
***DO NOT MERGE*** Context: dotnet/java-interop#597 Just testing to see if dotnet/java-interop#597 works... Need to use `msbuild /restore` for all builds to allow `Java.Interop.Tools.Cecil` to build; see: dotnet#4376 (comment)
a5a2a5d
to
b70579f
Compare
***DO NOT MERGE*** Context: dotnet/java-interop#597 Just testing to see if dotnet/java-interop#597 works... Need to use `msbuild /restore` for all builds to allow `Java.Interop.Tools.Cecil` to build; see: dotnet#4376 (comment) Note: `$(TargetFrameworks)` throws a wrench into things. If two `$(TargetFramework)` builds share the same output directory, the `IncrementalClean` target will *remove files created by previous builds*, e.g. when e.g. `generator.csproj` builds the `netcoreapp3.1` framework, it will *delete* the `generator.exe` built by the `net472` framework, which results in subsequent build breaks. The only path to sanity is to *ensure* that different `$(TargetFramework)` builds have *completely separate* `$(OutputPath)` values. The "normal" approach to doing this is for `$(OutputPath)` to end with `$(TargetFramework)`. The problem here is that xamarin-android is setup so that we mirror the installation directory, with e.g. `bin/Debug` being an "installation root", and that installation root *won't* (normally?) have *both* net472 and netcoreapp3.1 outputs for the "same" project. The "solution" is to use the new `$(UtilityOutputFullPathCoreApps)` property within Java.Interop to ensure that Java.Interop "utility" apps -- normally placed into `bin/Debug/lib/xamarin.android/xbuild/Xamarin/Android` -- are *instead* placed into `bin/Debug-netcoreapp3.1` for netcoreapp3.1 builds. This ensure that things *actually build*. Locally. YMMV.
b70579f
to
b39a585
Compare
***DO NOT MERGE*** Context: dotnet/java-interop#597 Just testing to see if dotnet/java-interop#597 works... Need to use `msbuild /restore` for all builds to allow `Java.Interop.Tools.Cecil` to build; see: dotnet#4376 (comment) Note: `$(TargetFrameworks)` throws a wrench into things. If two `$(TargetFramework)` builds share the same output directory, the `IncrementalClean` target will *remove files created by previous builds*, e.g. when e.g. `generator.csproj` builds the `netcoreapp3.1` framework, it will *delete* the `generator.exe` built by the `net472` framework, which results in subsequent build breaks. The only path to sanity is to *ensure* that different `$(TargetFramework)` builds have *completely separate* `$(OutputPath)` values. The "normal" approach to doing this is for `$(OutputPath)` to end with `$(TargetFramework)`. The problem here is that xamarin-android is setup so that we mirror the installation directory, with e.g. `bin/Debug` being an "installation root", and that installation root *won't* (normally?) have *both* net472 and netcoreapp3.1 outputs for the "same" project. The "solution" is to use the new `$(UtilityOutputFullPathCoreApps)` property within Java.Interop to ensure that Java.Interop "utility" apps -- normally placed into `bin/Debug/lib/xamarin.android/xbuild/Xamarin/Android` -- are *instead* placed into `bin/Debug-netcoreapp3.1` for netcoreapp3.1 builds. This ensure that things *actually build*. Locally. YMMV.
b39a585
to
a08e84b
Compare
***DO NOT MERGE*** Context: dotnet/java-interop#597 Just testing to see if dotnet/java-interop#597 works... Need to use `msbuild /restore` for all builds to allow `Java.Interop.Tools.Cecil` to build; see: dotnet#4376 (comment) Note: `$(TargetFrameworks)` throws a wrench into things. If two `$(TargetFramework)` builds share the same output directory, the `IncrementalClean` target will *remove files created by previous builds*, e.g. when e.g. `generator.csproj` builds the `netcoreapp3.1` framework, it will *delete* the `generator.exe` built by the `net472` framework, which results in subsequent build breaks. The only path to sanity is to *ensure* that different `$(TargetFramework)` builds have *completely separate* `$(OutputPath)` values. The "normal" approach to doing this is for `$(OutputPath)` to end with `$(TargetFramework)`. The problem here is that xamarin-android is setup so that we mirror the installation directory, with e.g. `bin/Debug` being an "installation root", and that installation root *won't* (normally?) have *both* net472 and netcoreapp3.1 outputs for the "same" project. The "solution" is to use the new `$(UtilityOutputFullPathCoreApps)` property within Java.Interop to ensure that Java.Interop "utility" apps -- normally placed into `bin/Debug/lib/xamarin.android/xbuild/Xamarin/Android` -- are *instead* placed into `bin/Debug-netcoreapp3.1` for netcoreapp3.1 builds. This ensure that things *actually build*. Locally. YMMV.
a08e84b
to
b5adb86
Compare
***DO NOT MERGE*** Context: dotnet/java-interop#597 Just testing to see if dotnet/java-interop#597 works... Need to use `msbuild /restore` for all builds to allow `Java.Interop.Tools.Cecil` to build; see: dotnet#4376 (comment) Note: `$(TargetFrameworks)` throws a wrench into things. If two `$(TargetFramework)` builds share the same output directory, the `IncrementalClean` target will *remove files created by previous builds*, e.g. when e.g. `generator.csproj` builds the `netcoreapp3.1` framework, it will *delete* the `generator.exe` built by the `net472` framework, which results in subsequent build breaks. The only path to sanity is to *ensure* that different `$(TargetFramework)` builds have *completely separate* `$(OutputPath)` values. The "normal" approach to doing this is for `$(OutputPath)` to end with `$(TargetFramework)`. The problem here is that xamarin-android is setup so that we mirror the installation directory, with e.g. `bin/Debug` being an "installation root", and that installation root *won't* (normally?) have *both* net472 and netcoreapp3.1 outputs for the "same" project. The "solution" is to use the new `$(UtilityOutputFullPathCoreApps)` property within Java.Interop to ensure that Java.Interop "utility" apps -- normally placed into `bin/Debug/lib/xamarin.android/xbuild/Xamarin/Android` -- are *instead* placed into `bin/Debug-netcoreapp3.1` for netcoreapp3.1 builds. This ensure that things *actually build*. Locally. YMMV.
7b08516
to
16d0019
Compare
***DO NOT MERGE*** Context: dotnet/java-interop#597 Just testing to see if dotnet/java-interop#597 works... Need to use `msbuild /restore` for all builds to allow `Java.Interop.Tools.Cecil` to build; see: dotnet#4376 (comment) Note: `$(TargetFrameworks)` throws a wrench into things. If two `$(TargetFramework)` builds share the same output directory, the `IncrementalClean` target will *remove files created by previous builds*, e.g. when e.g. `generator.csproj` builds the `netcoreapp3.1` framework, it will *delete* the `generator.exe` built by the `net472` framework, which results in subsequent build breaks. The only path to sanity is to *ensure* that different `$(TargetFramework)` builds have *completely separate* `$(OutputPath)` values. The "normal" approach to doing this is for `$(OutputPath)` to end with `$(TargetFramework)`. The problem here is that xamarin-android is setup so that we mirror the installation directory, with e.g. `bin/Debug` being an "installation root", and that installation root *won't* (normally?) have *both* net472 and netcoreapp3.1 outputs for the "same" project. The "solution" is to use the new `$(UtilityOutputFullPathCoreApps)` property within Java.Interop to ensure that Java.Interop "utility" apps -- normally placed into `bin/Debug/lib/xamarin.android/xbuild/Xamarin/Android` -- are *instead* placed into `bin/Debug-netcoreapp3.1` for netcoreapp3.1 builds. This ensure that things *actually build*. Locally. YMMV.
16d0019
to
c11909e
Compare
Magic Pixie Dust!
...and, related: dotnet/msbuild#3000 (comment) |
Changes: dotnet/java-interop@1a086ff...56c92c7 * dotnet/java-interop@56c92c7: [build] Remove cecil submodule (dotnet#597) * dotnet/java-interop@3091274: [build] Provide a default $(Configuration) value (dotnet#612) * dotnet/java-interop@cf3e7c2: [generator] Don't process duplicate reference assemblies (dotnet#611) * dotnet/java-interop@f5fa462: [jnienv-gen] Convert to SDK-style (dotnet#608)
Now that it builds, dotnet/java-interop#597 has been merged. Now to turn this PR into a "real" Java.Interop bump |
Squash-and-merge summary:
Commit body:
|
Now it's `jnienv-gen` breaking us. :-/ /Users/runner/hostedtoolcache/dotnet/sdk/3.1.100/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(234,5): error NETSDK1004: Assets file '/Users/runner/runners/2.165.2/work/1/s/external/Java.Interop/build-tools/jnienv-gen/obj/project.assets.json' not found. Run a NuGet package restore to generate this file. [/Users/runner/runners/2.165.2/work/1/s/external/Java.Interop/build-tools/jnienv-gen/jnienv-gen.csproj]
DO NOT MERGE
Context: dotnet/java-interop#597
Just testing to see if dotnet/java-interop#597 works...