d749df70ed
**BE NOT AFRAID**. I know that there's 107 files in this PR, but almost all of it is just find/replacing `TerminalControl` with `Control`. This is the start of the work to move TermControl into multiple pieces, for #5000. The PR starts this work by: * Splits `TerminalControl` into separate lib and dll projects. We'll want control tests in the future, and for that, we'll need a lib. * Moves `ICoreSettings` back into the `Microsoft.Terminal.Core` namespace. We'll have other types in there soon too. * I could not tell you why this works suddenly. New VS versions? New cppwinrt version? Maybe we're just better at dealing with mdmerge bugs these days. * RENAMES `Microsoft.Terminal.TerminalControl` to `Microsoft.Terminal.Control`. This touches pretty much every file in the sln. Sorry about that (not sorry). An upcoming PR will move much of the logic in TermControl into a new `ControlCore` class that we'll add in `Microsoft.Terminal.Core`. `ControlCore` will then be unittest-able in the `UnitTests_TerminalCore`, which will help prevent regressions like #9455 ## Detailed Description of the Pull Request / Additional comments You're really gonna want to clean the sln first, then merge this into your branch, then rebuild. It's very likely that old winmds will get left behind. If you see something like ``` Error MDM2007 Cannot create type Microsoft.Terminal.TerminalControl.KeyModifiers in read-only metadata file Microsoft.Terminal.TerminalControl. ``` then that's what happened to you.
176 lines
7.9 KiB
XML
176 lines
7.9 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<PropertyGroup Label="Globals">
|
|
<ProjectGuid>{A021EDFF-45C8-4DC2-BEF7-36E1B3B8CFE8}</ProjectGuid>
|
|
<ProjectName>TestHostApp</ProjectName>
|
|
<RootNamespace>TestHostApp</RootNamespace>
|
|
<DefaultLanguage>en-US</DefaultLanguage>
|
|
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
|
<AppContainerApplication>true</AppContainerApplication>
|
|
<WindowsStoreApp>true</WindowsStoreApp>
|
|
<ApplicationType>Windows Store</ApplicationType>
|
|
<WindowsTargetPlatformMinVersion>10.0.18362.0</WindowsTargetPlatformMinVersion>
|
|
<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>
|
|
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
|
|
<OutputSubDir>Tests\Data</OutputSubDir>
|
|
<UseWmXml>true</UseWmXml>
|
|
<ConfigurationType>Application</ConfigurationType>
|
|
<OpenConsoleCppWinRTProject>true</OpenConsoleCppWinRTProject>
|
|
|
|
<!--
|
|
These two properties are very important!
|
|
Without them, msbuild will stomp MinVersion and MaxVersionTested in the
|
|
Package.appxmanifest and replace them with whatever our values for
|
|
TargetPlatformMinVersion and TargetPlatformVersion are.
|
|
-->
|
|
<AppxOSMinVersionReplaceManifestVersion>false</AppxOSMinVersionReplaceManifestVersion>
|
|
<AppxOSMaxVersionTestedReplaceManifestVersion>false</AppxOSMaxVersionTestedReplaceManifestVersion>
|
|
|
|
</PropertyGroup>
|
|
|
|
<Import Project="$(SolutionDir)\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
|
|
|
|
<Import Project="$(OpenConsoleDir)\src\common.build.pre.props" />
|
|
|
|
<!-- This project is _heavily_ cribbed directly from the TAEF samples. In
|
|
order to avoid breaking this project, it's been left largely unmodified. The
|
|
only modifications are those near the bottom of the file:
|
|
* References to our dependent winrt projects (Connection, Settings, Control,
|
|
App)
|
|
* Manual copy steps to copy the actual test code (TerminalApp.LocalTests.dll)
|
|
and the dlls that TerminalConnection is dependent upon, but don't roll up
|
|
here for whatever reason.
|
|
-->
|
|
|
|
<!-- This is important: It somehow convinces the CI to not validate that
|
|
"taef.png" is actually in the package. taef.png will get copied to the
|
|
OutputPath when taef is run, but if this isn't set to false, then the CI
|
|
will try and make sure taef.png is in the OutputPath at build time.-->
|
|
|
|
<PropertyGroup Label="UserMacros">
|
|
<GenerateAppxPackageOnBuild>false</GenerateAppxPackageOnBuild>
|
|
</PropertyGroup>
|
|
|
|
<ItemDefinitionGroup>
|
|
<ClCompile>
|
|
<DisableSpecificWarnings>4453;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
|
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)
|
|
;$(IntermediateOutputPath)
|
|
</AdditionalIncludeDirectories>
|
|
<PreprocessorDefinitions>INLINE_TEST_METHOD_MARKUP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
</ClCompile>
|
|
<Link>
|
|
<AdditionalDependencies>$(AdditionalDependencies);windowsapp.lib</AdditionalDependencies>
|
|
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
|
|
<ItemGroup>
|
|
<ClInclude Include="pch.h" />
|
|
<ClInclude Include="UnitTestApp.xaml.h">
|
|
<DependentUpon>UnitTestApp.xaml</DependentUpon>
|
|
</ClInclude>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ApplicationDefinition Include="UnitTestApp.xaml">
|
|
<SubType>Designer</SubType>
|
|
</ApplicationDefinition>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<AppxManifest Include="Package.appxmanifest">
|
|
<SubType>Designer</SubType>
|
|
</AppxManifest>
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ClCompile Include="UnitTestApp.xaml.cpp">
|
|
<DependentUpon>UnitTestApp.xaml</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="pch.cpp">
|
|
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
</ClCompile>
|
|
</ItemGroup>
|
|
|
|
<!-- Reference all the WinRT projects that we want to role up into this test project. -->
|
|
<ItemGroup>
|
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalConnection\TerminalConnection.vcxproj">
|
|
<Project>{CA5CAD1A-C46D-4588-B1C0-40F31AE9100B}</Project>
|
|
</ProjectReference>
|
|
|
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalSettingsEditor\Microsoft.Terminal.Settings.Editor.vcxproj" />
|
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalControl\dll\TerminalControl.vcxproj" />
|
|
|
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalApp\dll\TerminalApp.vcxproj">
|
|
<Project>{ca5cad1a-44bd-4ac7-ac72-f16e576fdd12}</Project>
|
|
</ProjectReference>
|
|
|
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalSettingsModel\dll\Microsoft.Terminal.Settings.Model.vcxproj">
|
|
<Project>{CA5CAD1A-082C-4476-9F33-94B339494076}</Project>
|
|
</ProjectReference>
|
|
|
|
</ItemGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- Some helper paths to find our test code -->
|
|
<_TAEFPlatformName>$(Platform)</_TAEFPlatformName>
|
|
<_TAEFPlatformName Condition="'$(Platform)'=='Win32'">x86</_TAEFPlatformName>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestExecutor.WinRTCore">
|
|
<HintPath>$(OpenConsoleDir)\packages\Taef.Redist.Wlk.10.57.200731005-develop\lib\Microsoft.VisualStudio.TestPlatform.TestExecutor.WinRTCore.winmd</HintPath>
|
|
<IsWinMDFile>true</IsWinMDFile>
|
|
|
|
<!-- This path is _relative to the .winmd_ -->
|
|
<Implementation>..\build\Binaries\$(_TAEFPlatformName)\TE.AppxUnitTestClient.dll</Implementation>
|
|
</Reference>
|
|
</ItemGroup>
|
|
|
|
<Import Project="$(OpenConsoleDir)\packages\Microsoft.UI.Xaml.2.5.0-prerelease.201202003\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('$(OpenConsoleDir)\packages\Microsoft.UI.Xaml.2.5.0-prerelease.201202003\build\native\Microsoft.UI.Xaml.targets')" />
|
|
|
|
<Import Project="$(OpenConsoleDir)\src\common.build.post.props" />
|
|
|
|
<ItemGroup>
|
|
<TestDll Include="$(OpenConsoleCommonOutDir)\LocalTests_TerminalApp\TerminalApp.LocalTests.dll" />
|
|
<TestDll Include="$(OpenConsoleCommonOutDir)\LocalTests_SettingsModel\SettingsModel.LocalTests.dll" />
|
|
</ItemGroup>
|
|
|
|
<Target Name="AfterBuild" Inputs="@(TestDll)" Outputs="@(TestDll->'$(TargetDir)'\%(Filename)%(Extension)')">
|
|
|
|
<!-- Use this to auto-find all the dll's that TerminalConnection produces. We
|
|
don't roll these up automatically, so we'll need to copy them manually
|
|
(below)
|
|
|
|
The dependencies from TerminalConnection get rolled up in the
|
|
GetPackagingOutputs step, when it produces the "appx recipe". This means
|
|
they only show up when the build produces an AppX\ folder for either running
|
|
or packaging.
|
|
|
|
It is literally impossible to produce an AppX\ folder using MSBuild without
|
|
packaging an appx, and we don't want to do that anyway, so we use these copy
|
|
rules instead.
|
|
-->
|
|
<ItemGroup>
|
|
<TerminalConnectionDlls Include="$(OpenConsoleCommonOutDir)\TerminalConnection\*.dll"/>
|
|
</ItemGroup>
|
|
|
|
<!-- Copy the AppxManifest.xml to another file, because when TAEF is
|
|
deploying the app, it'll delete the AppxManifest.xml file from this
|
|
directory when it tries to clean up after itself. -->
|
|
<Copy SourceFiles="$(TargetDir)\AppxManifest.xml" DestinationFiles="$(TargetDir)\TestHostAppXManifest.xml" />
|
|
|
|
<!-- Copy all test code -->
|
|
<Copy SourceFiles="@(TestDll)"
|
|
DestinationFolder="$(TargetDir)"
|
|
UseHardLinksIfPossible="true"
|
|
SkipUnchangedFiles="true" />
|
|
|
|
<!-- Copy some dlls which TerminalConnection is dependent upon that didn't
|
|
get rolled up into this directory -->
|
|
<Copy SourceFiles="@(TerminalConnectionDlls)"
|
|
DestinationFolder="$(TargetDir)"
|
|
UseHardLinksIfPossible="true"
|
|
SkipUnchangedFiles="true" />
|
|
|
|
</Target>
|
|
</Project>
|