Skip to content

Commit 032f1e7

Browse files
authored
[Xamarin.Android.Tools.Bytecode-Tests] Fix BuildClasses (#1013)
The `BuildClasses` target runs on every rebuild: % dotnet build … Build succeeded. "…/Java.Interop/Java.Interop.sln" (default target) (1:2) -> "…/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj" (default target) (16:14) -> "…/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj" (Build target) (16:15) -> (BuildClasses target) -> EXEC : warning : [options] bootstrap class path not set in conjunction with -source 8 […/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj] "…/Java.Interop/Java.Interop.sln" (default target) (1:2) -> "…/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj" (default target) (16:14) -> "…/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj" (Build target) (16:16) -> EXEC : warning : [options] bootstrap class path not set in conjunction with -source 8 […/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj] "…/Java.Interop/Java.Interop.sln" (default target) (1:2) -> "…/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj" (default target) (16:14) -> "…/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj" (Build target) (16:15) -> EXEC : warning : [options] bootstrap class path not set in conjunction with -source 8 […/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj] "…/Java.Interop/Java.Interop.sln" (default target) (1:2) -> "…/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj" (default target) (16:14) -> "…/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj" (Build target) (16:16) -> EXEC : warning : [options] bootstrap class path not set in conjunction with -source 8 […/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj] 4 Warning(s) 0 Error(s) % dotnet build # same as above; EXEC warnings from `BuildClasses` target % dotnet build # ad infinitum The cause for the warnings -- and the repetitive `BuildClasses` target execution -- is that the `@(_BuildClassOutputs)` item group is wrong; from the Dignostic build log: Target "BuildClasses: (TargetId:301)" in file "…/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.targets" from project "…/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj" (target "BeforeCompile" depends on it): Building target "BuildClasses" completely. Output file "obj//Debug-net7.0/classes/Collection.class" does not exist. `obj/Debug-net7.0/classes/Collection.class` doesn't exist because it will *never* exist; the file created is *actually* `obj/Debug-net7.0/classes/java/util/Collection.class`. Note the "missing" `java/util` in the path. The cause of the missing `java/util` is that `@(_BuildClassOutputs)` uses `%(RecursiveDir)`, which only expands `**` wildcards, while `Collection.java` comes from: <TestJarNoParameters Include="java/java/util/Collection.java" /> Note the *lack* of `**`. Consequently, `%(RecursiveDir)` expanded as the empty string, which is why `java/util` was "lost". Fix this by introducing wildcards: <TestJarNoParameters Include="java/**/Collection.java" /> This fixes the repetitive `BuildClasses` execution: % dotnet build … EXEC : warning : [options] bootstrap class path not set in conjunction with -source 8 […/Java.Interop/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj] % dotnet build % no `EXEC : warning` message
1 parent 0eaa47e commit 032f1e7

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project>
22

33
<ItemGroup>
4-
<TestJarNoParameters Include="java/java/util/Collection.java" />
4+
<TestJarNoParameters Include="java/**/Collection.java" />
55
<TestJarNoParameters Include="java/**/*NoParameters.java" />
66
<TestJar Include="java\**\*.java" Exclude="@(TestJarNoParameters);java\android\annotation\NonNull.java" />
77
<TestKotlinJar Include="kotlin\**\*.kt" />

0 commit comments

Comments
 (0)