2019-05-03 00:29:04 +02:00
<?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-C46D-4588-B1C0-40F31AE9100B}</ProjectGuid>
<ProjectName > TerminalConnection</ProjectName>
<RootNamespace > Microsoft.Terminal.TerminalConnection</RootNamespace>
2019-11-05 23:29:11 +01:00
<ConfigurationType > DynamicLibrary</ConfigurationType>
<SubSystem > Console</SubSystem>
<OpenConsoleUniversalApp > true</OpenConsoleUniversalApp>
2021-05-13 23:12:30 +02:00
<PgoTarget > true</PgoTarget>
2019-05-03 00:29:04 +02:00
</PropertyGroup>
2019-11-05 23:29:11 +01:00
<Import Project= "..\..\..\common.openconsole.props" Condition= "'$(OpenConsoleDir)'==''" />
<Import Project= "$(OpenConsoleDir)src\cppwinrt.build.pre.props" />
2019-05-03 00:29:04 +02:00
<ItemGroup >
2019-11-08 23:17:11 +01:00
<ClInclude Include= "AzureClientID.h" />
Switch Connections to use `ValueSet`s to initialize them (#10184)
#### ⚠️ targets #10051
## Summary of the Pull Request
This PR does one big, primary thing. It removes all the constructors from any TerminalConnections, and changes them to use an `Initialize` method that accepts a `ValueSet` of properties.
Why?
For the upcoming window/content process work, we'll need the content process to be able to initialize the connection _in the content process_. However, the window process will be the one that knows what type of connection to make. Enter `ConnectionInformation`. This class will let us specify the class name of the type we want to create, and a set of settings to use when initializing that connection.
**IMPORTANT**: As a part of this, the constructor for a connection must have 0 arguments. `RoActivateInstance` lets you just conjure a WinRT type just by class name, but that class must have a 0 arg ctor. Hence the need for `Initialize`, to actually pass the settings.
We're using a `ValueSet` here because it's basically a json blob, with more steps. In the future, when extension authors want to have custom connections, we can always deserialize the json into a `ValueSet`, pass it to their connection's `Initialize`, and let then get what they need out of it.
## References
* Tear-out: #1256
* Megathread: #5000
* Project: https://github.com/microsoft/terminal/projects/5
## PR Checklist
* [x] Closes https://github.com/microsoft/terminal/projects/5#card-50760298
* [x] I work here
* [n/a] Tests added/passed
* [n/a] Requires documentation to be updated
## Detailed Description of the Pull Request / Additional comments
`ConnectionInformation` was included as a part of this PR, to demonstrate how this will eventually be used. `ConnectionInformation` is not _currently_ used.
## Validation Steps Performed
It still builds and runs.
2021-07-20 17:02:17 +02:00
<ClInclude Include= "ConnectionInformation.h" >
<DependentUpon > ConnectionInformation.idl</DependentUpon>
</ClInclude>
2019-12-09 20:07:08 +01:00
<ClInclude Include= "AzureConnection.h" >
<DependentUpon > AzureConnection.idl</DependentUpon>
</ClInclude>
2021-03-26 23:09:49 +01:00
<ClInclude Include= "CTerminalHandoff.h" />
2019-05-03 00:29:04 +02:00
<ClInclude Include= "pch.h" />
2019-11-07 00:09:01 +01:00
<ClInclude Include= "ConptyConnection.h" >
<DependentUpon > ConptyConnection.idl</DependentUpon>
2019-05-03 00:29:04 +02:00
</ClInclude>
<ClInclude Include= "EchoConnection.h" >
<DependentUpon > EchoConnection.idl</DependentUpon>
</ClInclude>
</ItemGroup>
<ItemGroup >
2021-03-26 23:09:49 +01:00
<ClCompile Include= "CTerminalHandoff.cpp" />
2019-12-09 20:07:08 +01:00
<ClCompile Include= "init.cpp" />
Switch Connections to use `ValueSet`s to initialize them (#10184)
#### ⚠️ targets #10051
## Summary of the Pull Request
This PR does one big, primary thing. It removes all the constructors from any TerminalConnections, and changes them to use an `Initialize` method that accepts a `ValueSet` of properties.
Why?
For the upcoming window/content process work, we'll need the content process to be able to initialize the connection _in the content process_. However, the window process will be the one that knows what type of connection to make. Enter `ConnectionInformation`. This class will let us specify the class name of the type we want to create, and a set of settings to use when initializing that connection.
**IMPORTANT**: As a part of this, the constructor for a connection must have 0 arguments. `RoActivateInstance` lets you just conjure a WinRT type just by class name, but that class must have a 0 arg ctor. Hence the need for `Initialize`, to actually pass the settings.
We're using a `ValueSet` here because it's basically a json blob, with more steps. In the future, when extension authors want to have custom connections, we can always deserialize the json into a `ValueSet`, pass it to their connection's `Initialize`, and let then get what they need out of it.
## References
* Tear-out: #1256
* Megathread: #5000
* Project: https://github.com/microsoft/terminal/projects/5
## PR Checklist
* [x] Closes https://github.com/microsoft/terminal/projects/5#card-50760298
* [x] I work here
* [n/a] Tests added/passed
* [n/a] Requires documentation to be updated
## Detailed Description of the Pull Request / Additional comments
`ConnectionInformation` was included as a part of this PR, to demonstrate how this will eventually be used. `ConnectionInformation` is not _currently_ used.
## Validation Steps Performed
It still builds and runs.
2021-07-20 17:02:17 +02:00
<ClCompile Include= "ConnectionInformation.cpp" >
<DependentUpon > ConnectionInformation.idl</DependentUpon>
</ClCompile>
2019-12-09 20:07:08 +01:00
<ClCompile Include= "AzureConnection.cpp" >
<DependentUpon > AzureConnection.idl</DependentUpon>
</ClCompile>
2019-05-03 00:29:04 +02:00
<ClCompile Include= "pch.cpp" >
<PrecompiledHeader > Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include= "EchoConnection.cpp" >
<DependentUpon > EchoConnection.idl</DependentUpon>
</ClCompile>
2019-11-07 00:09:01 +01:00
<ClCompile Include= "ConptyConnection.cpp" >
<DependentUpon > ConptyConnection.idl</DependentUpon>
</ClCompile>
2019-05-03 00:29:04 +02:00
<ClCompile Include= "$(GeneratedFilesDir)module.g.cpp" />
</ItemGroup>
<ItemGroup >
Switch Connections to use `ValueSet`s to initialize them (#10184)
#### ⚠️ targets #10051
## Summary of the Pull Request
This PR does one big, primary thing. It removes all the constructors from any TerminalConnections, and changes them to use an `Initialize` method that accepts a `ValueSet` of properties.
Why?
For the upcoming window/content process work, we'll need the content process to be able to initialize the connection _in the content process_. However, the window process will be the one that knows what type of connection to make. Enter `ConnectionInformation`. This class will let us specify the class name of the type we want to create, and a set of settings to use when initializing that connection.
**IMPORTANT**: As a part of this, the constructor for a connection must have 0 arguments. `RoActivateInstance` lets you just conjure a WinRT type just by class name, but that class must have a 0 arg ctor. Hence the need for `Initialize`, to actually pass the settings.
We're using a `ValueSet` here because it's basically a json blob, with more steps. In the future, when extension authors want to have custom connections, we can always deserialize the json into a `ValueSet`, pass it to their connection's `Initialize`, and let then get what they need out of it.
## References
* Tear-out: #1256
* Megathread: #5000
* Project: https://github.com/microsoft/terminal/projects/5
## PR Checklist
* [x] Closes https://github.com/microsoft/terminal/projects/5#card-50760298
* [x] I work here
* [n/a] Tests added/passed
* [n/a] Requires documentation to be updated
## Detailed Description of the Pull Request / Additional comments
`ConnectionInformation` was included as a part of this PR, to demonstrate how this will eventually be used. `ConnectionInformation` is not _currently_ used.
## Validation Steps Performed
It still builds and runs.
2021-07-20 17:02:17 +02:00
<Midl Include= "ConnectionInformation.idl" />
2019-05-03 00:29:04 +02:00
<Midl Include= "ITerminalConnection.idl" />
2019-11-07 00:09:01 +01:00
<Midl Include= "ConptyConnection.idl" />
2019-05-03 00:29:04 +02:00
<Midl Include= "EchoConnection.idl" />
2019-08-02 23:41:46 +02:00
<Midl Include= "AzureConnection.idl" />
2019-05-03 00:29:04 +02:00
</ItemGroup>
<ItemGroup >
2021-09-21 17:47:17 +02:00
<PRIResource Include= "Resources\en-US\Resources.resw" >
<SubType > Designer</SubType>
</PRIResource>
2020-06-08 23:01:47 +02:00
<OCResourceDirectory Include= "Resources" />
2019-05-03 00:29:04 +02:00
<None Include= "packages.config" />
</ItemGroup>
2019-05-22 22:24:22 +02:00
<!-- ========================= Project References ======================== -->
<ItemGroup >
<!--
the packaging project won't recurse through our dependencies, you have to
make sure that if you add a cppwinrt dependency to any of these projects,
you also update all the consumers
-->
<ProjectReference Include= "$(OpenConsoleDir)src\types\lib\types.vcxproj" >
<Project > {18D09A24-8240-42D6-8CB6-236EEE820263}</Project>
</ProjectReference>
2019-11-07 21:26:45 +01:00
<ProjectReference Include= "$(OpenConsoleDir)src\cascadia\WinRTUtils\WinRTUtils.vcxproj" >
<Project > {CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}</Project>
<ReferenceOutputAssembly > false</ReferenceOutputAssembly>
</ProjectReference>
2019-11-14 20:22:00 +01:00
<ProjectReference Include= "..\..\winconpty\lib\winconptylib.vcxproj" >
2019-11-07 00:09:01 +01:00
<Project > {58a03bb2-df5a-4b66-91a0-7ef3ba01269a}</Project>
</ProjectReference>
2019-05-22 22:24:22 +02:00
</ItemGroup>
2019-05-03 00:29:04 +02:00
<Import Project= "$(OpenConsoleDir)src\cppwinrt.build.post.props" />
2019-11-08 23:17:11 +01:00
<Import Project= "..\..\..\packages\vcpkg-cpprestsdk.2.10.14\build\native\vcpkg-cpprestsdk.targets" Condition= "Exists('..\..\..\packages\vcpkg-cpprestsdk.2.10.14\build\native\vcpkg-cpprestsdk.targets')" />
2019-07-25 22:31:41 +02:00
<Target Name= "EnsureNuGetPackageBuildImports" BeforeTargets= "PrepareForBuild" >
<PropertyGroup >
<ErrorText > This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
2019-11-08 23:17:11 +01:00
<Error Condition= "!Exists('..\..\..\packages\vcpkg-cpprestsdk.2.10.14\build\native\vcpkg-cpprestsdk.targets')" Text= "$([System.String]::Format('$(ErrorText)', '..\..\..\packages\vcpkg-cpprestsdk.2.10.14\build\native\vcpkg-cpprestsdk.targets'))" />
2019-07-25 22:31:41 +02:00
</Target>
2019-11-07 00:09:01 +01:00
<ItemDefinitionGroup >
2021-03-26 23:09:49 +01:00
<ClCompile >
2021-09-21 17:47:17 +02:00
<AdditionalIncludeDirectories > $(IntDir)..\OpenConsoleProxy;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
2021-03-26 23:09:49 +01:00
</ClCompile>
2019-11-07 00:09:01 +01:00
<Link >
2019-11-14 20:22:00 +01:00
<AdditionalDependencies > $(OpenConsoleCommonOutDir)\conptylib.lib;%(AdditionalDependencies)</AdditionalDependencies>
2019-11-07 00:09:01 +01:00
</Link>
</ItemDefinitionGroup>
2020-06-08 23:01:47 +02:00
<Import Project= "$(SolutionDir)build\rules\CollectWildcardResources.targets" />
2021-09-21 17:47:17 +02:00
</Project>