2016-04-21 16:40:25 +03:00
|
|
|
<!--
|
|
|
|
***********************************************************************************************
|
|
|
|
Xamarin.iOS.ObjcBinding.CSharp.targets
|
|
|
|
|
|
|
|
WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
|
|
|
|
created a backup copy. Incorrect changes to this file will make it
|
|
|
|
impossible to load or build your projects from the command-line or the IDE.
|
|
|
|
|
|
|
|
This file imports the version- and platform-specific targets for the project importing
|
|
|
|
this file. This file also defines targets to produce an error if the specified targets
|
|
|
|
file does not exist, but the project is built anyway (command-line or IDE build).
|
|
|
|
|
|
|
|
Copyright (C) 2013-2016 Xamarin Inc. All rights reserved.
|
|
|
|
***********************************************************************************************
|
|
|
|
-->
|
|
|
|
|
|
|
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
|
|
<UsingTask TaskName="Xamarin.iOS.Tasks.PrepareNativeReferences" AssemblyFile="Xamarin.iOS.Tasks.dll" />
|
|
|
|
<UsingTask TaskName="Xamarin.iOS.Tasks.BTouch" AssemblyFile="Xamarin.iOS.Tasks.dll" />
|
2018-12-12 17:55:57 +03:00
|
|
|
<UsingTask TaskName="Xamarin.iOS.Tasks.CreateBindingResourcePackage" AssemblyFile="Xamarin.iOS.Tasks.dll" />
|
2018-01-08 22:29:52 +03:00
|
|
|
<UsingTask TaskName="Xamarin.MacDev.Tasks.Zip" AssemblyFile="Xamarin.iOS.Tasks.dll" />
|
2016-04-21 16:40:25 +03:00
|
|
|
|
2018-01-08 22:29:52 +03:00
|
|
|
<UsingTask TaskName="Microsoft.Build.Tasks.Delete" AssemblyFile="Xamarin.iOS.Tasks.dll"/>
|
2017-10-09 23:41:37 +03:00
|
|
|
|
2016-04-21 16:40:25 +03:00
|
|
|
<Import Project="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).Before.targets"
|
|
|
|
Condition="Exists('$(MSBuildThisFileDirectory)$(MSBuildThisFileName).Before.targets')"/>
|
|
|
|
|
|
|
|
<Import Project="Xamarin.iOS.ObjCBinding.CSharp.props"/>
|
|
|
|
|
|
|
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
|
|
|
<Import Project="Xamarin.iOS.ObjCBinding.Common.targets" />
|
2018-12-12 17:55:57 +03:00
|
|
|
<Import Project="Xamarin.Shared.targets"/>
|
2016-04-21 16:40:25 +03:00
|
|
|
|
|
|
|
<PropertyGroup>
|
|
|
|
<_GeneratedSourcesFileList>$(GeneratedSourcesDir)sources.list</_GeneratedSourcesFileList>
|
|
|
|
|
2017-06-30 19:35:48 +03:00
|
|
|
<XamarinDefineConstants Condition="'$(XamarinDefineConstants)' == ''">__UNIFIED__;__MOBILE__;__IOS__</XamarinDefineConstants>
|
|
|
|
<DefineConstants>$(XamarinDefineConstants);$(DefineConstants)</DefineConstants>
|
2016-04-21 16:40:25 +03:00
|
|
|
|
2018-12-12 17:55:57 +03:00
|
|
|
<!-- Add our own pre and post build steps -->
|
2016-04-21 16:40:25 +03:00
|
|
|
<CompileDependsOn>
|
|
|
|
_GenerateBindings;
|
|
|
|
_PrepareNativeReferences;
|
|
|
|
_CollectGeneratedSources;
|
|
|
|
$(CompileDependsOn)
|
2018-12-12 17:55:57 +03:00
|
|
|
_CreateBindingResourcePackage;
|
2016-04-21 16:40:25 +03:00
|
|
|
</CompileDependsOn>
|
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
<!-- Override the CoreCompile Target to use btouch -->
|
|
|
|
<Target Name="_GenerateBindings"
|
|
|
|
Inputs="$(MSBuildAllProjects);@(ObjcBindingApiDefinition);@(ObjcBindingCoreSource);@(ReferencePath);@(ObjcBindingNativeLibrary)"
|
2017-09-07 23:31:43 +03:00
|
|
|
Outputs="$(_GeneratedSourcesFileList)"
|
|
|
|
Condition="'$(DesignTimeBuild)' != 'true'">
|
2016-04-21 16:40:25 +03:00
|
|
|
|
|
|
|
<PropertyGroup>
|
|
|
|
<BTouchEmitDebugInformation>false</BTouchEmitDebugInformation>
|
|
|
|
<BTouchEmitDebugInformation Condition="'$(Debug)' != ''">true</BTouchEmitDebugInformation>
|
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
<Message Text="BTouchEmitDebugInformation: $(BTouchEmitDebugInformation)"/>
|
|
|
|
|
|
|
|
<BTouch
|
|
|
|
SessionId="$(BuildSessionId)"
|
|
|
|
OutputPath="$(OutputPath)"
|
|
|
|
ObjectiveCLibraries="@(ObjcBindingNativeLibrary)"
|
|
|
|
AdditionalLibPaths="$(AdditionalLibPaths)"
|
|
|
|
AllowUnsafeBlocks="$(AllowUnsafeBlocks)"
|
|
|
|
ApiDefinitions="@(ObjcBindingApiDefinition)"
|
|
|
|
BaseLibDll="$(BaseLibDllPath)"
|
|
|
|
CoreSources="@(ObjcBindingCoreSource)"
|
|
|
|
DefineConstants="$(DefineConstants)"
|
2017-04-10 09:14:42 +03:00
|
|
|
EmitDebugInformation="$(BTouchEmitDebugInformation)"
|
|
|
|
ExtraArgs="$(BTouchExtraArgs)"
|
2016-04-21 16:40:25 +03:00
|
|
|
GeneratedSourcesDir="$(GeneratedSourcesDir)"
|
|
|
|
GeneratedSourcesFileList="$(_GeneratedSourcesFileList)"
|
|
|
|
Namespace="$(Namespace)"
|
|
|
|
OutputAssembly="$(OutputAssembly)"
|
2017-01-26 19:24:14 +03:00
|
|
|
ProcessEnums="$(ProcessEnums)"
|
2017-04-10 09:14:42 +03:00
|
|
|
ProjectDir="$(MSBuildProjectDirectory)"
|
2017-05-19 22:34:05 +03:00
|
|
|
References="@(ReferencePath)"
|
2017-02-17 22:53:58 +03:00
|
|
|
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
|
2016-04-21 16:40:25 +03:00
|
|
|
BTouchToolPath="$(BTouchToolPath)"
|
2019-10-26 00:44:35 +03:00
|
|
|
BTouchToolExe="$(BTouchToolExe)"
|
|
|
|
StandardOutputImportance="High"
|
|
|
|
>
|
2016-04-21 16:40:25 +03:00
|
|
|
</BTouch>
|
|
|
|
</Target>
|
|
|
|
|
2017-09-07 23:31:43 +03:00
|
|
|
<Target Name="_PrepareNativeReferences" Condition="'$(DesignTimeBuild)' != 'true'">
|
2016-04-21 16:40:25 +03:00
|
|
|
<PrepareNativeReferences
|
|
|
|
SessionId="$(BuildSessionId)"
|
|
|
|
IntermediateOutputPath="$(IntermediateOutputPath)"
|
|
|
|
NativeReferences="@(NativeReference)">
|
2018-12-12 17:55:57 +03:00
|
|
|
<Output ItemName="ManifestResourceWithNoCulture" TaskParameter="EmbeddedResources" Condition="'$(NoBindingEmbedding)' != 'true'"/>
|
|
|
|
<Output ItemName="_NativeFramework" TaskParameter="NativeFrameworks" Condition="'$(NoBindingEmbedding)' != 'true'"/>
|
2016-04-21 16:40:25 +03:00
|
|
|
<Output ItemName="Compile" TaskParameter="LinkWithAttributes" />
|
|
|
|
</PrepareNativeReferences>
|
|
|
|
</Target>
|
|
|
|
|
|
|
|
<Target Name="_CollectNativeFrameworkResources" Returns="@(_NativeFrameworkResource)" DependsOnTargets="_PrepareNativeReferences">
|
|
|
|
<CreateItem Include="@(_NativeFramework -> '%(Identity)\**\*.*')">
|
|
|
|
<Output ItemName="_NativeFrameworkResource" TaskParameter="Include" />
|
|
|
|
</CreateItem>
|
|
|
|
</Target>
|
|
|
|
|
2017-10-09 23:41:37 +03:00
|
|
|
<Target Name="_CompressNativeFrameworkResources" Inputs="@(_NativeFrameworkResource)" Outputs="$(IntermediateOutputPath)%(_NativeFramework.Filename)%(_NativeFramework.Extension)" DependsOnTargets="_CollectNativeFrameworkResources">
|
|
|
|
<Delete SessionId="$(BuildSessionId)" Condition="'$(IsMacEnabled)' == 'true'" Files="$(IntermediateOutputPath)%(_NativeFramework.Filename)%(_NativeFramework.Extension)" />
|
|
|
|
|
2016-04-21 16:40:25 +03:00
|
|
|
<Zip
|
|
|
|
SessionId="$(BuildSessionId)"
|
[msbuild] Rename and unify to IsMacEnabled (#193)
* [msbuild] Rename and unify to IsMacEnabled
We previously had an MtouchTargetsEnabled and a separate
IsMacTargetsEnabled for iOS and XM, when both actually
meant the same thing: is a Mac enabled for building this
project?
Note that instead of "targets", we make it more generic,
since the condition can be used in a task, a property
group or whatever really, not just to enable/disable
certain targets.
Also, we call it Enabled, rather than Connected or
Available, since it's more natural to think that all such
tasks/targets are enabled when you're building locally
on the Mac. Connected wouldn't have been appropriate, and
Available would be confusing.
For backwards compatibility I've kepd the old MtouchTargetsEnabled
pointing to IsMacEnabled. We'll change our Windows targets
accordingly to also unify this property and how/where it's
set.
* [msbuild] Use full condition comparison for robustness
This is the proper way to use a boolean in a condition, and
prevents errors whenever the property is an empty string or
anything other than a boolean value.
2016-06-16 20:14:43 +03:00
|
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
2016-04-21 16:40:25 +03:00
|
|
|
ToolExe="$(ZipExe)"
|
|
|
|
ToolPath="$(ZipPath)"
|
|
|
|
Recursive="true"
|
|
|
|
Symlinks="true"
|
|
|
|
Sources="%(_NativeFramework.Identity)"
|
|
|
|
OutputFile="$(IntermediateOutputPath)%(_NativeFramework.Filename)%(_NativeFramework.Extension)"
|
|
|
|
WorkingDirectory="%(_NativeFramework.Identity)" >
|
|
|
|
</Zip>
|
|
|
|
|
|
|
|
<CreateItem Include="$(IntermediateOutputPath)%(_NativeFramework.Filename)%(_NativeFramework.Extension)">
|
|
|
|
<Output TaskParameter="Include" ItemName="ManifestResourceWithNoCulture" />
|
|
|
|
</CreateItem>
|
|
|
|
</Target>
|
|
|
|
|
|
|
|
<!-- OBSOLETE -->
|
|
|
|
<Target Name="_CollectObjCBindingNativeFrameworkResources" Returns="@(_ObjCBindingNativeFrameworkResource)">
|
|
|
|
<CreateItem Include="@(ObjCBindingNativeFramework -> '%(Identity)\**\*.*')">
|
|
|
|
<Output ItemName="_ObjCBindingNativeFrameworkResource" TaskParameter="Include" />
|
|
|
|
</CreateItem>
|
|
|
|
</Target>
|
|
|
|
|
2017-10-09 23:41:37 +03:00
|
|
|
<Target Name="_CompressObjCBindingNativeFrameworkResources" Inputs="@(_ObjCBindingNativeFrameworkResource)" Outputs="$(IntermediateOutputPath)%(ObjCBindingNativeFramework.Filename)%(ObjCBindingNativeFramework.Extension)" DependsOnTargets="_CollectObjCBindingNativeFrameworkResources">
|
|
|
|
<Delete SessionId="$(BuildSessionId)" Condition="'$(IsMacEnabled)' == 'true'" Files="$(IntermediateOutputPath)%(ObjCBindingNativeFramework.Filename)%(ObjCBindingNativeFramework.Extension)" />
|
|
|
|
|
2016-04-21 16:40:25 +03:00
|
|
|
<Zip
|
|
|
|
SessionId="$(BuildSessionId)"
|
[msbuild] Rename and unify to IsMacEnabled (#193)
* [msbuild] Rename and unify to IsMacEnabled
We previously had an MtouchTargetsEnabled and a separate
IsMacTargetsEnabled for iOS and XM, when both actually
meant the same thing: is a Mac enabled for building this
project?
Note that instead of "targets", we make it more generic,
since the condition can be used in a task, a property
group or whatever really, not just to enable/disable
certain targets.
Also, we call it Enabled, rather than Connected or
Available, since it's more natural to think that all such
tasks/targets are enabled when you're building locally
on the Mac. Connected wouldn't have been appropriate, and
Available would be confusing.
For backwards compatibility I've kepd the old MtouchTargetsEnabled
pointing to IsMacEnabled. We'll change our Windows targets
accordingly to also unify this property and how/where it's
set.
* [msbuild] Use full condition comparison for robustness
This is the proper way to use a boolean in a condition, and
prevents errors whenever the property is an empty string or
anything other than a boolean value.
2016-06-16 20:14:43 +03:00
|
|
|
Condition="'$(IsMacEnabled)' == 'true'"
|
2016-04-21 16:40:25 +03:00
|
|
|
ToolExe="$(ZipExe)"
|
|
|
|
ToolPath="$(ZipPath)"
|
|
|
|
Recursive="true"
|
|
|
|
Symlinks="true"
|
|
|
|
Sources="%(ObjCBindingNativeFramework.Identity)"
|
|
|
|
OutputFile="$(IntermediateOutputPath)%(ObjCBindingNativeFramework.Filename)%(ObjCBindingNativeFramework.Extension)"
|
2017-08-17 15:56:08 +03:00
|
|
|
WorkingDirectory="%(ObjCBindingNativeFramework.Identity)" >
|
2016-04-21 16:40:25 +03:00
|
|
|
</Zip>
|
|
|
|
|
|
|
|
<CreateItem Include="$(IntermediateOutputPath)%(ObjCBindingNativeFramework.Filename)%(ObjCBindingNativeFramework.Extension)">
|
|
|
|
<Output TaskParameter="Include" ItemName="ManifestResourceWithNoCulture" />
|
|
|
|
</CreateItem>
|
|
|
|
</Target>
|
|
|
|
<!-- /OBSOLETE -->
|
|
|
|
|
2017-09-07 23:31:43 +03:00
|
|
|
<Target Name="_CollectGeneratedSources" DependsOnTargets="_GenerateBindings;_CompressNativeFrameworkResources;_CompressObjCBindingNativeFrameworkResources"
|
|
|
|
Condition="'$(DesignTimeBuild)' != 'true'">
|
|
|
|
|
2016-04-21 16:40:25 +03:00
|
|
|
<ReadLinesFromFile File="$(_GeneratedSourcesFileList)" >
|
|
|
|
<Output TaskParameter="Lines" ItemName="GeneratedSources" />
|
|
|
|
</ReadLinesFromFile>
|
|
|
|
|
|
|
|
<CreateItem Include="@(ObjcBindingCoreSource)">
|
|
|
|
<Output TaskParameter="Include" ItemName="Compile" />
|
|
|
|
</CreateItem>
|
|
|
|
|
|
|
|
<CreateItem Include="@(GeneratedSources)">
|
|
|
|
<Output TaskParameter="Include" ItemName="Compile" />
|
|
|
|
</CreateItem>
|
|
|
|
|
|
|
|
<CreateItem Include="@(ObjcBindingNativeLibrary)">
|
|
|
|
<Output TaskParameter="Include" ItemName="ManifestResourceWithNoCulture" />
|
|
|
|
</CreateItem>
|
|
|
|
</Target>
|
|
|
|
|
|
|
|
<Import Project="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).After.targets"
|
|
|
|
Condition="Exists('$(MSBuildThisFileDirectory)$(MSBuildThisFileName).After.targets')"/>
|
|
|
|
</Project>
|