This will make the dependency exclude="none" in the nuspec which is not the default (by default build/ is excluded from dependencies which is not good for us)
GenAPI is a very brittle tool, especially to have run xplat. Since we don't anticipate doing these typeforwards again as Android Support 28.x is the last support library version that will be released, we are going to just manually commit the generated typeforwards this one time, and make it so that msbuild target won't actually run on build. This resolves some headaches of trying to make something work that won't be needed (at least in the same way) again.
GenAPI is super fickle. It doesn't like some trailing slashes in some cases, or ; instead of , as a path separator. Also, looks like the v4 project was missing some expected msbuild properties when invoked from the command line on incremental builds, so hard coded things like the intermediate output path and the v9.0 / monoandroid90 framework version which we'll need to eventually bump (maybe not since there are no more support libs?).
This reverts db74a74af8
Which should be fixed by 15311bc38b which causes the .targets file to be properly imported for transitive nuget dependencies of a project.
Otherwise the nupkg's get created with PrivateAssets="build" in them which causes the build bits (such as .targets) to not be referenced in transitive dependencies.
We were running into issues where the .jar was being embedded as the artifact id which in multiple cases was 'common.jar' and would cause duplicate .jar errors when building in an app. We are renaming them to the full groupid.artifactid instead to make them unique.
Build tasks were moved, new buildtasks were added for invalid support version configurations.
The merge.targets now get merged into the .targets template.
The build tasks .dll’s now get packaged into the appropriate projects.
This commit marks a different approach to maintaining the bindings, and now uses a binding generation tool currently called AndroidBinderator.
This tool will fetch all the required maven artifact information including dependency chains, binaries, etc, and generate Xamarin.Android binding projects for the maven artifacts based on Razor templates for both the .csproj and .targets files.
This also uses new SDK style projects which makes packaging nugets easier, especially for including the correct dependency chains in the nupkg’s (which is automated from the maven repository info).
This is a work in progress.