This PR adds a sample monarch/peasant application. This is a type of application where a single "Monarch" can coordinate the actions of multiple other "Peasant" processes, as described by the specs in #7240 and #8135. This project is intended to be a standalone sample of how the architecture would work, without involving the entirety of the Windows Terminal build. Eventually, this architecture will be incorporated into `wt.exe` itself, to enable scenarios like: * Run `wt` in the current window (#4472) * Single Instance Mode (#2227) For an example of this sample running, see the below GIF: ![monarch-peasant-sample-001](https://user-images.githubusercontent.com/18356694/98262202-f39b1500-1f4a-11eb-9220-4af4d922339f.gif) This sample operates largely by printing to the console, to help the reader understand how it's working through its logic. I'm doing this mostly so we can have a _committed_ sample of this type of application, kinda like how VtPipeTerm is a sample ConPTY application. It's a lot easier to understand (& build on) when there aren't any window shenanigans, settings loading, Island instantiation, or anything else that the whole of `WindowsTerminal.exe` needs * [x] I work here * [x] This is sample code, so I'm not shipping tests for it. * [x] Go see the doc over in #8135
92 lines
3.1 KiB
XML
92 lines
3.1 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>{21b7ea5e-1ef8-49b6-ac07-11714af0e37d}</ProjectGuid>
|
|
<Keyword>Win32Proj</Keyword>
|
|
<RootNamespace>MonarchPeasantSample</RootNamespace>
|
|
<ProjectName>MonarchPeasantSample</ProjectName>
|
|
<TargetName>MonarchPeasantSample</TargetName>
|
|
<ConfigurationType>Application</ConfigurationType>
|
|
<OpenConsoleUniversalApp>false</OpenConsoleUniversalApp>
|
|
<ApplicationType>Windows Store</ApplicationType>
|
|
<TargetPlatformIdentifier>Windows</TargetPlatformIdentifier>
|
|
</PropertyGroup>
|
|
|
|
<Import Project="..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
|
|
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.pre.props" />
|
|
|
|
<PropertyGroup>
|
|
<GenerateManifest>true</GenerateManifest>
|
|
<EmbedManifest>true</EmbedManifest>
|
|
</PropertyGroup>
|
|
|
|
<!-- Source Files -->
|
|
<ItemGroup>
|
|
<ClInclude Include="pch.h" />
|
|
<ClInclude Include="AppState.h" />
|
|
<ClInclude Include="SampleMonarch.h">
|
|
<DependentUpon>SampleMonarch.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="SamplePeasant.h">
|
|
<DependentUpon>SamplePeasant.idl</DependentUpon>
|
|
</ClInclude>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ClCompile Include="main.cpp" />
|
|
<ClCompile Include="AppState.cpp" />
|
|
<ClCompile Include="MonarchMain.cpp" />
|
|
<ClCompile Include="PeasantMain.cpp" />
|
|
<ClCompile Include="pch.cpp">
|
|
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
</ClCompile>
|
|
<ClCompile Include="SampleMonarch.cpp">
|
|
<DependentUpon>SampleMonarch.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="SamplePeasant.cpp">
|
|
<DependentUpon>SamplePeasant.idl</DependentUpon>
|
|
</ClCompile>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Midl Include="SampleMonarch.idl" />
|
|
<Midl Include="SamplePeasant.idl" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<None Include="packages.config" />
|
|
</ItemGroup>
|
|
|
|
<!-- Dependencies -->
|
|
<ItemGroup>
|
|
<ProjectReference Include="$(OpenConsoleDir)src\types\lib\types.vcxproj" />
|
|
</ItemGroup>
|
|
|
|
<!--
|
|
This ItemGroup and the Globals PropertyGroup below it are required in order
|
|
to enable F5 debugging for the unpackaged application
|
|
-->
|
|
<ItemGroup>
|
|
<PropertyPageSchema Include="$(VCTargetsPath)$(LangID)\debugger_general.xml" />
|
|
<PropertyPageSchema Include="$(VCTargetsPath)$(LangID)\debugger_local_windows.xml" />
|
|
</ItemGroup>
|
|
<PropertyGroup Label="Globals">
|
|
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
|
|
</PropertyGroup>
|
|
|
|
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.post.props" />
|
|
|
|
<!-- These have to come after post.props because the Cpp common targets will inexplicably overwrite them. -->
|
|
<ItemDefinitionGroup>
|
|
<ClCompile>
|
|
<SDLCheck>true</SDLCheck>
|
|
</ClCompile>
|
|
<Link>
|
|
<SubSystem>Console</SubSystem>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
|
|
<Import Project="$(OpenConsoleDir)\build\rules\GenerateSxsManifestsFromWinmds.targets" />
|
|
</Project>
|