mirror of
https://github.com/microsoft/terminal.git
synced 2026-07-08 18:16:28 +00:00
We ship a separate package to Windows 10, which contains a copy of XAML embedded in it, because of a bug in activating classes from framework packages while we're elevated. We did this to avoid wasting disk space on Windows 11 installs (which is critical given that we're preinstalled in the Windows image.) The fix for this issue was released in a servicing update in April 2022. Thanks to KB5011831, we no longer need this workaround! And finally, this means that we no longer need to depend on a copy of "pre-release" XAML. We only did that because it would copy all of its assets into our package. Introduced in #12560 Closes #14106 Closes (discussion) #14981 Reverts #14660
102 lines
5.3 KiB
XML
102 lines
5.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
|
|
<!-- A note about this project: We're building the test code dll from this
|
|
project, but it _MUST_ be run in conjunction with the TestHostApp project.
|
|
TestHostApp actually will build a TestHost executable and packaging bits
|
|
that we can use to run our tests. We need TestHostApp so that our
|
|
dependencies, like MUX, can be aggregated correctly, and resources properly
|
|
combined into a resources.pri file.
|
|
|
|
TestHostApp will manually copy the output of this project into its own
|
|
OutDir, so we can run the tests from there. -->
|
|
|
|
<PropertyGroup>
|
|
<ProjectGuid>{CA5CAD1A-9B68-456A-B13E-C8218070DC42}</ProjectGuid>
|
|
<Keyword>Win32Proj</Keyword>
|
|
<RootNamespace>SettingsModelLocalTests</RootNamespace>
|
|
<ProjectName>LocalTests_SettingsModel</ProjectName>
|
|
<TargetName>SettingsModel.LocalTests</TargetName>
|
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
<OpenConsoleCppWinRTProject>true</OpenConsoleCppWinRTProject>
|
|
<!-- TerminalCppWinrt is not set intentionally -->
|
|
<TerminalMUX>true</TerminalMUX>
|
|
</PropertyGroup>
|
|
|
|
<Import Project="$(SolutionDir)\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
|
|
<Import Project="$(OpenConsoleDir)src\common.nugetversions.props" />
|
|
<Import Project="$(OpenConsoleDir)\src\cppwinrt.build.pre.props" />
|
|
|
|
<!-- ========================= Headers ======================== -->
|
|
<ItemGroup>
|
|
<ClInclude Include="pch.h" />
|
|
<ClInclude Include="JsonTestClass.h" />
|
|
</ItemGroup>
|
|
|
|
<!-- ========================= Cpp Files ======================== -->
|
|
<ItemGroup>
|
|
<ClCompile Include="ProfileTests.cpp" />
|
|
<ClCompile Include="ColorSchemeTests.cpp" />
|
|
<ClCompile Include="KeyBindingsTests.cpp" />
|
|
<ClCompile Include="CommandTests.cpp" />
|
|
<ClCompile Include="DeserializationTests.cpp" />
|
|
<ClCompile Include="NewTabMenuTests.cpp" />
|
|
<ClCompile Include="SerializationTests.cpp" />
|
|
<ClCompile Include="TerminalSettingsTests.cpp" />
|
|
<ClCompile Include="ThemeTests.cpp" />
|
|
<ClCompile Include="pch.cpp">
|
|
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
</ClCompile>
|
|
<!-- 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>
|
|
</ItemGroup>
|
|
|
|
<!-- ========================= Project References ======================== -->
|
|
<ItemGroup>
|
|
<ProjectReference Include="$(OpenConsoleDir)\src\cascadia\TerminalSettingsModel\Microsoft.Terminal.Settings.ModelLib.vcxproj" />
|
|
<ProjectReference Include="$(OpenConsoleDir)\src\types\lib\types.vcxproj" />
|
|
<ProjectReference Include="$(OpenConsoleDir)src\propslib\propslib.vcxproj" />
|
|
|
|
<!-- If you don't reference these projects here, the
|
|
_ConsoleGenerateAdditionalWinmdManifests step won't gather the winmd's -->
|
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalControl\dll\TerminalControl.vcxproj" />
|
|
<ProjectReference Include="$(OpenConsoleDir)src\cascadia\TerminalConnection\TerminalConnection.vcxproj" />
|
|
<ProjectReference Include="$(OpenConsoleDir)\src\cascadia\TerminalSettingsModel\dll\Microsoft.Terminal.Settings.Model.vcxproj" />
|
|
</ItemGroup>
|
|
|
|
<!-- ========================= Globals ======================== -->
|
|
|
|
<!-- ====================== Compiler & Linker Flags ===================== -->
|
|
<ItemDefinitionGroup>
|
|
<ClCompile>
|
|
<AdditionalIncludeDirectories>..;$(OpenConsoleDir)\dep;$(OpenConsoleDir)\dep\jsoncpp\json;$(OpenConsoleDir)src\inc;$(OpenConsoleDir)src\inc\test;$(WinRT_IncludePath)\..\cppwinrt\winrt;"$(OpenConsoleDir)\src\cascadia\TerminalSettingsModel\Generated Files";%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
|
|
<!-- Manually disable unreachable code warning, because jconcpp has a ton of that. -->
|
|
<DisableSpecificWarnings>4702;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
|
</ClCompile>
|
|
<Link>
|
|
<AdditionalDependencies>onecoreuap.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
<!--
|
|
SettingsModelLib contains a DllMain that we need to force the use of.
|
|
If you don't have this, then you'll see an error like
|
|
"(init.obj) : error LNK2005: DllMain already defined in MSVCRTD.lib(dll_dllmain_stub.obj)"
|
|
-->
|
|
<AdditionalOptions Condition="'$(Platform)'=='Win32'">%(AdditionalOptions) /INCLUDE:_DllMain@12</AdditionalOptions>
|
|
<AdditionalOptions Condition="'$(Platform)'!='Win32'">%(AdditionalOptions) /INCLUDE:DllMain</AdditionalOptions>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
|
|
<PropertyGroup>
|
|
<GenerateManifest>true</GenerateManifest>
|
|
<EmbedManifest>true</EmbedManifest>
|
|
</PropertyGroup>
|
|
|
|
<!-- Careful reordering these. Some default props (contained in these files) are order sensitive. -->
|
|
<Import Project="$(OpenConsoleDir)src\common.build.post.props" />
|
|
<Import Project="$(OpenConsoleDir)src\common.build.tests.props" />
|
|
<Import Project="$(OpenConsoleDir)src\common.nugetversions.targets" />
|
|
</Project>
|