diff --git a/.github/workflows/IKVM.yml b/.github/workflows/IKVM.yml index 4c3345ea88..7fabb007ca 100644 --- a/.github/workflows/IKVM.yml +++ b/.github/workflows/IKVM.yml @@ -88,6 +88,7 @@ jobs: if: runner.os == 'Linux' uses: jlumbroso/free-disk-space@main with: + android: false swap-storage: false - name: Checkout Source uses: actions/checkout@v4 diff --git a/Directory.Build.props b/Directory.Build.props index b21c579650..a3636ec3b2 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,18 +1,18 @@ - win-x64;win-x86;win-arm64;linux-x64;linux-arm;linux-arm64;linux-musl-x64;linux-musl-arm;linux-musl-arm64;osx-x64;osx-arm64 + win-x64;win-x86;win-arm64;linux-x64;linux-arm;linux-arm64;linux-musl-x64;linux-musl-arm;linux-musl-arm64;osx-x64;osx-arm64;android-arm;android-arm64 $(SupportedRuntimes) + win-x64;win-x86;win-arm64;linux-x64;linux-arm;linux-arm64;linux-musl-x64;linux-musl-arm;linux-musl-arm64;osx-x64;osx-arm64;android-arm;android-arm64 + $(SupportedImageRuntimes) win-x64;win-arm64;linux-x64;linux-arm;linux-arm64;linux-musl-x64;linux-musl-arm;linux-musl-arm64;osx-x64;osx-arm64 $(SupportedToolRuntimes) - win-x64;win-x86;win-arm64;linux-x64;linux-arm;linux-arm64;linux-musl-x64;linux-musl-arm;linux-musl-arm64;osx-x64;osx-arm64 - $(SupportedImageRuntimes) <_SupportedRuntimes>;$(SupportedRuntimes); <_EnabledRuntimes>;$(EnabledRuntimes); - <_SupportedToolRuntimes>;$(SupportedToolRuntimes); - <_EnabledToolRuntimes>;$(EnabledToolRuntimes); <_SupportedImageRuntimes>;$(SupportedImageRuntimes); <_EnabledImageRuntimes>;$(EnabledImageRuntimes); + <_SupportedToolRuntimes>;$(SupportedToolRuntimes); + <_EnabledToolRuntimes>;$(EnabledToolRuntimes); @@ -99,7 +99,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/IKVM.sln b/IKVM.sln index ee294afdbc..b7e472fd15 100644 --- a/IKVM.sln +++ b/IKVM.sln @@ -349,6 +349,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IKVM.Benchmarks", "src\IKVM EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IKVM.Benchmarks.Java", "src\IKVM.Benchmarks.Java\IKVM.Benchmarks.Java.csproj", "{9F5CDC85-BCD8-468E-9FC6-4DC9E3A576D0}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IKVM.Image.runtime.android-arm64", "src\IKVM.Image.runtime.android-arm64\IKVM.Image.runtime.android-arm64.csproj", "{843B0704-DA5E-4357-B683-3D6F64DEF57B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IKVM.Image.runtime.android-arm", "src\IKVM.Image.runtime.android-arm\IKVM.Image.runtime.android-arm.csproj", "{72994D7F-A9A8-45F9-A74B-0718DD192943}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -939,6 +943,14 @@ Global {9F5CDC85-BCD8-468E-9FC6-4DC9E3A576D0}.Debug|Any CPU.Build.0 = Debug|Any CPU {9F5CDC85-BCD8-468E-9FC6-4DC9E3A576D0}.Release|Any CPU.ActiveCfg = Release|Any CPU {9F5CDC85-BCD8-468E-9FC6-4DC9E3A576D0}.Release|Any CPU.Build.0 = Release|Any CPU + {843B0704-DA5E-4357-B683-3D6F64DEF57B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {843B0704-DA5E-4357-B683-3D6F64DEF57B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {843B0704-DA5E-4357-B683-3D6F64DEF57B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {843B0704-DA5E-4357-B683-3D6F64DEF57B}.Release|Any CPU.Build.0 = Release|Any CPU + {72994D7F-A9A8-45F9-A74B-0718DD192943}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72994D7F-A9A8-45F9-A74B-0718DD192943}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72994D7F-A9A8-45F9-A74B-0718DD192943}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72994D7F-A9A8-45F9-A74B-0718DD192943}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ext/openjdk b/ext/openjdk index da7fb6cbfa..f2320fd28b 160000 --- a/ext/openjdk +++ b/ext/openjdk @@ -1 +1 @@ -Subproject commit da7fb6cbfaecdabd7630acbdc0d74a68c310fcd9 +Subproject commit f2320fd28b8edc0b410e96a583880ab57c0225f0 diff --git a/src/IKVM.Image-bin/IKVM.Image-bin.csproj b/src/IKVM.Image-bin/IKVM.Image-bin.csproj index de1f1e880e..7a560671f3 100644 --- a/src/IKVM.Image-bin/IKVM.Image-bin.csproj +++ b/src/IKVM.Image-bin/IKVM.Image-bin.csproj @@ -16,7 +16,7 @@ - + @@ -26,16 +26,16 @@ - + - + - + - + diff --git a/src/IKVM.Image.runtime.android-arm/IKVM.Image.runtime.android-arm.csproj b/src/IKVM.Image.runtime.android-arm/IKVM.Image.runtime.android-arm.csproj new file mode 100644 index 0000000000..3ce48240b9 --- /dev/null +++ b/src/IKVM.Image.runtime.android-arm/IKVM.Image.runtime.android-arm.csproj @@ -0,0 +1,17 @@ + + + + + net472;net6.0;net8.0 + LICENSE.md + README.md + IKVM Runtime Image + false + android-arm + net6.0;net8.0 + + + + + + diff --git a/src/IKVM.Image.runtime.android-arm/README.md b/src/IKVM.Image.runtime.android-arm/README.md new file mode 100644 index 0000000000..0a3a5b6614 --- /dev/null +++ b/src/IKVM.Image.runtime.android-arm/README.md @@ -0,0 +1,3 @@ +# IKVM.Image + +Native requirements for IKVM.Image. diff --git a/src/IKVM.Image.runtime.android-arm/buildTransitive/IKVM.Image.runtime.android-arm.props b/src/IKVM.Image.runtime.android-arm/buildTransitive/IKVM.Image.runtime.android-arm.props new file mode 100644 index 0000000000..0fe2d7c358 --- /dev/null +++ b/src/IKVM.Image.runtime.android-arm/buildTransitive/IKVM.Image.runtime.android-arm.props @@ -0,0 +1,24 @@ + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + any + android-arm + %(RecursiveDir)%(FileName)%(Extension) + + + net6.0 + android-arm + %(RecursiveDir)%(FileName)%(Extension) + + + net8.0 + android-arm + %(RecursiveDir)%(FileName)%(Extension) + + + + diff --git a/src/IKVM.Image.runtime.android-arm/lib/net472/_._ b/src/IKVM.Image.runtime.android-arm/lib/net472/_._ new file mode 100644 index 0000000000..5f282702bb --- /dev/null +++ b/src/IKVM.Image.runtime.android-arm/lib/net472/_._ @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/IKVM.Image.runtime.android-arm/lib/net6.0/_._ b/src/IKVM.Image.runtime.android-arm/lib/net6.0/_._ new file mode 100644 index 0000000000..5f282702bb --- /dev/null +++ b/src/IKVM.Image.runtime.android-arm/lib/net6.0/_._ @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/IKVM.Image.runtime.android-arm/lib/net8.0/_._ b/src/IKVM.Image.runtime.android-arm/lib/net8.0/_._ new file mode 100644 index 0000000000..5f282702bb --- /dev/null +++ b/src/IKVM.Image.runtime.android-arm/lib/net8.0/_._ @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/IKVM.Image.runtime.android-arm64/IKVM.Image.runtime.android-arm64.csproj b/src/IKVM.Image.runtime.android-arm64/IKVM.Image.runtime.android-arm64.csproj new file mode 100644 index 0000000000..eb1242d9c2 --- /dev/null +++ b/src/IKVM.Image.runtime.android-arm64/IKVM.Image.runtime.android-arm64.csproj @@ -0,0 +1,17 @@ + + + + + net472;net6.0;net8.0 + LICENSE.md + README.md + IKVM Runtime Image + false + android-arm64 + net6.0;net8.0 + + + + + + diff --git a/src/IKVM.Image.runtime.android-arm64/README.md b/src/IKVM.Image.runtime.android-arm64/README.md new file mode 100644 index 0000000000..0a3a5b6614 --- /dev/null +++ b/src/IKVM.Image.runtime.android-arm64/README.md @@ -0,0 +1,3 @@ +# IKVM.Image + +Native requirements for IKVM.Image. diff --git a/src/IKVM.Image.runtime.android-arm64/buildTransitive/IKVM.Image.runtime.android-arm64.props b/src/IKVM.Image.runtime.android-arm64/buildTransitive/IKVM.Image.runtime.android-arm64.props new file mode 100644 index 0000000000..b886d081e7 --- /dev/null +++ b/src/IKVM.Image.runtime.android-arm64/buildTransitive/IKVM.Image.runtime.android-arm64.props @@ -0,0 +1,24 @@ + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + + + + any + android-arm64 + %(RecursiveDir)%(FileName)%(Extension) + + + net6.0 + android-arm64 + %(RecursiveDir)%(FileName)%(Extension) + + + net8.0 + android-arm64 + %(RecursiveDir)%(FileName)%(Extension) + + + + diff --git a/src/IKVM.Image.runtime.android-arm64/lib/net472/_._ b/src/IKVM.Image.runtime.android-arm64/lib/net472/_._ new file mode 100644 index 0000000000..5f282702bb --- /dev/null +++ b/src/IKVM.Image.runtime.android-arm64/lib/net472/_._ @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/IKVM.Image.runtime.android-arm64/lib/net6.0/_._ b/src/IKVM.Image.runtime.android-arm64/lib/net6.0/_._ new file mode 100644 index 0000000000..5f282702bb --- /dev/null +++ b/src/IKVM.Image.runtime.android-arm64/lib/net6.0/_._ @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/IKVM.Image.runtime.android-arm64/lib/net8.0/_._ b/src/IKVM.Image.runtime.android-arm64/lib/net8.0/_._ new file mode 100644 index 0000000000..5f282702bb --- /dev/null +++ b/src/IKVM.Image.runtime.android-arm64/lib/net8.0/_._ @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/IKVM.Image/IKVM.Image.csproj b/src/IKVM.Image/IKVM.Image.csproj index a9b47afdfe..1b35c21273 100644 --- a/src/IKVM.Image/IKVM.Image.csproj +++ b/src/IKVM.Image/IKVM.Image.csproj @@ -23,6 +23,8 @@ + + diff --git a/src/IKVM.Image/IKVM.Image.runtime.targets b/src/IKVM.Image/IKVM.Image.runtime.targets index d632f7f79a..9f89f89627 100644 --- a/src/IKVM.Image/IKVM.Image.runtime.targets +++ b/src/IKVM.Image/IKVM.Image.runtime.targets @@ -29,16 +29,16 @@ windows - solaris + solaris windows - linux + linux macosx - + diff --git a/src/IKVM.Image/buildTransitive/IKVM.Image.targets b/src/IKVM.Image/buildTransitive/IKVM.Image.targets index fa6a7729a7..3cab5988b0 100644 --- a/src/IKVM.Image/buildTransitive/IKVM.Image.targets +++ b/src/IKVM.Image/buildTransitive/IKVM.Image.targets @@ -5,7 +5,7 @@ - + diff --git a/src/IKVM.Java/IKVM.Java.runtime.props b/src/IKVM.Java/IKVM.Java.runtime.props index 7de4381491..6023c43ac8 100644 --- a/src/IKVM.Java/IKVM.Java.runtime.props +++ b/src/IKVM.Java/IKVM.Java.runtime.props @@ -13,9 +13,9 @@ windows - solaris + solaris windows - linux + linux macosx diff --git a/src/IKVM.MSBuild.Tests/IKVM.MSBuild.Tests.csproj b/src/IKVM.MSBuild.Tests/IKVM.MSBuild.Tests.csproj index 0bcdb6c2bd..06cc3c2bb8 100644 --- a/src/IKVM.MSBuild.Tests/IKVM.MSBuild.Tests.csproj +++ b/src/IKVM.MSBuild.Tests/IKVM.MSBuild.Tests.csproj @@ -52,6 +52,8 @@ + + diff --git a/src/IKVM.NET.Sdk.Tests/IKVM.NET.Sdk.Tests.csproj b/src/IKVM.NET.Sdk.Tests/IKVM.NET.Sdk.Tests.csproj index 29cc4b91f8..c4b30d230b 100644 --- a/src/IKVM.NET.Sdk.Tests/IKVM.NET.Sdk.Tests.csproj +++ b/src/IKVM.NET.Sdk.Tests/IKVM.NET.Sdk.Tests.csproj @@ -46,6 +46,8 @@ + + diff --git a/src/dist-nuget/dist-nuget.csproj b/src/dist-nuget/dist-nuget.csproj index 093f3f31b3..b758544e4c 100644 --- a/src/dist-nuget/dist-nuget.csproj +++ b/src/dist-nuget/dist-nuget.csproj @@ -75,6 +75,12 @@ . + + . + + + . + . diff --git a/src/libawt/libawt.clangproj b/src/libawt/libawt.clangproj index 08ff1b49ad..be92d70eb9 100644 --- a/src/libawt/libawt.clangproj +++ b/src/libawt/libawt.clangproj @@ -7,6 +7,7 @@ awt dll + win-x64;win-x86;win-arm64;linux-arm;linux-arm64;linux-x64;linux-musl-arm;linux-musl-arm64;linux-musl-x64;osx-x64;osx-arm64 @@ -210,7 +211,7 @@ - + diff --git a/src/libfontmanager/libfontmanager.clangproj b/src/libfontmanager/libfontmanager.clangproj index ad8df0a00d..ac0942be79 100644 --- a/src/libfontmanager/libfontmanager.clangproj +++ b/src/libfontmanager/libfontmanager.clangproj @@ -7,6 +7,7 @@ fontmanager dll + win-x64;win-x86;win-arm64;linux-arm;linux-arm64;linux-x64;linux-musl-arm;linux-musl-arm64;linux-musl-x64;osx-x64;osx-arm64 @@ -43,7 +44,7 @@ - + diff --git a/src/libiava/libiava.clangproj b/src/libiava/libiava.clangproj index 59f6b07c1f..df27270f10 100644 --- a/src/libiava/libiava.clangproj +++ b/src/libiava/libiava.clangproj @@ -90,7 +90,7 @@ - + diff --git a/src/libj2gss/libj2gss.clangproj b/src/libj2gss/libj2gss.clangproj index a1e7a47a19..fa0b3851dc 100644 --- a/src/libj2gss/libj2gss.clangproj +++ b/src/libj2gss/libj2gss.clangproj @@ -18,7 +18,7 @@
- + diff --git a/src/libj2pkcs11/libj2pkcs11.clangproj b/src/libj2pkcs11/libj2pkcs11.clangproj index 6a687e105d..6b76dff385 100644 --- a/src/libj2pkcs11/libj2pkcs11.clangproj +++ b/src/libj2pkcs11/libj2pkcs11.clangproj @@ -24,7 +24,7 @@ - + diff --git a/src/libjaas/libjaas.clangproj b/src/libjaas/libjaas.clangproj index 7bcfcaa802..9d4ba56cbc 100644 --- a/src/libjaas/libjaas.clangproj +++ b/src/libjaas/libjaas.clangproj @@ -25,7 +25,7 @@ - + diff --git a/src/libjsound/libjsound.clangproj b/src/libjsound/libjsound.clangproj index 2ba9bcb64e..02d20ed6be 100644 --- a/src/libjsound/libjsound.clangproj +++ b/src/libjsound/libjsound.clangproj @@ -7,7 +7,6 @@ jsound dll - win-x64;win-x86;win-arm64;linux-x64;linux-arm;linux-arm64;linux-musl-x64;linux-musl-arm;linux-musl-arm64 @@ -60,7 +59,7 @@ - + diff --git a/src/libjvm/jvm.cpp b/src/libjvm/jvm.cpp index 38c6ddbff7..d216f2238e 100644 --- a/src/libjvm/jvm.cpp +++ b/src/libjvm/jvm.cpp @@ -14,7 +14,7 @@ #include #endif -#if defined LINUX || defined MACOS +#if defined LINUX || defined MACOS || defined ANDROID #include #include #include @@ -25,6 +25,7 @@ #include #include #include +#include #endif #ifdef __cplusplus diff --git a/src/libjvm/libjvm.clangproj b/src/libjvm/libjvm.clangproj index a3afd14fa8..2f11d6d3d9 100644 --- a/src/libjvm/libjvm.clangproj +++ b/src/libjvm/libjvm.clangproj @@ -23,12 +23,12 @@ - - + + - - + + @@ -48,7 +48,7 @@ - + diff --git a/src/liblcms/liblcms.clangproj b/src/liblcms/liblcms.clangproj index 7d9aadf3db..293c4864ea 100644 --- a/src/liblcms/liblcms.clangproj +++ b/src/liblcms/liblcms.clangproj @@ -7,6 +7,7 @@ lcms dll + win-x64;win-x86;win-arm64;linux-arm;linux-arm64;linux-x64;linux-musl-arm;linux-musl-arm64;linux-musl-x64;osx-x64;osx-arm64 c99 @@ -23,7 +24,7 @@ - + diff --git a/src/libmanagement/libmanagement.clangproj b/src/libmanagement/libmanagement.clangproj index eae94019e1..71325812ba 100644 --- a/src/libmanagement/libmanagement.clangproj +++ b/src/libmanagement/libmanagement.clangproj @@ -26,7 +26,7 @@ - + diff --git a/src/libnet/libnet.clangproj b/src/libnet/libnet.clangproj index 4942675be1..5f7042ed5e 100644 --- a/src/libnet/libnet.clangproj +++ b/src/libnet/libnet.clangproj @@ -32,7 +32,7 @@ - + @@ -51,7 +51,7 @@ - + diff --git a/src/libnio/libnio.clangproj b/src/libnio/libnio.clangproj index 91e3825c62..e5c8827e0a 100644 --- a/src/libnio/libnio.clangproj +++ b/src/libnio/libnio.clangproj @@ -52,7 +52,7 @@ - + diff --git a/src/libsctp/libsctp.clangproj b/src/libsctp/libsctp.clangproj index 0f9c2fd7bc..1465b99fa2 100644 --- a/src/libsctp/libsctp.clangproj +++ b/src/libsctp/libsctp.clangproj @@ -7,7 +7,7 @@ sctp dll - linux-x64;linux-arm;linux-arm64;linux-musl-x64;linux-musl-arm;linux-musl-arm64 + linux-x64;linux-arm;linux-arm64;linux-musl-x64;linux-musl-arm;linux-musl-arm64;android-arm;android-arm64 c99 @@ -17,7 +17,7 @@ - + diff --git a/src/libsunec/libsunec.clangproj b/src/libsunec/libsunec.clangproj index 98203e9219..9e7b1c6c7f 100644 --- a/src/libsunec/libsunec.clangproj +++ b/src/libsunec/libsunec.clangproj @@ -22,7 +22,7 @@ - + diff --git a/src/libunpack/libunpack.clangproj b/src/libunpack/libunpack.clangproj index 2322eaa0c5..900e2f6dbc 100644 --- a/src/libunpack/libunpack.clangproj +++ b/src/libunpack/libunpack.clangproj @@ -22,7 +22,7 @@ - + diff --git a/src/libverify/libverify.clangproj b/src/libverify/libverify.clangproj index 712374410f..61fb7ae7a5 100644 --- a/src/libverify/libverify.clangproj +++ b/src/libverify/libverify.clangproj @@ -16,7 +16,7 @@ - + diff --git a/src/libzip/libzip.clangproj b/src/libzip/libzip.clangproj index 43f2afe533..381144173b 100644 --- a/src/libzip/libzip.clangproj +++ b/src/libzip/libzip.clangproj @@ -35,7 +35,7 @@ - + diff --git a/targets/lib.props b/targets/lib.props index dc63574921..f90f9c9195 100644 --- a/targets/lib.props +++ b/targets/lib.props @@ -26,11 +26,14 @@ arm-unknown-linux-musleabihf x86_64-apple-macosx arm64-apple-macosx + arm-linux-androideabi + aarch64-linux-android + @@ -116,11 +119,25 @@ - + + windows-x86_64 + windows + linux-x86_64 + linux + $(ANDROID_NDK_HOME)\toolchains\llvm\prebuilt\$(AndroidHostTag)\sysroot + + + + + + + + + true - + @@ -146,4 +163,8 @@ + + + + diff --git a/targets/openjdk.lib.props b/targets/openjdk.lib.props index 10d2f4ad83..09049b263a 100644 --- a/targets/openjdk.lib.props +++ b/targets/openjdk.lib.props @@ -35,14 +35,16 @@ - + solaris i386 amd64 + arm + aarch64 true - +