[dotnet] Only list linker flags for assemblies after we've computed them.
This means not listing per-assembly linker flags for only binding projects, but delay it until we've computed the linker flags for all assemblies (and reflect this in variable names as well).
This commit is contained in:
Родитель
d26bdf97bf
Коммит
09e6c0329f
|
@ -559,9 +559,9 @@
|
|||
<ReadItemsFromFile SessionId="$(BuildSessionId)" File="$(_LinkerItemsDirectory)/_BindingLibraryLinkWith.items" Condition="Exists('$(_LinkerItemsDirectory)/_BindingLibraryLinkWith.items')">
|
||||
<Output TaskParameter="Items" ItemName="_BindingLibraryLinkWith" />
|
||||
</ReadItemsFromFile>
|
||||
<!-- Load _BindingLibraryLinkerFlags -->
|
||||
<ReadItemsFromFile SessionId="$(BuildSessionId)" File="$(_LinkerItemsDirectory)/_BindingLibraryLinkerFlags.items" Condition="Exists('$(_LinkerItemsDirectory)/_BindingLibraryLinkerFlags.items')">
|
||||
<Output TaskParameter="Items" ItemName="_BindingLibraryLinkerFlags" />
|
||||
<!-- Load _AssemblyLinkerFlags -->
|
||||
<ReadItemsFromFile SessionId="$(BuildSessionId)" File="$(_LinkerItemsDirectory)/_AssemblyLinkerFlags.items" Condition="Exists('$(_LinkerItemsDirectory)/_AssemblyLinkerFlags.items')">
|
||||
<Output TaskParameter="Items" ItemName="_AssemblyLinkerFlags" />
|
||||
</ReadItemsFromFile>
|
||||
<!-- Load _BindingLibraryFrameworks -->
|
||||
<ReadItemsFromFile SessionId="$(BuildSessionId)" File="$(_LinkerItemsDirectory)/_BindingLibraryFrameworks.items" Condition="Exists('$(_LinkerItemsDirectory)/_BindingLibraryFrameworks.items')">
|
||||
|
@ -851,7 +851,7 @@
|
|||
EntitlementsInExecutable="$(_CompiledEntitlements)"
|
||||
FrameworkRPath="$(_EmbeddedFrameworksRPath)"
|
||||
Frameworks="@(_NativeExecutableFrameworks);@(_BindingLibraryFrameworks)"
|
||||
LinkerFlags="@(_BindingLibraryLinkerFlags);@(_ReferencesLinkerFlags);@(_MainLinkerFlags)"
|
||||
LinkerFlags="@(_AssemblyLinkerFlags);@(_ReferencesLinkerFlags);@(_MainLinkerFlags)"
|
||||
LinkWithLibraries="@(_XamarinMainLibraries);@(_BindingLibraryLinkWith);@(_MainLinkWith)"
|
||||
MinimumOSVersion="$(_MinimumOSVersion)"
|
||||
NativeReferences="@(_FileNativeReference);@(_FrameworkNativeReference)"
|
||||
|
|
|
@ -27,6 +27,23 @@ namespace Xamarin.Linker {
|
|||
}
|
||||
|
||||
Configuration.WriteOutputForMSBuild ("_LinkerFrameworks", linkerFrameworks);
|
||||
|
||||
// Tell MSBuild about any additional linker flags we found
|
||||
var linkerFlags = new List<MSBuildItem> ();
|
||||
foreach (var asm in Configuration.Target.Assemblies) {
|
||||
if (asm.LinkerFlags == null)
|
||||
continue;
|
||||
foreach (var arg in asm.LinkerFlags) {
|
||||
var item = new MSBuildItem {
|
||||
Include = arg,
|
||||
Metadata = new Dictionary<string, string> {
|
||||
{ "Assembly", asm.Identity },
|
||||
},
|
||||
};
|
||||
linkerFlags.Add (item);
|
||||
}
|
||||
}
|
||||
Configuration.WriteOutputForMSBuild ("_AssemblyLinkerFlags", linkerFlags);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,23 +55,6 @@ namespace Xamarin.Linker {
|
|||
}
|
||||
}
|
||||
Configuration.WriteOutputForMSBuild ("_BindingLibraryFrameworks", frameworks);
|
||||
|
||||
// Tell MSBuild about any additional linker flags we found
|
||||
var linkerFlags = new List<MSBuildItem> ();
|
||||
foreach (var asm in Configuration.Target.Assemblies) {
|
||||
if (asm.LinkerFlags == null)
|
||||
continue;
|
||||
foreach (var arg in asm.LinkerFlags) {
|
||||
var item = new MSBuildItem {
|
||||
Include = arg,
|
||||
Metadata = new Dictionary<string, string> {
|
||||
{ "Assembly", asm.Identity },
|
||||
},
|
||||
};
|
||||
linkerFlags.Add (item);
|
||||
}
|
||||
}
|
||||
Configuration.WriteOutputForMSBuild ("_BindingLibraryLinkerFlags", linkerFlags);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче