-
Notifications
You must be signed in to change notification settings - Fork 526
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
[Xamarin.Android.Build.Tasks] move $(AdbTarget) out of build.props #2428
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
`$(IntermediateOutputPath)build.props`, or `$(_AndroidBuildPropertiesCache)` is a file used as an `Input` to many MSBuild targets. We write many *important* properties in this file as a mechanism to trigger most of the build to rerun. So for example, if you enabled proguard, the `$(AndroidEnableProguard)` MSBuild property would re-run a lot of the build, such as `_CompileJava`, `_CompileDex`, etc. Right now there are two problematic properties in this file: - `$(AdbTarget)` - `$(AdbOptions)` This means if you switched from a different Android deploy target: emulator to device, or just a different device--it would run a full build! `$(AdbTarget)` and `$(AdbOptions)` need to trigger MSBuild targets related to "Fast Deployment" to re-run, but not everything. What makes matters even worse, is sometimes design-time builds will pass a blank `$(AdbTarget)`. This causes expensive targets to run again. I've moved these properties to a new file: - `$(IntermediateOutputPath)adb.props` or - `$(_AdbPropertiesCache)` Then downstream in monodroid, there is a single line that needs to be changed from `$(_AdbPropertiesCache)` to `$(_AdbPropertiesCache)`. This will re-trigger the APK to be installed when devices change.
dellis1972
approved these changes
Nov 12, 2018
jonpryor
added a commit
to jonpryor/xamarin-android
that referenced
this pull request
Jul 14, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1 * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (dotnet#2498) * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1 * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (dotnet#2495) * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2 * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (dotnet#2493) * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (dotnet#2494) * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (dotnet#2473) * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (dotnet#2472) * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (dotnet#2471) * JamesNK/Newtonsoft.Json@0a56633b: Fixes dotnet#2372 - variable typos (dotnet#2465) * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (dotnet#2463) * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (dotnet#2462) * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (dotnet#2452) * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (dotnet#2448) * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (dotnet#2442) * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (dotnet#2438) * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (dotnet#2416) * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (dotnet#2383) * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (dotnet#2428) * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (dotnet#2424) * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (dotnet#2304) * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (dotnet#2226) * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (dotnet#2228) * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (dotnet#2224)
jonpryor
added a commit
to jonpryor/xamarin-android
that referenced
this pull request
Jul 15, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1 * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (dotnet#2498) * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1 * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (dotnet#2495) * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2 * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (dotnet#2493) * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (dotnet#2494) * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (dotnet#2473) * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (dotnet#2472) * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (dotnet#2471) * JamesNK/Newtonsoft.Json@0a56633b: Fixes dotnet#2372 - variable typos (dotnet#2465) * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (dotnet#2463) * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (dotnet#2462) * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (dotnet#2452) * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (dotnet#2448) * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (dotnet#2442) * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (dotnet#2438) * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (dotnet#2416) * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (dotnet#2383) * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (dotnet#2428) * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (dotnet#2424) * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (dotnet#2304) * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (dotnet#2226) * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (dotnet#2228) * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (dotnet#2224) The `PackagingTest.NetStandardReferenceTest()` test is updated to no longer list `Microsoft.CSharp.dll` as an expected file, as with `Newtonsoft.Json.dll` v13.0.1, our build now consumes the netstandard2.0-profile version, not the netstandard1.3 version, and the netstandard 2.0 version doesn't require `Microsoft.CSharp.dll`.
jonpryor
added a commit
to jonpryor/xamarin-android
that referenced
this pull request
Jul 15, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1 * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (dotnet#2498) * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1 * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (dotnet#2495) * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2 * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (dotnet#2493) * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (dotnet#2494) * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (dotnet#2473) * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (dotnet#2472) * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (dotnet#2471) * JamesNK/Newtonsoft.Json@0a56633b: Fixes dotnet#2372 - variable typos (dotnet#2465) * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (dotnet#2463) * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (dotnet#2462) * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (dotnet#2452) * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (dotnet#2448) * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (dotnet#2442) * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (dotnet#2438) * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (dotnet#2416) * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (dotnet#2383) * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (dotnet#2428) * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (dotnet#2424) * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (dotnet#2304) * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (dotnet#2226) * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (dotnet#2228) * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (dotnet#2224) The `PackagingTest.NetStandardReferenceTest()` test is updated, as the list of implicitly referenced assemblies changed: * `Microsoft.CSharp.dll` is no longer referenced * `System.Data.dll` is now referenced. It appears that the primary cause of this change is that with `Newtonsoft.Json` 12.0.3, the .NET Standard 1.3-profile assemblies were included into the app, while with 13.0.1, the .NET Standard-2.0 profile assemblies are instead used.
jonpryor
added a commit
to jonpryor/xamarin-android
that referenced
this pull request
Jul 16, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1 * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (dotnet#2498) * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1 * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (dotnet#2495) * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2 * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (dotnet#2493) * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (dotnet#2494) * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (dotnet#2473) * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (dotnet#2472) * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (dotnet#2471) * JamesNK/Newtonsoft.Json@0a56633b: Fixes dotnet#2372 - variable typos (dotnet#2465) * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (dotnet#2463) * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (dotnet#2462) * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (dotnet#2452) * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (dotnet#2448) * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (dotnet#2442) * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (dotnet#2438) * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (dotnet#2416) * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (dotnet#2383) * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (dotnet#2428) * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (dotnet#2424) * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (dotnet#2304) * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (dotnet#2226) * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (dotnet#2228) * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (dotnet#2224) The `PackagingTest.NetStandardReferenceTest()` test is updated, as the list of implicitly referenced assemblies changed: * `Microsoft.CSharp.dll` is no longer referenced * `System.Data.dll` is now referenced. It appears that the primary cause of this change is that with `Newtonsoft.Json` 12.0.3, the .NET Standard 1.3-profile assemblies were included into the app, while with 13.0.1, the .NET Standard-2.0 profile assemblies are instead used.
jonpryor
added a commit
that referenced
this pull request
Jul 16, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1 * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (#2498) * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1 * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (#2495) * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2 * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (#2493) * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (#2494) * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (#2473) * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (#2472) * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (#2471) * JamesNK/Newtonsoft.Json@0a56633b: Fixes #2372 - variable typos (#2465) * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (#2463) * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (#2462) * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (#2452) * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (#2448) * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (#2442) * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (#2438) * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (#2416) * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (#2383) * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (#2428) * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (#2424) * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (#2304) * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (#2226) * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (#2228) * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (#2224) The `PackagingTest.NetStandardReferenceTest()` test is updated, as the list of implicitly referenced assemblies changed: * `Microsoft.CSharp.dll` is no longer referenced * `System.Data.dll` is now referenced. It appears that the primary cause of this change is that with `Newtonsoft.Json` 12.0.3, the .NET Standard 1.3-profile assemblies were included into the app, while with 13.0.1, the .NET Standard-2.0 profile assemblies are instead used.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
$(IntermediateOutputPath)build.props
, or$(_AndroidBuildPropertiesCache)
is a file used as anInput
to manyMSBuild targets. We write many important properties in this file as
a mechanism to trigger most of the build to rerun. So for example, if
you enabled proguard, the
$(AndroidEnableProguard)
MSBuild propertywould re-run a lot of the build, such as
_CompileJava
,_CompileDex
, etc.Right now there are two problematic properties in this file:
$(AdbTarget)
$(AdbOptions)
This means if you switched from a different Android deploy target:
emulator to device, or just a different device--it would run a full
build!
$(AdbTarget)
and$(AdbOptions)
need to trigger MSBuildtargets related to "Fast Deployment" to re-run, but not everything.
What makes matters even worse, is sometimes design-time builds will
pass a blank
$(AdbTarget)
. This causes expensive targets to runagain.
I've moved these properties to a new file:
$(IntermediateOutputPath)adb.props
or$(_AdbPropertiesCache)
Then downstream in monodroid, there is a single line that needs to be
changed from
$(_AdbPropertiesCache)
to$(_AdbPropertiesCache)
.This will re-trigger the APK to be installed when devices change.