171 lines
8.3 KiB
XML
171 lines
8.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup Label="Globals">
|
|
<ProjectGuid>{CA5CAD1A-44BD-4AC7-AC72-6CA5B3AB89ED}</ProjectGuid>
|
|
<ProjectName>TerminalControl</ProjectName>
|
|
<RootNamespace>Microsoft.Terminal.TerminalControl</RootNamespace>
|
|
<!-- cppwinrt.build.pre.props depends on these settings: -->
|
|
<!-- build a dll, not exe (Application) -->
|
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
<SubSystem>Console</SubSystem>
|
|
<!-- sets a bunch of Windows Universal properties -->
|
|
<OpenConsoleUniversalApp>true</OpenConsoleUniversalApp>
|
|
<!-- C++/WinRT sets the depth to 1 if there is a XAML file in the project
|
|
Unfortunately for us, we need it to be 3. When the namespace merging
|
|
depth is 1, Microsoft.Terminal.TerminalControl becomes "Microsoft",
|
|
and our WinMD file becomes "Microsoft". Because WinRT is very
|
|
namespace-driven, this winmd is considered to contain the entire
|
|
Microsoft namespace. This is, obviously, not great. None of our other
|
|
projects compile properly when they depend on this "Microsoft.winmd."
|
|
-->
|
|
<CppWinRTNamespaceMergeDepth>3</CppWinRTNamespaceMergeDepth>
|
|
<XamlComponentResourceLocation>nested</XamlComponentResourceLocation>
|
|
</PropertyGroup>
|
|
<Import Project="..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
|
|
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.pre.props" />
|
|
<ItemGroup>
|
|
<ClInclude Include="pch.h" />
|
|
<ClInclude Include="KeyChord.h">
|
|
<DependentUpon>KeyChord.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="SearchBoxControl.h">
|
|
<DependentUpon>SearchBoxControl.xaml</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="TermControl.h">
|
|
<DependentUpon>TermControl.xaml</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="TermControlAutomationPeer.h">
|
|
<DependentUpon>TermControlAutomationPeer.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="ThrottledFunc.h" />
|
|
<ClInclude Include="TSFInputControl.h">
|
|
<DependentUpon>TSFInputControl.xaml</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="XamlUiaTextRange.h" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ClCompile Include="pch.cpp">
|
|
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
</ClCompile>
|
|
<ClCompile Include="init.cpp" />
|
|
<ClCompile Include="KeyChord.cpp">
|
|
<DependentUpon>KeyChord.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="SearchBoxControl.cpp">
|
|
<DependentUpon>SearchBoxControl.xaml</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="TermControl.cpp">
|
|
<DependentUpon>TermControl.xaml</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="ThrottledFunc.cpp" />
|
|
<ClCompile Include="TSFInputControl.cpp">
|
|
<DependentUpon>TSFInputControl.xaml</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
|
|
<ClCompile Include="TermControlAutomationPeer.cpp">
|
|
<DependentUpon>TermControlAutomationPeer.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="XamlUiaTextRange.cpp" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Midl Include="KeyChord.idl" />
|
|
<Midl Include="IKeyBindings.idl" />
|
|
<Midl Include="IControlSettings.idl" />
|
|
<Midl Include="SearchBoxControl.idl">
|
|
<DependentUpon>SearchBoxControl.xaml</DependentUpon>
|
|
</Midl>
|
|
<Midl Include="TermControl.idl">
|
|
<DependentUpon>TermControl.xaml</DependentUpon>
|
|
</Midl>
|
|
<Midl Include="TermControlAutomationPeer.idl" />
|
|
<Midl Include="IMouseWheelListener.idl" />
|
|
<Midl Include="TSFInputControl.idl">
|
|
<DependentUpon>TSFInputControl.xaml</DependentUpon>
|
|
</Midl>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<None Include="packages.config" />
|
|
<None Include="TerminalControl.def" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<PRIResource Include="Resources\en-US\Resources.resw" />
|
|
<OCResourceDirectory Include="Resources" />
|
|
</ItemGroup>
|
|
<!-- ========================= Project References ======================== -->
|
|
<ItemGroup>
|
|
<ProjectReference Include="..\..\types\lib\types.vcxproj" />
|
|
<ProjectReference Include="..\..\buffer\out\lib\bufferout.vcxproj" />
|
|
<ProjectReference Include="$(OpenConsoleDir)src\renderer\base\lib\base.vcxproj" />
|
|
<ProjectReference Include="..\..\renderer\dx\lib\dx.vcxproj" />
|
|
<ProjectReference Include="..\..\renderer\uia\lib\uia.vcxproj" />
|
|
<ProjectReference Include="..\..\terminal\parser\lib\parser.vcxproj" />
|
|
<ProjectReference Include="$(OpenConsoleDir)src\terminal\input\lib\terminalinput.vcxproj" />
|
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalCore\lib\TerminalCore-lib.vcxproj" />
|
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalConnection\TerminalConnection.vcxproj">
|
|
<Private>false</Private>
|
|
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
|
</ProjectReference>
|
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\WinRTUtils\WinRTUtils.vcxproj">
|
|
<Project>{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}</Project>
|
|
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
|
</ProjectReference>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Page Include="SearchBoxControl.xaml">
|
|
<SubType>Designer</SubType>
|
|
</Page>
|
|
<Page Include="TermControl.xaml">
|
|
<SubType>Designer</SubType>
|
|
</Page>
|
|
<Page Include="TSFInputControl.xaml">
|
|
<SubType>Designer</SubType>
|
|
</Page>
|
|
</ItemGroup>
|
|
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.post.props" />
|
|
<ItemDefinitionGroup>
|
|
<Link>
|
|
<AdditionalDependencies>dwrite.lib;dxgi.lib;d2d1.lib;d3d11.lib;shcore.lib;winmm.lib;pathcch.lib;propsys.lib;uiautomationcore.lib;Shlwapi.lib;ntdll.lib;user32.lib;kernel32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
</Link>
|
|
<ClCompile>
|
|
<AdditionalIncludeDirectories>$(OpenConsoleDir)src\cascadia\inc;$(OpenConsoleDir)src\types\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
</ClCompile>
|
|
</ItemDefinitionGroup>
|
|
<Import Project="$(SolutionDir)build\rules\CollectWildcardResources.targets" />
|
|
|
|
<!--
|
|
We're linking a static library that has the same root namespace as us. Unfortunately,
|
|
if we allow a winmd that contains our namespace into the to-be-XamlCompiled reference list
|
|
the xaml compiler will become upset with us and fail to find any types defined in _this_
|
|
version of the namespace. Therefore, we have to strip them out.
|
|
Because ReferencePath is an important item group in MSBuild, we're going to make sure to
|
|
restore it the moment Xaml is done with it.
|
|
We have to use a static library with the _same_ namespace as ours because there's a weird
|
|
invariant somewhere in WinRT that every library project produce a single namespace. We're
|
|
going to let TerminalCore (static lib) contribute to our namespace, but when we do that
|
|
we get the xaml compiler complaining.
|
|
-->
|
|
<PropertyGroup>
|
|
<MarkupCompilePass1DependsOn>$(MarkupCompilePass1DependsOn);OpenConsoleStripDuplicateWinmdFromReferencesBeforePass1</MarkupCompilePass1DependsOn>
|
|
<MarkupCompilePass2DependsOn>$(MarkupCompilePass2DependsOn);OpenConsoleStripDuplicateWinmdFromReferencesBeforePass2</MarkupCompilePass2DependsOn>
|
|
</PropertyGroup>
|
|
<Target Name="OpenConsoleStripDuplicateWinmdFromReferencesBeforePass1">
|
|
<ItemGroup>
|
|
<!-- Back up the references we're about to delete -->
|
|
<OCReferencePathToRestore Include="@(ReferencePath)" Condition="'%(Filename)' == '$(RootNamespace)'"/>
|
|
<ReferencePath Remove="@(OCReferencePathToRestore)"/>
|
|
</ItemGroup>
|
|
</Target>
|
|
<Target Name="OpenConsoleRestoreDuplicateWinmdToReferences" AfterTargets="MarkupCompilePass2">
|
|
<ItemGroup>
|
|
<!-- Put them back. -->
|
|
<ReferencePath Include="@(OCReferencePathToRestore)"/>
|
|
</ItemGroup>
|
|
</Target>
|
|
<Target Name="OpenConsoleStripDuplicateWinmdFromReferencesBeforePass2">
|
|
<ItemGroup>
|
|
<!-- Nobody else uses this item group, it's safe to never restore. -->
|
|
<WinMDReferenceToCompile Remove="@(WinMDReferenceToCompile)" Condition="'%(Filename)' == '$(RootNamespace)'"/>
|
|
</ItemGroup>
|
|
</Target>
|
|
</Project>
|