Skip to content

Commit 64cdc7c

Browse files
authored
Add arm64 debug visualizer and update VS SDK package for VSIX (#1190)
* Build arm64 visualizer and include it in vsix * Add arm64 config to visualizer * Build arm64 visualizer in build_test_all * Update VS SDK package versions * Typo * Don't build cppwinrt.exe for arm64 (yet)
1 parent cea2e41 commit 64cdc7c

File tree

6 files changed

+108
-10
lines changed

6 files changed

+108
-10
lines changed

build_test_all.cmd

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,15 @@ call .nuget\nuget.exe restore test\nuget\NugetTest.sln
1919
call msbuild /m /p:Configuration=%target_configuration%,Platform=%target_platform%,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
2020

2121
if "%target_platform%"=="arm" goto :eof
22+
23+
call msbuild /p:Configuration=%target_configuration%,Platform=%target_platform%,Deployment=Component;CppWinRTBuildVersion=%target_version% natvis\cppwinrtvisualizer.sln
24+
call msbuild /p:Configuration=%target_configuration%,Platform=%target_platform%,Deployment=Standalone;CppWinRTBuildVersion=%target_version% natvis\cppwinrtvisualizer.sln
25+
2226
if "%target_platform%"=="arm64" goto :eof
2327

2428
call msbuild /m /p:Configuration=%target_configuration%,Platform=%target_platform%,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:cppwinrt
2529
_build\%target_platform%\%target_configuration%\cppwinrt.exe -in local -out _build\%target_platform%\%target_configuration% -verbose
26-
call msbuild /p:Configuration=%target_configuration%,Platform=%target_platform%,Deployment=Component;CppWinRTBuildVersion=%target_version% natvis\cppwinrtvisualizer.sln
27-
call msbuild /p:Configuration=%target_configuration%,Platform=%target_platform%,Deployment=Standalone;CppWinRTBuildVersion=%target_version% natvis\cppwinrtvisualizer.sln
30+
2831
call msbuild /p:Configuration=%target_configuration%,Platform=%target_platform%,CppWinRTBuildVersion=%target_version% test\nuget\NugetTest.sln
2932

3033
call msbuild /m /p:Configuration=%target_configuration%,Platform=%target_platform%,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:test\test

build_vsix.cmd

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,13 @@ call msbuild /m /p:Configuration=%target_configuration%,Platform=arm64,CppWinRTB
2525
rem Build cppwinrt.exe for x86 only
2626
call msbuild /m /p:Configuration=%target_configuration%,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:cppwinrt
2727

28-
rem Build cppwinrt visualizer dll for x86 and x64
28+
rem Build cppwinrt visualizer dll for x86, x64, and arm64
2929
call msbuild /p:Configuration=%target_configuration%,Platform=x64,Deployment=%target_deployment%,CppWinRTBuildVersion=%target_version% natvis\cppwinrtvisualizer.sln
3030
call msbuild /p:Configuration=%target_configuration%,Platform=x86,Deployment=%target_deployment%,CppWinRTBuildVersion=%target_version% natvis\cppwinrtvisualizer.sln
31+
call msbuild /p:Configuration=%target_configuration%,Platform=arm64,Deployment=%target_deployment%,CppWinRTBuildVersion=%target_version% natvis\cppwinrtvisualizer.sln
3132

3233
rem Build nuget
3334
.nuget\nuget.exe pack nuget\Microsoft.Windows.CppWinRT.nuspec -NonInteractive -OutputDirectory %this_dir%_build -Properties Configuration=%target_configuration%;cppwinrt_exe=%this_dir%_build\x86\%target_configuration%\cppwinrt.exe;cppwinrt_fast_fwd_x86=%this_dir%_build\x86\%target_configuration%\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_x64=%this_dir%_build\x64\%target_configuration%\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm=%this_dir%_build\arm\%target_configuration%\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm64=%this_dir%_build\arm64\%target_configuration%\cppwinrt_fast_forwarder.lib -version %target_version% -Verbosity Detailed
3435

3536
rem Build vsix
36-
call msbuild /restore /p:Configuration=%target_configuration%,Platform="Any CPU",Deployment=%target_deployment%,CppWinRTVersion=%target_version%,NatvisDirx86=%this_dir%natvis\x86\%target_configuration%\%target_deployment%,NatvisDirx64=%this_dir%natvis\x64\%target_configuration%\%target_deployment%,NupkgDir=%this_dir%_build vsix\vsix.sln
37+
call msbuild /restore /p:Configuration=%target_configuration%,Platform="Any CPU",Deployment=%target_deployment%,CppWinRTVersion=%target_version%,NatvisDirx86=%this_dir%natvis\x86\%target_configuration%\%target_deployment%,NatvisDirx64=%this_dir%natvis\x64\%target_configuration%\%target_deployment%,NatvisDirarm64=%this_dir%natvis\arm64\%target_configuration%\%target_deployment%,NupkgDir=%this_dir%_build vsix\vsix.sln

natvis/cppwinrtvisualizer.sln

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,28 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 15
4-
VisualStudioVersion = 15.0.27130.0
3+
# Visual Studio Version 17
4+
VisualStudioVersion = 17.3.32901.215
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cppwinrtvisualizer", "cppwinrtvisualizer.vcxproj", "{3C692D34-10C1-4707-B469-5EDB0EEF8AFC}"
77
EndProject
88
Global
99
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|ARM64 = Debug|ARM64
1011
Debug|x64 = Debug|x64
1112
Debug|x86 = Debug|x86
13+
Release|ARM64 = Release|ARM64
1214
Release|x64 = Release|x64
1315
Release|x86 = Release|x86
1416
EndGlobalSection
1517
GlobalSection(ProjectConfigurationPlatforms) = postSolution
18+
{3C692D34-10C1-4707-B469-5EDB0EEF8AFC}.Debug|ARM64.ActiveCfg = Debug|ARM64
19+
{3C692D34-10C1-4707-B469-5EDB0EEF8AFC}.Debug|ARM64.Build.0 = Debug|ARM64
1620
{3C692D34-10C1-4707-B469-5EDB0EEF8AFC}.Debug|x64.ActiveCfg = Debug|x64
1721
{3C692D34-10C1-4707-B469-5EDB0EEF8AFC}.Debug|x64.Build.0 = Debug|x64
1822
{3C692D34-10C1-4707-B469-5EDB0EEF8AFC}.Debug|x86.ActiveCfg = Debug|Win32
1923
{3C692D34-10C1-4707-B469-5EDB0EEF8AFC}.Debug|x86.Build.0 = Debug|Win32
24+
{3C692D34-10C1-4707-B469-5EDB0EEF8AFC}.Release|ARM64.ActiveCfg = Release|ARM64
25+
{3C692D34-10C1-4707-B469-5EDB0EEF8AFC}.Release|ARM64.Build.0 = Release|ARM64
2026
{3C692D34-10C1-4707-B469-5EDB0EEF8AFC}.Release|x64.ActiveCfg = Release|x64
2127
{3C692D34-10C1-4707-B469-5EDB0EEF8AFC}.Release|x64.Build.0 = Release|x64
2228
{3C692D34-10C1-4707-B469-5EDB0EEF8AFC}.Release|x86.ActiveCfg = Release|Win32

natvis/cppwinrtvisualizer.vcxproj

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,18 @@
22
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<Import Project="packages\Microsoft.Windows.WinMD.1.0.210629.2\build\native\Microsoft.Windows.WinMD.props" Condition="Exists('packages\Microsoft.Windows.WinMD.1.0.210629.2\build\native\Microsoft.Windows.WinMD.props')" />
44
<ItemGroup Label="ProjectConfigurations">
5+
<ProjectConfiguration Include="Debug|ARM64">
6+
<Configuration>Debug</Configuration>
7+
<Platform>ARM64</Platform>
8+
</ProjectConfiguration>
59
<ProjectConfiguration Include="Debug|Win32">
610
<Configuration>Debug</Configuration>
711
<Platform>Win32</Platform>
812
</ProjectConfiguration>
13+
<ProjectConfiguration Include="Release|ARM64">
14+
<Configuration>Release</Configuration>
15+
<Platform>ARM64</Platform>
16+
</ProjectConfiguration>
917
<ProjectConfiguration Include="Release|Win32">
1018
<Configuration>Release</Configuration>
1119
<Platform>Win32</Platform>
@@ -41,11 +49,20 @@
4149
<ConfigurationType>DynamicLibrary</ConfigurationType>
4250
<UseDebugLibraries>true</UseDebugLibraries>
4351
</PropertyGroup>
52+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
53+
<ConfigurationType>DynamicLibrary</ConfigurationType>
54+
<UseDebugLibraries>true</UseDebugLibraries>
55+
</PropertyGroup>
4456
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
4557
<ConfigurationType>DynamicLibrary</ConfigurationType>
4658
<UseDebugLibraries>false</UseDebugLibraries>
4759
<WholeProgramOptimization>true</WholeProgramOptimization>
4860
</PropertyGroup>
61+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
62+
<ConfigurationType>DynamicLibrary</ConfigurationType>
63+
<UseDebugLibraries>false</UseDebugLibraries>
64+
<WholeProgramOptimization>true</WholeProgramOptimization>
65+
</PropertyGroup>
4966
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
5067
<PropertyGroup>
5168
<DIASDKInc>$(VSInstallDir)DIA SDK\include</DIASDKInc>
@@ -63,9 +80,15 @@
6380
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
6481
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
6582
</ImportGroup>
83+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
84+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
85+
</ImportGroup>
6686
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
6787
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
6888
</ImportGroup>
89+
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
90+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
91+
</ImportGroup>
6992
<PropertyGroup Label="UserMacros" />
7093
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
7194
<LinkIncremental>true</LinkIncremental>
@@ -127,6 +150,31 @@
127150
<DelayLoadDLLs>vsdebugeng.dll</DelayLoadDLLs>
128151
</Link>
129152
</ItemDefinitionGroup>
153+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
154+
<ClCompile>
155+
<PrecompiledHeader>Use</PrecompiledHeader>
156+
<WarningLevel>Level4</WarningLevel>
157+
<Optimization>Disabled</Optimization>
158+
<SDLCheck>false</SDLCheck>
159+
<PreprocessorDefinitions>_DEBUG;VISUALIZER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
160+
<AdditionalIncludeDirectories>$(IntDir);..\cppwinrt;..\strings;$(DIASDKInc);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
161+
<LanguageStandard>stdcpp17</LanguageStandard>
162+
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
163+
<AdditionalOptions>/await</AdditionalOptions>
164+
</ClCompile>
165+
<ResourceCompile>
166+
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
167+
<Culture>0x0409</Culture>
168+
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
169+
</ResourceCompile>
170+
<Link>
171+
<SubSystem>Windows</SubSystem>
172+
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
173+
<AdditionalDependencies>advapi32.lib;shell32.lib;windowsapp.lib;$(VsDebugEng_Lib);%(AdditionalDependencies)</AdditionalDependencies>
174+
<ModuleDefinitionFile>.\cppwinrtvisualizer.def</ModuleDefinitionFile>
175+
<DelayLoadDLLs>vsdebugeng.dll</DelayLoadDLLs>
176+
</Link>
177+
</ItemDefinitionGroup>
130178
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
131179
<ClCompile>
132180
<PrecompiledHeader>Use</PrecompiledHeader>
@@ -187,6 +235,36 @@
187235
<AdditionalOptions>/DEBUGTYPE:CV,FIXUP %(AdditionalOptions)</AdditionalOptions>
188236
</Link>
189237
</ItemDefinitionGroup>
238+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
239+
<ClCompile>
240+
<PrecompiledHeader>Use</PrecompiledHeader>
241+
<WarningLevel>Level4</WarningLevel>
242+
<Optimization>MaxSpeed</Optimization>
243+
<FunctionLevelLinking>true</FunctionLevelLinking>
244+
<IntrinsicFunctions>true</IntrinsicFunctions>
245+
<SDLCheck>false</SDLCheck>
246+
<PreprocessorDefinitions>NDEBUG;VISUALIZER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
247+
<AdditionalIncludeDirectories>$(IntDir);..\cppwinrt;..\strings;$(DIASDKInc);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
248+
<LanguageStandard>stdcpp17</LanguageStandard>
249+
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
250+
<AdditionalOptions>/await</AdditionalOptions>
251+
</ClCompile>
252+
<ResourceCompile>
253+
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
254+
<Culture>0x0409</Culture>
255+
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
256+
</ResourceCompile>
257+
<Link>
258+
<SubSystem>Windows</SubSystem>
259+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
260+
<OptimizeReferences>true</OptimizeReferences>
261+
<GenerateDebugInformation>DebugFull</GenerateDebugInformation>
262+
<AdditionalDependencies>advapi32.lib;shell32.lib;windowsapp.lib;$(VsDebugEng_Lib);%(AdditionalDependencies)</AdditionalDependencies>
263+
<ModuleDefinitionFile>.\cppwinrtvisualizer.def</ModuleDefinitionFile>
264+
<DelayLoadDLLs>vsdebugeng.dll</DelayLoadDLLs>
265+
<AdditionalOptions>/DEBUGTYPE:CV,FIXUP %(AdditionalOptions)</AdditionalOptions>
266+
</Link>
267+
</ItemDefinitionGroup>
190268
<ItemDefinitionGroup Condition="'$(Deployment)'=='Component'">
191269
<ClCompile>
192270
<AdditionalOptions>%(AdditionalOptions) /DCOMPONENT_DEPLOYMENT</AdditionalOptions>
@@ -208,8 +286,10 @@
208286
<ClCompile Include="pch.cpp">
209287
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
210288
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
289+
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
211290
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
212291
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
292+
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
213293
</ClCompile>
214294
<ClCompile Include="type_resolver.cpp" />
215295
</ItemGroup>

vsix/Dev16/vsix.Dev16.csproj

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,11 @@
6161
<Link>x64\%(Filename)%(Extension)</Link>
6262
<IncludeInVSIX>true</IncludeInVSIX>
6363
</Content>
64-
<None Include="$(Deployment)\source.extension.vsixmanifest">
64+
<Content Include="$(NatvisDirarm64)\cppwinrtvisualizer.dll">
65+
<Link>arm64\%(Filename)%(Extension)</Link>
66+
<IncludeInVSIX>true</IncludeInVSIX>
67+
</Content>
68+
<None Include="$(Deployment)\source.extension.vsixmanifest">
6569
<SubType>Designer</SubType>
6670
</None>
6771
</ItemGroup>
@@ -84,7 +88,7 @@
8488
<IncludeAssets>compile; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
8589
</PackageReference>
8690
<PackageReference Include="Microsoft.VSSDK.BuildTools">
87-
<Version>17.0.1619-preview1</Version>
91+
<Version>17.3.2093</Version>
8892
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
8993
<PrivateAssets>all</PrivateAssets>
9094
</PackageReference>

vsix/Dev17/vsix.Dev17.csproj

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@
6464
<Link>x64\%(Filename)%(Extension)</Link>
6565
<IncludeInVSIX>true</IncludeInVSIX>
6666
</Content>
67+
<Content Include="$(NatvisDirarm64)\cppwinrtvisualizer.dll">
68+
<Link>arm64\%(Filename)%(Extension)</Link>
69+
<IncludeInVSIX>true</IncludeInVSIX>
70+
</Content>
6771
<None Include="$(Deployment)\source.extension.vsixmanifest">
6872
<SubType>Designer</SubType>
6973
</None>
@@ -83,10 +87,10 @@
8387
<Folder Include="x64\" />
8488
</ItemGroup>
8589
<ItemGroup>
86-
<PackageReference Include="Microsoft.VisualStudio.SDK" Version="17.0.0-previews-4-31709-430" ExcludeAssets="runtime">
90+
<PackageReference Include="Microsoft.VisualStudio.SDK" Version="17.3.32804.24" ExcludeAssets="runtime">
8791
<IncludeAssets>compile; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
8892
</PackageReference>
89-
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="17.0.4207-preview4">
93+
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="17.3.2093">
9094
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
9195
<PrivateAssets>all</PrivateAssets>
9296
</PackageReference>

0 commit comments

Comments
 (0)