37e8769b37
## Summary of the Pull Request Similar to `vswhere -latest`, show only the latest Visual Studio command prompts / developer PowerShell. This was tested by deleting the local package state and testing against fresh state with both VS2019 and VS2022 Preview installed, and indeed VS2022 Preview (both cmd and powershell) show. The other profiles were generated but hidden by default. ## References Modification of PR #7774 ## PR Checklist * [x] Closes #11307 * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA * [x] Tests added/passed * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx * [ ] Schema updated. * [x] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx ## Detailed Description of the Pull Request / Additional comments The sort algorithm is the same basic algorithm I used in https://github.com/microsoft/vswhere. It sorts first by installation version with a secondary sort based on the install date in case the installation versions are the same. ## Validation Steps Performed With both VS2019 and VS2022 Preview installed, I made sure the initial state was expected, and tried different combinations of hiding and unhiding generated entries, and restarted Terminal to make sure my settings "stuck".
270 lines
14 KiB
XML
270 lines
14 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-d7ec-4107-b7c6-79cb77ae2907}</ProjectGuid>
|
||
<Keyword>Win32Proj</Keyword>
|
||
<ProjectName>Microsoft.Terminal.Settings.Model.Lib</ProjectName>
|
||
<RootNamespace>Microsoft.Terminal.Settings.Model</RootNamespace>
|
||
<TargetName>Microsoft.Terminal.Settings.Model.Lib</TargetName>
|
||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||
<SubSystem>Console</SubSystem>
|
||
<OpenConsoleUniversalApp>true</OpenConsoleUniversalApp>
|
||
</PropertyGroup>
|
||
<Import Project="..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
|
||
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.pre.props" />
|
||
<!-- ========================= Headers ======================== -->
|
||
<ItemGroup>
|
||
<ClInclude Include="VcDevCmdGenerator.h" />
|
||
<ClInclude Include="VisualStudioGenerator.h" />
|
||
<ClInclude Include="DefaultTerminal.h">
|
||
<DependentUpon>DefaultTerminal.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="IconPathConverter.h">
|
||
<DependentUpon>IconPathConverter.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="pch.h" />
|
||
<ClInclude Include="ActionArgs.h">
|
||
<DependentUpon>ActionArgs.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="ActionAndArgs.h">
|
||
<DependentUpon>ActionArgs.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="ActionMap.h">
|
||
<DependentUpon>ActionMap.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="AzureCloudShellGenerator.h" />
|
||
<ClInclude Include="ApplicationState.h">
|
||
<DependentUpon>ApplicationState.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="CascadiaSettings.h">
|
||
<DependentUpon>CascadiaSettings.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="ColorScheme.h">
|
||
<DependentUpon>ColorScheme.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="Command.h">
|
||
<DependentUpon>Command.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="DynamicProfileUtils.h" />
|
||
<ClInclude Include="FileUtils.h" />
|
||
<ClInclude Include="GlobalAppSettings.h">
|
||
<DependentUpon>GlobalAppSettings.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="IInheritable.h" />
|
||
<ClInclude Include="IDynamicProfileGenerator.h" />
|
||
<ClInclude Include="JsonUtils.h" />
|
||
<ClInclude Include="HashUtils.h" />
|
||
<ClInclude Include="KeyChordSerialization.h">
|
||
<DependentUpon>KeyChordSerialization.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="PowershellCoreProfileGenerator.h" />
|
||
<ClInclude Include="Profile.h">
|
||
<DependentUpon>Profile.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="AppearanceConfig.h">
|
||
<DependentUpon>AppearanceConfig.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="FontConfig.h">
|
||
<DependentUpon>FontConfig.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="EnumMappings.h">
|
||
<DependentUpon>EnumMappings.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="SettingsTypes.h" />
|
||
<ClInclude Include="TerminalSettings.h">
|
||
<DependentUpon>TerminalSettings.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="TerminalSettingsSerializationHelpers.h" />
|
||
<ClInclude Include="TerminalWarnings.h">
|
||
<DependentUpon>TerminalWarnings.idl</DependentUpon>
|
||
</ClInclude>
|
||
<ClInclude Include="VsDevCmdGenerator.h" />
|
||
<ClInclude Include="VsDevShellGenerator.h" />
|
||
<ClInclude Include="VsSetupConfiguration.h" />
|
||
<ClInclude Include="WslDistroGenerator.h" />
|
||
</ItemGroup>
|
||
<!-- ========================= Cpp Files ======================== -->
|
||
<ItemGroup>
|
||
<ClCompile Include="VcDevCmdGenerator.cpp" />
|
||
<ClCompile Include="VisualStudioGenerator.cpp" />
|
||
<ClCompile Include="DefaultTerminal.cpp">
|
||
<DependentUpon>DefaultTerminal.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="IconPathConverter.cpp">
|
||
<DependentUpon>IconPathConverter.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="init.cpp" />
|
||
<ClCompile Include="pch.cpp">
|
||
<PrecompiledHeader>Create</PrecompiledHeader>
|
||
</ClCompile>
|
||
<ClCompile Include="ActionAndArgs.cpp">
|
||
<DependentUpon>ActionArgs.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="ActionArgs.cpp">
|
||
<DependentUpon>ActionArgs.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="ActionMap.cpp">
|
||
<DependentUpon>ActionMap.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="ActionMapSerialization.cpp">
|
||
<DependentUpon>ActionMap.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="AzureCloudShellGenerator.cpp" />
|
||
<ClCompile Include="ApplicationState.cpp">
|
||
<DependentUpon>ApplicationState.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="CascadiaSettings.cpp">
|
||
<DependentUpon>CascadiaSettings.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="CascadiaSettingsSerialization.cpp">
|
||
<DependentUpon>CascadiaSettings.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="ColorScheme.cpp">
|
||
<DependentUpon>ColorScheme.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="Command.cpp">
|
||
<DependentUpon>Command.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="DynamicProfileUtils.cpp" />
|
||
<ClCompile Include="FileUtils.cpp" />
|
||
<ClCompile Include="GlobalAppSettings.cpp">
|
||
<DependentUpon>GlobalAppSettings.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="KeyChordSerialization.cpp">
|
||
<DependentUpon>KeyChordSerialization.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="PowershellCoreProfileGenerator.cpp" />
|
||
<ClCompile Include="Profile.cpp">
|
||
<DependentUpon>Profile.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="AppearanceConfig.cpp">
|
||
<DependentUpon>AppearanceConfig.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="FontConfig.cpp">
|
||
<DependentUpon>FontConfig.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="TerminalSettings.cpp">
|
||
<DependentUpon>TerminalSettings.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="EnumMappings.cpp">
|
||
<DependentUpon>EnumMappings.idl</DependentUpon>
|
||
</ClCompile>
|
||
<ClCompile Include="VsDevCmdGenerator.cpp" />
|
||
<ClCompile Include="VsDevShellGenerator.cpp" />
|
||
<ClCompile Include="VsSetupConfiguration.cpp" />
|
||
<ClCompile Include="WslDistroGenerator.cpp" />
|
||
<!-- You _NEED_ to include this file and the jsoncpp IncludePath (below) if
|
||
you want to use jsoncpp -->
|
||
<ClCompile Include="$(OpenConsoleDir)\dep\jsoncpp\jsoncpp.cpp">
|
||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||
</ClCompile>
|
||
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
|
||
</ItemGroup>
|
||
<!-- ========================= idl Files ======================== -->
|
||
<ItemGroup>
|
||
<Midl Include="ActionArgs.idl" />
|
||
<Midl Include="ActionMap.idl" />
|
||
<Midl Include="ApplicationState.idl" />
|
||
<Midl Include="CascadiaSettings.idl" />
|
||
<Midl Include="ColorScheme.idl" />
|
||
<Midl Include="Command.idl" />
|
||
<Midl Include="DefaultTerminal.idl" />
|
||
<Midl Include="GlobalAppSettings.idl" />
|
||
<Midl Include="IconPathConverter.idl" />
|
||
<Midl Include="Profile.idl" />
|
||
<Midl Include="EnumMappings.idl" />
|
||
<Midl Include="TerminalSettings.idl" />
|
||
<Midl Include="TerminalWarnings.idl" />
|
||
<Midl Include="KeyChordSerialization.idl" />
|
||
<Midl Include="AppearanceConfig.idl" />
|
||
<Midl Include="IAppearanceConfig.idl" />
|
||
<Midl Include="FontConfig.idl" />
|
||
</ItemGroup>
|
||
<!-- ========================= Misc Files ======================== -->
|
||
<ItemGroup>
|
||
<PRIResource Include="Resources\en-US\Resources.resw" />
|
||
<OCResourceDirectory Include="Resources" />
|
||
<None Include="packages.config" />
|
||
</ItemGroup>
|
||
<!-- ========================= 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" />
|
||
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\WinRTUtils\WinRTUtils.vcxproj">
|
||
<Project>{CA5CAD1A-039A-4929-BA2A-8BEB2E4106FE}</Project>
|
||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||
</ProjectReference>
|
||
<!-- For whatever reason, we can't include the TerminalControl and
|
||
TerminalSettings projects' winmds via project references. So we'll have to
|
||
manually include the winmds as References below -->
|
||
</ItemGroup>
|
||
<ItemGroup>
|
||
<!-- Manually add references to each of our dependent winmds. Mark them as
|
||
private=false and CopyLocalSatelliteAssemblies=false, so that we don't
|
||
propagate them upwards (which can make referencing this project result in
|
||
duplicate type definitions)-->
|
||
<Reference Include="Microsoft.Terminal.TerminalConnection">
|
||
<HintPath>$(OpenConsoleCommonOutDir)TerminalConnection\Microsoft.Terminal.TerminalConnection.winmd</HintPath>
|
||
<IsWinMDFile>true</IsWinMDFile>
|
||
<Private>false</Private>
|
||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||
</Reference>
|
||
<Reference Include="Microsoft.Terminal.Control">
|
||
<HintPath>$(OpenConsoleCommonOutDir)Microsoft.Terminal.Control\Microsoft.Terminal.Control.winmd</HintPath>
|
||
<IsWinMDFile>true</IsWinMDFile>
|
||
<Private>false</Private>
|
||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||
</Reference>
|
||
<Reference Include="Microsoft.Terminal.Core">
|
||
<HintPath>$(OpenConsoleCommonOutDir)TerminalCore\Microsoft.Terminal.Core.winmd</HintPath>
|
||
<IsWinMDFile>true</IsWinMDFile>
|
||
<Private>false</Private>
|
||
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
|
||
</Reference>
|
||
</ItemGroup>
|
||
<!-- ====================== Compiler & Linker Flags ===================== -->
|
||
<ItemDefinitionGroup>
|
||
<ClCompile>
|
||
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
||
<AdditionalIncludeDirectories>..;$(OpenConsoleDir)\dep\jsoncpp\json;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>
|
||
<!-- Manually disable unreachable code warning, because jconcpp has a ton of that. -->
|
||
<DisableSpecificWarnings>4702;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||
</ClCompile>
|
||
<Link>
|
||
<AdditionalDependencies>WindowsApp.lib;user32.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||
</Link>
|
||
<Reference>
|
||
<Private>false</Private>
|
||
</Reference>
|
||
</ItemDefinitionGroup>
|
||
<!-- ========================= Globals ======================== -->
|
||
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.post.props" />
|
||
<Import Project="..\..\..\packages\Microsoft.UI.Xaml.2.7.0-prerelease.210913003\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('..\..\..\packages\Microsoft.UI.Xaml.2.7.0-prerelease.210913003\build\native\Microsoft.UI.Xaml.targets')" />
|
||
<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>
|
||
<Error Condition="!Exists('$(OpenConsoleDir)\packages\Microsoft.UI.Xaml.2.7.0-prerelease.210913003\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(OpenConsoleDir)\packages\Microsoft.UI.Xaml.2.7.0-prerelease.210913003\build\native\Microsoft.UI.Xaml.targets'))" />
|
||
<Error Condition="!Exists('..\..\..\packages\Microsoft.VisualStudio.Setup.Configuration.Native.2.3.2262\build\native\Microsoft.VisualStudio.Setup.Configuration.Native.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.VisualStudio.Setup.Configuration.Native.2.3.2262\build\native\Microsoft.VisualStudio.Setup.Configuration.Native.targets'))" />
|
||
</Target>
|
||
<!-- This target will take our defaults.json and stamp it into a .h file that
|
||
we can include in the code directly. This way, we don't need to worry about
|
||
failing to load the default settings at runtime. -->
|
||
<Target Name="_TerminalAppGenerateDefaultsH" Inputs="defaults.json" Outputs="Generated Files\defaults.h" BeforeTargets="BeforeClCompile">
|
||
<Exec Command="pwsh.exe -NoProfile –ExecutionPolicy Unrestricted $(OpenConsoleDir)\tools\GenerateHeaderForJson.ps1 -JsonFile defaults.json -OutPath "Generated Files\defaults.h" -VariableName DefaultJson" />
|
||
</Target>
|
||
<!-- A different set of defaults for Universal variant -->
|
||
<Target Name="_TerminalAppGenerateDefaultsUniversalH" Inputs="defaults-universal.json" Outputs="Generated Files\defaults-universal.h" BeforeTargets="BeforeClCompile">
|
||
<Exec Command="pwsh.exe -NoProfile –ExecutionPolicy Unrestricted $(OpenConsoleDir)\tools\GenerateHeaderForJson.ps1 -JsonFile defaults-universal.json -OutPath "Generated Files\defaults-universal.h" -VariableName DefaultUniversalJson" />
|
||
</Target>
|
||
<!-- Same as above, but for the default settings.json template -->
|
||
<Target Name="_TerminalAppGenerateUserSettingsH" Inputs="userDefaults.json" Outputs="Generated Files\userDefaults.h" BeforeTargets="BeforeClCompile">
|
||
<Exec Command="pwsh.exe -NoProfile –ExecutionPolicy Unrestricted $(OpenConsoleDir)\tools\GenerateHeaderForJson.ps1 -JsonFile userDefaults.json -OutPath "Generated Files\userDefaults.h" -VariableName UserSettingsJson" />
|
||
</Target>
|
||
<Import Project="$(SolutionDir)build\rules\CollectWildcardResources.targets" />
|
||
<Import Project="..\..\..\packages\Microsoft.VisualStudio.Setup.Configuration.Native.2.3.2262\build\native\Microsoft.VisualStudio.Setup.Configuration.Native.targets" Condition="Exists('..\..\..\packages\Microsoft.VisualStudio.Setup.Configuration.Native.2.3.2262\build\native\Microsoft.VisualStudio.Setup.Configuration.Native.targets')" />
|
||
</Project> |