Add a Monarch/Peasant sample app (#8171)
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
2021-01-19 22:55:30 +01:00
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
|
|
<PropertyGroup Condition="'$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '15.0'">
|
|
|
|
<VisualStudioVersion>15.0</VisualStudioVersion>
|
|
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup Label="ProjectConfigurations">
|
|
|
|
<ProjectConfiguration Include="Debug|x86">
|
|
|
|
<Configuration>Debug</Configuration>
|
|
|
|
<Platform>x86</Platform>
|
|
|
|
</ProjectConfiguration>
|
|
|
|
<ProjectConfiguration Include="Release|x86">
|
|
|
|
<Configuration>Release</Configuration>
|
|
|
|
<Platform>x86</Platform>
|
|
|
|
</ProjectConfiguration>
|
|
|
|
<ProjectConfiguration Include="Debug|x64">
|
|
|
|
<Configuration>Debug</Configuration>
|
|
|
|
<Platform>x64</Platform>
|
|
|
|
</ProjectConfiguration>
|
|
|
|
<ProjectConfiguration Include="Release|x64">
|
|
|
|
<Configuration>Release</Configuration>
|
|
|
|
<Platform>x64</Platform>
|
|
|
|
</ProjectConfiguration>
|
|
|
|
<ProjectConfiguration Include="Debug|ARM">
|
|
|
|
<Configuration>Debug</Configuration>
|
|
|
|
<Platform>ARM</Platform>
|
|
|
|
</ProjectConfiguration>
|
|
|
|
<ProjectConfiguration Include="Release|ARM">
|
|
|
|
<Configuration>Release</Configuration>
|
|
|
|
<Platform>ARM</Platform>
|
|
|
|
</ProjectConfiguration>
|
|
|
|
<ProjectConfiguration Include="Debug|ARM64">
|
|
|
|
<Configuration>Debug</Configuration>
|
|
|
|
<Platform>ARM64</Platform>
|
|
|
|
</ProjectConfiguration>
|
|
|
|
<ProjectConfiguration Include="Release|ARM64">
|
|
|
|
<Configuration>Release</Configuration>
|
|
|
|
<Platform>ARM64</Platform>
|
|
|
|
</ProjectConfiguration>
|
|
|
|
<ProjectConfiguration Include="Debug|AnyCPU">
|
|
|
|
<Configuration>Debug</Configuration>
|
|
|
|
<Platform>AnyCPU</Platform>
|
|
|
|
</ProjectConfiguration>
|
|
|
|
<ProjectConfiguration Include="Release|AnyCPU">
|
|
|
|
<Configuration>Release</Configuration>
|
|
|
|
<Platform>AnyCPU</Platform>
|
|
|
|
</ProjectConfiguration>
|
|
|
|
</ItemGroup>
|
|
|
|
<PropertyGroup>
|
|
|
|
<WapProjPath Condition="'$(WapProjPath)'==''">$(MSBuildExtensionsPath)\Microsoft\DesktopBridge\</WapProjPath>
|
|
|
|
</PropertyGroup>
|
|
|
|
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.props" />
|
|
|
|
<PropertyGroup>
|
|
|
|
<ProjectGuid>f75e29d0-d288-478b-8d83-2c190f321a3f</ProjectGuid>
|
2021-05-20 18:04:25 +02:00
|
|
|
<TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
|
|
|
|
<TargetPlatformMinVersion>10.0.18362.0</TargetPlatformMinVersion>
|
Add a Monarch/Peasant sample app (#8171)
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
2021-01-19 22:55:30 +01:00
|
|
|
<DefaultLanguage>en-US</DefaultLanguage>
|
|
|
|
<AppxPackageSigningEnabled>false</AppxPackageSigningEnabled>
|
|
|
|
<EntryPointProjectUniqueName>..\MonarchPeasantSample\MonarchPeasantSample.vcxproj</EntryPointProjectUniqueName>
|
|
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
|
|
<AppxManifest Include="Package.appxmanifest">
|
|
|
|
<SubType>Designer</SubType>
|
|
|
|
</AppxManifest>
|
|
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
|
|
<Content Include="Images\SplashScreen.scale-200.png" />
|
|
|
|
<Content Include="Images\LockScreenLogo.scale-200.png" />
|
|
|
|
<Content Include="Images\Square150x150Logo.scale-200.png" />
|
|
|
|
<Content Include="Images\Square44x44Logo.scale-200.png" />
|
|
|
|
<Content Include="Images\Square44x44Logo.targetsize-24_altform-unplated.png" />
|
|
|
|
<Content Include="Images\StoreLogo.png" />
|
|
|
|
<Content Include="Images\Wide310x150Logo.scale-200.png" />
|
|
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
|
|
<ProjectReference Include="..\MonarchPeasantSample\MonarchPeasantSample.vcxproj" >
|
|
|
|
<!--
|
|
|
|
THESE PROPERTIES ARE LOAD BEARING!
|
|
|
|
|
|
|
|
We need them so the MonarchPeasantSample.winmd will be placed in the
|
|
|
|
package root. If it's not there, then we won't be able to activate our
|
|
|
|
WinRT classes!
|
|
|
|
-->
|
|
|
|
<Private>true</Private>
|
|
|
|
<CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies>
|
|
|
|
</ProjectReference>
|
|
|
|
</ItemGroup>
|
|
|
|
<Import Project="$(WapProjPath)\Microsoft.DesktopBridge.targets" />
|
|
|
|
</Project>
|