-
Notifications
You must be signed in to change notification settings - Fork 564
Build both both debug and release libmono-android regardless of config. #105
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 both both debug and release libmono-android regardless of config. #105
Conversation
|
Sources now incrementally rebuild as expected. |
src/monodroid/monodroid.targets
Outdated
| /> | ||
| <Exec | ||
| Command="$(AndroidToolchainDirectory)\ndk\ndk-build CONFIGURATION=$(Configuration) V=1" | ||
| Command="$(AndroidToolchainDirectory)\ndk\ndk-build CONFIGURATION=$(Configuration) NDK_LIBS_OUT=./debug/libs NDK_OUT=./debug/obj V=1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Brilliant! Where'd you find $(NDK_LIBS_OUT) and $(NDK_OUT)?
That said, could we "reverse" the order from debug\... to obj\debug\..., placing the build artifacts within the obj directory? obj is already ignored by git status, while debug and release won't be, so by using obj\{debug,release} we'll reduce git status spew.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Whether you build xamarin-android in debug mode or release mode should not matter when user wants to build app either in debug or release mode. Current build system builds only debug mono-android for Debug configuration and release mono-android for Release configuration, which only makes it useless and annoying to diagnose the issues that depends on app build configuration. Build both libmono-android regardless of xamarin-android builder's configuration and make it work.
7057b42 to
97e5df0
Compare
Eventually -- sooner rather than later? -- we'd like to support building xamarin-android using `msbuild` instead of `xbuild`. Unfortunately, that doesn't work, for a variety of reasons. Appropos to `Xamarin.Android.Cecil` is that if we, from a *clean* state, build *just* `xamarin-android/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj` without a solution, the build fails because `Xamarin.Android.Cecil.dll` and `Xamarin.Android.Cecil.Mdb.dll` cannot be resolved or found, because they're copied into the wrong directories. Cleanup the `Xamarin.Android.Cecil` project files so that they increase consistency with the other project files, e.g. `$(OutputPath)` is `..\..\bin\$(Configuration)`, not `bin\$(Configuration)`, which also allows a from-clean `msbuild`-based build of `Xamarin.Android.Build.Tasks.csproj` to not be stopped when attempting to build `Xamarin.Android.Cecil.dll`.
Changes: dotnet/android-tools@fc3c2ac...20f6112 * dotnet/android-tools@20f6112: Bump LibZipSharp to 2.0.4 (#166) * dotnet/android-tools@e4f0d59: Add support for writing android:roundIcon to Android manifest (#162) Changes: dotnet/android-libzipsharp@2.0.3...2.0.4 * dotnet/android-libzipsharp@8ac30f3: Bump Version to 2.0.4 for Release (#109) * dotnet/android-libzipsharp@8e22fe1: Use RuntimeInformation to determine the Processor architecture. (#108) * dotnet/android-libzipsharp@33f5b01: Bump vcpkg to latest version (#106) * dotnet/android-libzipsharp@6fd0a14: [ci] Use new EO compliant build pools (#107) * dotnet/android-libzipsharp@d339358: Add a new more complex unit test (#105) Other changes: * 32-bit `libZipSharpNative.dll` is now in `x86\libZipSharpNative.dll`. * 64-bit `lib64\libZipSharpNative.dll` is now in `x64\libZipSharpNative.dll`.
Changes: dotnet/android-tools@fc3c2ac...20f6112 * dotnet/android-tools@20f6112: Bump LibZipSharp to 2.0.4 (dotnet#166) * dotnet/android-tools@e4f0d59: Add support for writing android:roundIcon to Android manifest (dotnet#162) Changes: dotnet/android-libzipsharp@2.0.3...2.0.4 * dotnet/android-libzipsharp@8ac30f3: Bump Version to 2.0.4 for Release (dotnet#109) * dotnet/android-libzipsharp@8e22fe1: Use RuntimeInformation to determine the Processor architecture. (dotnet#108) * dotnet/android-libzipsharp@33f5b01: Bump vcpkg to latest version (dotnet#106) * dotnet/android-libzipsharp@6fd0a14: [ci] Use new EO compliant build pools (dotnet#107) * dotnet/android-libzipsharp@d339358: Add a new more complex unit test (dotnet#105) Other changes: * 32-bit `libZipSharpNative.dll` is now in `x86\libZipSharpNative.dll`. * 64-bit `lib64\libZipSharpNative.dll` is now in `x64\libZipSharpNative.dll`.
Changes: dotnet/android-tools@fc3c2ac...20f6112 * dotnet/android-tools@20f6112: Bump LibZipSharp to 2.0.4 (dotnet#166) * dotnet/android-tools@e4f0d59: Add support for writing android:roundIcon to Android manifest (dotnet#162) Changes: dotnet/android-libzipsharp@2.0.3...2.0.4 * dotnet/android-libzipsharp@8ac30f3: Bump Version to 2.0.4 for Release (#109) * dotnet/android-libzipsharp@8e22fe1: Use RuntimeInformation to determine the Processor architecture. (#108) * dotnet/android-libzipsharp@33f5b01: Bump vcpkg to latest version (#106) * dotnet/android-libzipsharp@6fd0a14: [ci] Use new EO compliant build pools (#107) * dotnet/android-libzipsharp@d339358: Add a new more complex unit test (#105) Other changes: * 32-bit `libZipSharpNative.dll` is now in `x86\libZipSharpNative.dll`. * 64-bit `lib64\libZipSharpNative.dll` is now in `x64\libZipSharpNative.dll`.

Whether you build xamarin-android in debug mode or release mode
should not matter when user wants to build app either in debug or
release mode. Current build system builds only debug mono-android for
Debug configuration and release mono-android for Release configuration,
which only makes it useless and annoying to diagnose the issues that
depends on app build configuration.
Build both libmono-android regardless of xamarin-android builder's
configuration and make it work.