Skip to content

Commit 2114bc8

Browse files
github-actions[bot]simonrozsivalCopilot
authored
[release/11.0.1xx-preview6] [androidsdk] Fix SDK extraction incrementality (#11824)
Refresh the extracted source.properties sentinel after unzip so MSBuild sees SDK package extraction outputs as newer than the cached zip inputs. Guard Unix staging item inference for skipped targets, and make generated package.xml outputs incremental only for packages that synthesize them. Co-authored-by: Simon Rozsival <simon@rozsival.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent e3f06b6 commit 2114bc8

1 file changed

Lines changed: 19 additions & 9 deletions

File tree

src/androidsdk/androidsdk.targets

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -348,15 +348,15 @@
348348
Condition=" '$(HostOS)' != 'Windows' "
349349
Command="unzip -q -o &quot;$(_ZipPath)&quot; -d &quot;$(_StagingDir)&quot;"
350350
/>
351-
<ItemGroup Condition=" '$(HostOS)' != 'Windows' And '$(_StripComponents)' == '1' ">
351+
<ItemGroup Condition=" '$(HostOS)' != 'Windows' And '$(_StripComponents)' == '1' And Exists('$(_StagingDir)') ">
352352
<_StagedTopDir Remove="@(_StagedTopDir)" />
353353
<_StagedTopDir Include="$([System.IO.Directory]::GetDirectories('$(_StagingDir)'))" />
354354
</ItemGroup>
355355
<PropertyGroup Condition=" '$(HostOS)' != 'Windows' ">
356356
<_GlobRoot Condition=" '$(_StripComponents)' == '1' ">@(_StagedTopDir)</_GlobRoot>
357357
<_GlobRoot Condition=" '$(_StripComponents)' == '0' ">$(_StagingDir)</_GlobRoot>
358358
</PropertyGroup>
359-
<ItemGroup Condition=" '$(HostOS)' != 'Windows' ">
359+
<ItemGroup Condition=" '$(HostOS)' != 'Windows' And '$(_GlobRoot)' != '' ">
360360
<_StagedFile Remove="@(_StagedFile)" />
361361
<_StagedFile Include="$(_GlobRoot)\**\*" />
362362
</ItemGroup>
@@ -366,24 +366,34 @@
366366
DestinationFiles="@(_StagedFile->'$(_DestDir)\%(RecursiveDir)%(Filename)%(Extension)')"
367367
/>
368368
<RemoveDir Condition=" '$(HostOS)' != 'Windows' " Directories="$(_StagingDir)" />
369+
<Error
370+
Condition=" !Exists('$(_DestDir)\source.properties') "
371+
Text="Expected Android SDK package '%(_AndroidSdkPackage.Identity)' to extract source.properties under '$(_DestDir)'."
372+
/>
373+
<!-- Unzip preserves archive mtimes, so refresh the sentinel used by MSBuild Outputs. -->
374+
<Touch Files="$(_DestDir)\source.properties" />
369375
</Target>
370376

371377
<!--
372378
Generate `package.xml` for components whose upstream zip omits one (e.g. emulator).
373379
Reads `package.xml.in` next to this targets file and replaces the `@PKG_*@`
374380
placeholders from per-item metadata (PkgPath/PkgDesc/PkgRevision).
375381
-->
376-
<Target Name="_GenerateAndroidPackageXmls"
377-
DependsOnTargets="_ExtractAndroidSdkPackages"
378-
Inputs="$(MSBuildThisFileDirectory)package.xml.in;@(_AndroidSdkPackage->'%(Destination)\source.properties')"
379-
Outputs="@(_AndroidSdkPackage->'%(Destination)\package.xml')">
382+
<Target Name="_AddGeneratedPackageXmls">
380383
<ItemGroup>
381-
<_PkgXmlItem Include="@(_AndroidSdkPackage)"
384+
<_GeneratedPackageXml Remove="@(_GeneratedPackageXml)" />
385+
<_GeneratedPackageXml Include="@(_AndroidSdkPackage)"
382386
Condition=" '%(_AndroidSdkPackage.GeneratePackageXml)' == 'true' " />
383387
</ItemGroup>
388+
</Target>
389+
390+
<Target Name="_GenerateAndroidPackageXmls"
391+
DependsOnTargets="_ExtractAndroidSdkPackages;_AddGeneratedPackageXmls"
392+
Inputs="$(MSBuildThisFileDirectory)package.xml.in;@(_GeneratedPackageXml->'%(Destination)\source.properties')"
393+
Outputs="@(_GeneratedPackageXml->'%(Destination)\package.xml')">
384394
<WriteLinesToFile
385-
File="%(_PkgXmlItem.Destination)\package.xml"
386-
Lines="$([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)package.xml.in').Replace('@PKG_PATH@', '%(_PkgXmlItem.PkgPath)').Replace('@PKG_DESC@', '%(_PkgXmlItem.PkgDesc)').Replace('@PKG_REVISION_MAJOR@', $([System.Version]::Parse('%(_PkgXmlItem.PkgRevision)').Major.ToString())).Replace('@PKG_REVISION_MINOR@', $([System.Version]::Parse('%(_PkgXmlItem.PkgRevision)').Minor.ToString())).Replace('@PKG_REVISION_MICRO@', $([System.Version]::Parse('%(_PkgXmlItem.PkgRevision)').Build.ToString())))"
395+
File="%(_GeneratedPackageXml.Destination)\package.xml"
396+
Lines="$([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)package.xml.in').Replace('@PKG_PATH@', '%(_GeneratedPackageXml.PkgPath)').Replace('@PKG_DESC@', '%(_GeneratedPackageXml.PkgDesc)').Replace('@PKG_REVISION_MAJOR@', $([System.Version]::Parse('%(_GeneratedPackageXml.PkgRevision)').Major.ToString())).Replace('@PKG_REVISION_MINOR@', $([System.Version]::Parse('%(_GeneratedPackageXml.PkgRevision)').Minor.ToString())).Replace('@PKG_REVISION_MICRO@', $([System.Version]::Parse('%(_GeneratedPackageXml.PkgRevision)').Build.ToString())))"
387397
Overwrite="true"
388398
/>
389399
</Target>

0 commit comments

Comments
 (0)