Skip to content

Conversation

@dellis1972
Copy link
Contributor

Pending submodule setup. This PR is for review only atm.

It adds the ability to build lib zip for Mac / Windows

{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
Copy link
Contributor

@jonpryor jonpryor Jun 23, 2016

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...

@dellis1972 dellis1972 force-pushed the libzip branch 5 times, most recently from 82e0794 to 14a564d Compare June 27, 2016 15:23
<Import Project="libzip.props" />
<Import Project="libzip.projitems" />
<Target Name="_Make"
Inputs=""
Copy link
Contributor

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:

  1. Have a target, e.g. _SetConfigureAcTimeToLastCommitTimestamp, which uses touch -m to set the timestamp on e.g. configure.ac to the timestamp of the last commit in that repo.
  2. Add _SetConfigureAcTimeToLastCommitTimestamp to the DependsOnTargets of the _Make target.
  3. Depend on e.g. configure.ac as an Inputs to the _Make target.

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!)

@dellis1972 dellis1972 changed the title Added Support for Building libzip for Mac and Windows [REVIEW ONLY] Added Support for Building libzip for Mac and Windows Jun 28, 2016
@dellis1972
Copy link
Contributor Author

@jonpryor updated

WorkingDirectory="$(LibZipSourceFullPath)"
/>
</Target>
<Target Name="_Configure" DependsOnTargets="_SetCMakeListsTxtTimeToLastCommitTimestamp">
Copy link
Contributor

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.

@jonpryor jonpryor merged commit f3d62b6 into dotnet:master Jun 29, 2016
radical pushed a commit that referenced this pull request May 8, 2018
…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.
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Oct 8, 2020
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)
jonpryor added a commit that referenced this pull request Oct 12, 2020
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)
@github-actions github-actions bot locked and limited conversation to collaborators Feb 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants