-
Notifications
You must be signed in to change notification settings - Fork 564
Added Support for Building libzip for Mac and Windows #89
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
Conversation
Xamarin.Android.sln
Outdated
| {C03E6CF1-7460-4CDC-A4AB-292BBC0F61F2}.XAIntegrationRelease|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {C03E6CF1-7460-4CDC-A4AB-292BBC0F61F2}.XAIntegrationRelease|Any CPU.Build.0 = Debug|Any CPU | ||
| {C03E6CF1-7460-4CDC-A4AB-292BBC0F61F2}.XAIntegrationDebug|AnyCPU.ActiveCfg = Debug|Any CPU | ||
| {C03E6CF1-7460-4CDC-A4AB-292BBC0F61F2}.XAIntegrationDebug|AnyCPU.Build.0 = Debug|Any CPU |
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.
These are some odd changes... IDEs are fun!
I wonder how that impacts msbuild building...
82e0794 to
14a564d
Compare
build-tools/libzip/libzip.targets
Outdated
| <Import Project="libzip.props" /> | ||
| <Import Project="libzip.projitems" /> | ||
| <Target Name="_Make" | ||
| Inputs="" |
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.
No inputs means make will always be executed.
As suggested earlier (which I can't find?!), you should follow mono-runtimes.targets:
- Have a target, e.g.
_SetConfigureAcTimeToLastCommitTimestamp, which usestouch -mto set the timestamp on e.g.configure.acto the timestamp of the last commit in that repo. - Add
_SetConfigureAcTimeToLastCommitTimestampto theDependsOnTargetsof the_Maketarget. - Depend on e.g.
configure.acas anInputsto the_Maketarget.
The timestamp + touch computation are (reasonably) quick, whereas invoking make might not be. (For example, top-level make within monodroid is slow, even when there's nothing to do!)
|
@jonpryor updated |
build-tools/libzip/libzip.targets
Outdated
| WorkingDirectory="$(LibZipSourceFullPath)" | ||
| /> | ||
| </Target> | ||
| <Target Name="_Configure" DependsOnTargets="_SetCMakeListsTxtTimeToLastCommitTimestamp"> |
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.
This should still have an Inputs="$(LibZipSourceFullPath)\CMakeLists.txt" and an appropriate Outputs.
cb6f2ef to
6441103
Compare
…ories (#89) The `TypeNameMapGenerator(IEnumerable<string>, Action<string,object[]>)` constructor attempted to use `DirectoryAssemblyResolver` to load each assembly provided by the `IEnumerable<string>` parameter, in-order, *without* updating `DirectoryAssemblyResolver.SearchDirectories`. The result is that things would only work if the assemblies were sorted in "dependency order", e.g. `mscorlib.dll` first, and any other assembly dependency before it's used. Should the order be otherwise, e.g. `{System.dll, mscorlib.dll}`, then things would horrifically break: System.IO.FileNotFoundException: Could not load assembly 'mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'. Perhaps it doesn't exist in the Mono for Android profile? File name: 'mscorlib.dll' at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference reference, Mono.Cecil.ReaderParameters parameters) [0x0015d] in <216e7ad0b70c419890a52554f287cdcd>:0 at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve (Mono.Cecil.AssemblyNameReference reference) [0x00001] in <216e7ad0b70c419890a52554f287cdcd>:0 at Mono.Cecil.MetadataResolver.Resolve (Mono.Cecil.TypeReference type) [0x0004e] in <4f9b8c8361824d0ca9025449919e12be>:0 at Mono.Cecil.ModuleDefinition.Resolve (Mono.Cecil.TypeReference type) [0x00007] in <4f9b8c8361824d0ca9025449919e12be>:0 at Mono.Cecil.TypeReference.Resolve () [0x00014] in <4f9b8c8361824d0ca9025449919e12be>:0 Improver the `TypeNameMapGenerator` constructor so that `DirectoryAssemblyResolver.SearchDirectories` is set to contain all directories for all assemblies provied, *before* attempting to load any assemblies. This allows assemblies to be provided in an arbitrary order, while still allowing assemblies to be found.
Changes: dotnet/android-tools@a6a23bb...1878e43 * dotnet/android-tools@1878e43: [Xamarin.Android.Tools.AndroidSdk] Error & Warning Localization (dotnet#96) * dotnet/android-tools@f2af06f: [Xamarin.Android.Tools.AndroidSdk] Fix a few nullability warnings (dotnet#97) * dotnet/android-tools@5718cd2: Fix sort ordering for ndk-bundle, add macOS support (dotnet#91) * dotnet/android-tools@8e63795: [Xamarin.Android.Tools.AndroidSdk] Add API-29, API-30 to KnownVersions (dotnet#89)
Changes: dotnet/android-tools@a6a23bb...1878e43 * dotnet/android-tools@1878e43: [Xamarin.Android.Tools.AndroidSdk] Error & Warning Localization (#96) * dotnet/android-tools@f2af06f: [Xamarin.Android.Tools.AndroidSdk] Fix a few nullability warnings (#97) * dotnet/android-tools@5718cd2: Fix sort ordering for ndk-bundle, add macOS support (#91) * dotnet/android-tools@8e63795: [Xamarin.Android.Tools.AndroidSdk] Add API-29, API-30 to KnownVersions (#89)
Pending submodule setup. This PR is for review only atm.
It adds the ability to build lib zip for Mac / Windows