From 49ddc2bccf878ab1e1f8274bd5256f447da38eb6 Mon Sep 17 00:00:00 2001
From: Ahmed Walid <34550324+ahmed605@users.noreply.github.com>
Date: Sat, 1 Aug 2026 17:41:56 +0000
Subject: [PATCH 1/6] Revert "GitHub Actions workflow cannot build arm32 after
updating Windows SDK (#1454)"
This reverts commit 2aed347fb7b54f1f01e9db53339ad9d2b4305ab9.
---
.pipelines/OneBranch.Official.yml | 7 +
.pipelines/build.yml | 18 +-
.pipelines/jobs/OneBranchBuild.yml | 2 +
.pipelines/jobs/OneBranchNuGet.yml | 8 +-
.pipelines/jobs/OneBranchVsix.yml | 6 +
Directory.Build.Props | 2 +-
README.md | 2 +-
build_nuget.cmd | 3 +-
build_prior_projection.cmd | 1 +
build_projection.cmd | 1 +
build_test_all.cmd | 2 +
build_vsix.cmd | 3 +-
cppwinrt.sln | 86 +++++++++
cppwinrt/cppwinrt.vcxproj | 63 +++++++
fast_fwd/arm/thunks.asm | 58 +++++++
fast_fwd/fast_fwd.vcxproj | 16 +-
nuget/Microsoft.Windows.CppWinRT.nuspec | 1 +
prebuild/prebuild.vcxproj | 47 +++++
prepare_versionless_diffs.cmd | 1 +
scratch/scratch.vcxproj | 8 +
strings/base_activation.h | 8 +-
.../ConsoleApplication1.vcxproj | 8 -
test/nuget/Directory.Build.props | 2 +-
test/nuget/NuGetTest.sln | 156 ++++++++++-------
test/nuget/TestApp/TestApp.vcxproj | 8 +-
.../TestRuntimeComponent1.vcxproj | 8 +-
.../TestRuntimeComponent2.vcxproj | 8 +-
.../TestRuntimeComponent3.vcxproj | 8 +-
.../TestRuntimeComponentCSharp.csproj | 18 ++
.../TestRuntimeComponentCX.vcxproj | 54 ++++++
...entCXReferencingWinRTStaticLibrary.vcxproj | 61 +++++++
.../TestRuntimeComponentEmpty.vcxproj | 8 +-
...untimeComponentNamespaceUnderscore.vcxproj | 8 +-
.../TestStaticLibrary1.vcxproj | 20 +--
.../TestStaticLibrary2.vcxproj | 20 +--
.../TestStaticLibrary3.vcxproj | 20 +--
.../TestStaticLibrary4.vcxproj | 24 +--
.../TestStaticLibrary5.vcxproj | 24 +--
.../TestStaticLibrary6.vcxproj | 24 +--
.../TestStaticLibrary7.vcxproj | 8 +-
test/old_tests/Component/Component.vcxproj | 120 +++++++++++++
test/old_tests/Composable/Composable.vcxproj | 118 +++++++++++++
test/old_tests/UnitTests/Tests.vcxproj | 63 +++++++
test/test/test.vcxproj | 77 +++++++++
test/test_component/test_component.vcxproj | 135 +++++++++++++++
.../test_component_base.vcxproj | 161 +++++++++++++++++
.../test_component_derived.vcxproj | 163 ++++++++++++++++++
.../test_component_fast.vcxproj | 163 ++++++++++++++++++
.../test_component_folders.vcxproj | 161 +++++++++++++++++
.../test_component_no_pch.vcxproj | 163 ++++++++++++++++++
test/test_cpp20/test_cpp20.vcxproj | 65 +++++++
.../test_cpp20_no_sourcelocation.vcxproj | 65 +++++++
test/test_fast/test_fast.vcxproj | 65 +++++++
test/test_fast_fwd/test_fast_fwd.vcxproj | 66 +++++++
.../test_module_lock_custom.vcxproj | 65 +++++++
.../test_module_lock_none.vcxproj | 65 +++++++
test/test_slow/test_slow.vcxproj | 63 +++++++
.../BlankApp/BlankApp.vcxproj | 8 +
.../Windows Universal/CoreApp/CoreApp.vcxproj | 8 +
.../StaticLibrary/StaticLibrary.vcxproj | 8 +
.../WindowsRuntimeComponent.vcxproj | 8 +
61 files changed, 2468 insertions(+), 172 deletions(-)
create mode 100644 fast_fwd/arm/thunks.asm
diff --git a/.pipelines/OneBranch.Official.yml b/.pipelines/OneBranch.Official.yml
index 158d3bf4e..8f0ba105e 100644
--- a/.pipelines/OneBranch.Official.yml
+++ b/.pipelines/OneBranch.Official.yml
@@ -97,6 +97,12 @@ extends:
artifactName: 'drop_build_x64'
targetPath: '$(Build.SourcesDirectory)/x64'
+ - task: DownloadPipelineArtifact@2
+ displayName: 'Download arm artifacts'
+ inputs:
+ artifactName: 'drop_build_arm'
+ targetPath: '$(Build.SourcesDirectory)/arm'
+
- task: DownloadPipelineArtifact@2
displayName: 'Download arm64 artifacts'
inputs:
@@ -127,6 +133,7 @@ extends:
echo d | xcopy $(Build.SourcesDirectory)\x86\cppwinrt_fast_forwarder.lib build\native\lib\Win32
echo d | xcopy $(Build.SourcesDirectory)\x64\cppwinrt_fast_forwarder.lib build\native\lib\amd64
echo d | xcopy $(Build.SourcesDirectory)\x64\cppwinrt_fast_forwarder.lib build\native\lib\x64
+ echo d | xcopy $(Build.SourcesDirectory)\arm\cppwinrt_fast_forwarder.lib build\native\lib\arm
echo d | xcopy $(Build.SourcesDirectory)\arm64\cppwinrt_fast_forwarder.lib build\native\lib\arm64
- stage: NuGet
diff --git a/.pipelines/build.yml b/.pipelines/build.yml
index ebe8ad041..b46e36eb9 100644
--- a/.pipelines/build.yml
+++ b/.pipelines/build.yml
@@ -31,6 +31,8 @@ jobs:
buildPlatform: 'x86'
x64:
buildPlatform: 'x64'
+ arm:
+ buildPlatform: 'arm'
arm64:
buildPlatform: 'arm64'
@@ -167,6 +169,12 @@ jobs:
artifactName: $(BuildConfiguration)_x64
downloadPath: $(Build.SourcesDirectory)\x64
+ - task: DownloadPipelineArtifact@1
+ displayName: Download arm Artifacts
+ inputs:
+ artifactName: $(BuildConfiguration)_arm
+ downloadPath: $(Build.SourcesDirectory)\arm
+
- task: DownloadPipelineArtifact@1
displayName: Download arm64 Artifacts
inputs:
@@ -254,7 +262,7 @@ jobs:
- task: CmdLine@2
displayName: Stage MSBuild vpack
inputs:
- script: "set TargetDir=$(Build.SourcesDirectory)\\msbuild\nrd /s /q %TargetDir% >nul 2>&1\nmd %TargetDir%\ncd %TargetDir%\n\ncopy $(Build.SourcesDirectory)\\vsix\\Microsoft.Cpp.CppWinRT.props\ncopy $(Build.SourcesDirectory)\\nuget\\Microsoft.Windows.CppWinRT.props Microsoft.Cpp.CppWinRTEnabled.props \ncopy $(Build.SourcesDirectory)\\nuget\\Microsoft.Windows.CppWinRT.targets Microsoft.Cpp.CppWinRTEnabled.targets\ncopy $(Build.SourcesDirectory)\\nuget\\CppWinrtRules.Project.xml CppWinrtRules.Project.xml\necho d | xcopy $(Build.SourcesDirectory)\\x86\\cppwinrt_fast_forwarder.lib build\\native\\lib\\i386\necho d | xcopy $(Build.SourcesDirectory)\\x86\\cppwinrt_fast_forwarder.lib build\\native\\lib\\Win32\necho d | xcopy $(Build.SourcesDirectory)\\x64\\cppwinrt_fast_forwarder.lib build\\native\\lib\\amd64\necho d | xcopy $(Build.SourcesDirectory)\\x64\\cppwinrt_fast_forwarder.lib build\\native\\lib\\x64\necho d | xcopy $(Build.SourcesDirectory)\\arm64\\cppwinrt_fast_forwarder.lib build\\native\\lib\\arm64\n"
+ script: "set TargetDir=$(Build.SourcesDirectory)\\msbuild\nrd /s /q %TargetDir% >nul 2>&1\nmd %TargetDir%\ncd %TargetDir%\n\ncopy $(Build.SourcesDirectory)\\vsix\\Microsoft.Cpp.CppWinRT.props\ncopy $(Build.SourcesDirectory)\\nuget\\Microsoft.Windows.CppWinRT.props Microsoft.Cpp.CppWinRTEnabled.props \ncopy $(Build.SourcesDirectory)\\nuget\\Microsoft.Windows.CppWinRT.targets Microsoft.Cpp.CppWinRTEnabled.targets\ncopy $(Build.SourcesDirectory)\\nuget\\CppWinrtRules.Project.xml CppWinrtRules.Project.xml\necho d | xcopy $(Build.SourcesDirectory)\\x86\\cppwinrt_fast_forwarder.lib build\\native\\lib\\i386\necho d | xcopy $(Build.SourcesDirectory)\\x86\\cppwinrt_fast_forwarder.lib build\\native\\lib\\Win32\necho d | xcopy $(Build.SourcesDirectory)\\x64\\cppwinrt_fast_forwarder.lib build\\native\\lib\\amd64\necho d | xcopy $(Build.SourcesDirectory)\\x64\\cppwinrt_fast_forwarder.lib build\\native\\lib\\x64\necho d | xcopy $(Build.SourcesDirectory)\\arm\\cppwinrt_fast_forwarder.lib build\\native\\lib\\arm\necho d | xcopy $(Build.SourcesDirectory)\\arm64\\cppwinrt_fast_forwarder.lib build\\native\\lib\\arm64\n"
failOnStderr: true
- task: PkgESVPack@12
@@ -335,6 +343,12 @@ jobs:
artifactName: $(BuildConfiguration)_x64
downloadPath: $(Build.SourcesDirectory)\x64
+ - task: DownloadPipelineArtifact@1
+ displayName: Download arm Artifacts
+ inputs:
+ artifactName: $(BuildConfiguration)_arm
+ downloadPath: $(Build.SourcesDirectory)\arm
+
- task: DownloadPipelineArtifact@1
displayName: Download arm64 Artifacts
inputs:
@@ -416,7 +430,7 @@ jobs:
command: pack
searchPatternPack: nuget/Microsoft.Windows.CppWinRT.nuspec
versioningScheme: byBuildNumber
- buildProperties: 'target_version=$(Build.BuildNumber);cppwinrt_exe=$(Build.ArtifactStagingDirectory)\x86\cppwinrt.exe;cppwinrt_fast_fwd_x86=$(Build.SourcesDirectory)\x86\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_x64=$(Build.SourcesDirectory)\x64\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm64=$(Build.SourcesDirectory)\arm64\cppwinrt_fast_forwarder.lib '
+ buildProperties: 'target_version=$(Build.BuildNumber);cppwinrt_exe=$(Build.ArtifactStagingDirectory)\x86\cppwinrt.exe;cppwinrt_fast_fwd_x86=$(Build.SourcesDirectory)\x86\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_x64=$(Build.SourcesDirectory)\x64\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm=$(Build.SourcesDirectory)\arm\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm64=$(Build.SourcesDirectory)\arm64\cppwinrt_fast_forwarder.lib '
- task: ComponentGovernanceComponentDetection@0
displayName: Component Detection
diff --git a/.pipelines/jobs/OneBranchBuild.yml b/.pipelines/jobs/OneBranchBuild.yml
index dfee85edf..00dbfe93a 100644
--- a/.pipelines/jobs/OneBranchBuild.yml
+++ b/.pipelines/jobs/OneBranchBuild.yml
@@ -20,6 +20,8 @@ jobs:
BuildPlatform: 'x86'
x64:
BuildPlatform: 'x64'
+ arm:
+ BuildPlatform: 'arm'
arm64:
BuildPlatform: 'arm64'
diff --git a/.pipelines/jobs/OneBranchNuGet.yml b/.pipelines/jobs/OneBranchNuGet.yml
index 36ec3144b..71468699d 100644
--- a/.pipelines/jobs/OneBranchNuGet.yml
+++ b/.pipelines/jobs/OneBranchNuGet.yml
@@ -47,6 +47,12 @@ jobs:
artifactName: 'drop_build_x64'
targetPath: '$(Build.SourcesDirectory)/x64'
+ - task: DownloadPipelineArtifact@1
+ displayName: 'Download arm artifacts'
+ inputs:
+ artifactName: 'drop_build_arm'
+ targetPath: '$(Build.SourcesDirectory)/arm'
+
- task: DownloadPipelineArtifact@1
displayName: 'Download arm64 artifacts'
inputs:
@@ -57,7 +63,7 @@ jobs:
displayName: 'Build NuGet package'
inputs:
command: 'custom'
- arguments: 'pack nuget/Microsoft.Windows.CppWinRT.nuspec -NonInteractive -OutputDirectory $(ob_outputDirectory)\packages -Properties Configuration=release;cppwinrt_exe=$(Build.SourcesDirectory)\x86\cppwinrt\cppwinrt.exe;cppwinrt_fast_fwd_x86=$(Build.SourcesDirectory)\x86\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_x64=$(Build.SourcesDirectory)\x64\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm64=$(Build.SourcesDirectory)\arm64\cppwinrt_fast_forwarder.lib;target_version=$(PackageVersion) -Version $(PackageVersion) -Verbosity Detailed'
+ arguments: 'pack nuget/Microsoft.Windows.CppWinRT.nuspec -NonInteractive -OutputDirectory $(ob_outputDirectory)\packages -Properties Configuration=release;cppwinrt_exe=$(Build.SourcesDirectory)\x86\cppwinrt\cppwinrt.exe;cppwinrt_fast_fwd_x86=$(Build.SourcesDirectory)\x86\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_x64=$(Build.SourcesDirectory)\x64\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm=$(Build.SourcesDirectory)\arm\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm64=$(Build.SourcesDirectory)\arm64\cppwinrt_fast_forwarder.lib;target_version=$(PackageVersion) -Version $(PackageVersion) -Verbosity Detailed'
- task: onebranch.pipeline.signing@1
displayName: '🔒 Onebranch Signing for NuGet package'
diff --git a/.pipelines/jobs/OneBranchVsix.yml b/.pipelines/jobs/OneBranchVsix.yml
index 696b7e292..85138db65 100644
--- a/.pipelines/jobs/OneBranchVsix.yml
+++ b/.pipelines/jobs/OneBranchVsix.yml
@@ -77,6 +77,12 @@ jobs:
artifactName: 'drop_build_x64'
targetPath: '$(Build.SourcesDirectory)\x64'
+ - task: DownloadPipelineArtifact@2
+ displayName: 'Download arm binaries'
+ inputs:
+ artifactName: 'drop_build_arm'
+ targetPath: '$(Build.SourcesDirectory)\arm'
+
- task: DownloadPipelineArtifact@2
displayName: 'Download arm64 binaries'
inputs:
diff --git a/Directory.Build.Props b/Directory.Build.Props
index 5972803c0..2f1cfb6c5 100644
--- a/Directory.Build.Props
+++ b/Directory.Build.Props
@@ -46,7 +46,7 @@
$(SolutionDir)_build\$(CppWinRTPlatform)\$(Configuration)\
$(SolutionDir)_build\$(CppWinRTPlatform)\$(Configuration)\temp\$(MSBuildProjectName)\
$(OutDir)
- $(SolutionDir)_build\x86\$(Configuration)\
+ $(SolutionDir)_build\x86\$(Configuration)\
diff --git a/README.md b/README.md
index 19e1493dc..d10bcbe57 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@ If you really want to build it yourself, the simplest way to do so is to run the
* Open the `cppwinrt.sln` solution.
* Choose a configuration (x64, x86, Release, Debug) and build projects as needed.
-If you are working on an ARM64 specific issue from an x64 or x86 host, you will need to instead:
+If you are working on an ARM64 or ARM specific issue from an x64 or x86 host, you will need to instead:
* Open the `cppwinrt.sln` solution
* Build the x86 version of the "cppwinrt" project first
diff --git a/build_nuget.cmd b/build_nuget.cmd
index 99e193311..1eb21d55e 100644
--- a/build_nuget.cmd
+++ b/build_nuget.cmd
@@ -5,8 +5,9 @@ if "%target_version%"=="" set target_version=999.999.999.999
call msbuild /m /p:Configuration=Release,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
call msbuild /m /p:Configuration=Release,Platform=x64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
+call msbuild /m /p:Configuration=Release,Platform=arm,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
call msbuild /m /p:Configuration=Release,Platform=arm64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
call msbuild /m /p:Configuration=Release,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:cppwinrt
-nuget pack nuget\Microsoft.Windows.CppWinRT.nuspec -Properties target_version=%target_version%;cppwinrt_exe=%cd%\_build\x86\Release\cppwinrt.exe;cppwinrt_fast_fwd_x86=%cd%\_build\x86\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_x64=%cd%\_build\x64\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm64=%cd%\_build\arm64\Release\cppwinrt_fast_forwarder.lib
+nuget pack nuget\Microsoft.Windows.CppWinRT.nuspec -Properties target_version=%target_version%;cppwinrt_exe=%cd%\_build\x86\Release\cppwinrt.exe;cppwinrt_fast_fwd_x86=%cd%\_build\x86\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_x64=%cd%\_build\x64\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm=%cd%\_build\arm\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm64=%cd%\_build\arm64\Release\cppwinrt_fast_forwarder.lib
diff --git a/build_prior_projection.cmd b/build_prior_projection.cmd
index 9d10f3eaa..c7bdf2f64 100644
--- a/build_prior_projection.cmd
+++ b/build_prior_projection.cmd
@@ -12,6 +12,7 @@ if /I "%target_platform%" equ "all" (
)
call %0 x86 !target_configuration!
call %0 x64 !target_configuration!
+ call %0 arm !target_configuration!
call %0 arm64 !target_configuration!
goto :eof
)
diff --git a/build_projection.cmd b/build_projection.cmd
index 140e6c7f8..778fa7aca 100644
--- a/build_projection.cmd
+++ b/build_projection.cmd
@@ -12,6 +12,7 @@ if /I "%target_platform%" equ "all" (
)
call %0 x86 !target_configuration!
call %0 x64 !target_configuration!
+ call %0 arm !target_configuration!
call %0 arm64 !target_configuration!
goto :eof
)
diff --git a/build_test_all.cmd b/build_test_all.cmd
index c9beb852c..51fe37aa0 100644
--- a/build_test_all.cmd
+++ b/build_test_all.cmd
@@ -18,6 +18,8 @@ call .nuget\nuget.exe restore test\nuget\NugetTest.sln
call msbuild /m /p:Configuration=%target_configuration%,Platform=%target_platform%,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
+if "%target_platform%"=="arm" goto :eof
+
call msbuild /p:Configuration=%target_configuration%,Platform=%target_platform%,Deployment=Component;CppWinRTBuildVersion=%target_version% natvis\cppwinrtvisualizer.sln
call msbuild /p:Configuration=%target_configuration%,Platform=%target_platform%,Deployment=Standalone;CppWinRTBuildVersion=%target_version% natvis\cppwinrtvisualizer.sln
diff --git a/build_vsix.cmd b/build_vsix.cmd
index 0a47f6bd6..8864c7a82 100644
--- a/build_vsix.cmd
+++ b/build_vsix.cmd
@@ -19,6 +19,7 @@ call .nuget\nuget.exe restore test\nuget\NugetTest.sln
rem Build fast forwarder libs or all arches
call msbuild /m /p:Configuration=%target_configuration%,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
call msbuild /m /p:Configuration=%target_configuration%,Platform=x64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
+call msbuild /m /p:Configuration=%target_configuration%,Platform=arm,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
call msbuild /m /p:Configuration=%target_configuration%,Platform=arm64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
rem Build cppwinrt.exe for x86 only
@@ -30,7 +31,7 @@ call msbuild /p:Configuration=%target_configuration%,Platform=x86,Deployment=%ta
call msbuild /p:Configuration=%target_configuration%,Platform=arm64,Deployment=%target_deployment%,CppWinRTBuildVersion=%target_version% natvis\cppwinrtvisualizer.sln
rem Build nuget
-.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_arm64=%this_dir%_build\arm64\%target_configuration%\cppwinrt_fast_forwarder.lib;target_version=%target_version% -version %target_version% -Verbosity Detailed
+.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;target_version=%target_version% -version %target_version% -Verbosity Detailed
rem Build vsix
call msbuild /restore /p:Configuration=%target_configuration%,Platform="Any CPU",Deployment=%target_deployment%,CppWinRTVersion=%target_version%,NugetPackageVersion=%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
diff --git a/cppwinrt.sln b/cppwinrt.sln
index 700e9f5ea..86b7a8323 100644
--- a/cppwinrt.sln
+++ b/cppwinrt.sln
@@ -144,260 +144,346 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM = Debug|ARM
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Release|ARM = Release|ARM
Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D613FB39-5035-4043-91E2-BAB323908AF4}.Debug|ARM.ActiveCfg = Debug|ARM
+ {D613FB39-5035-4043-91E2-BAB323908AF4}.Debug|ARM.Build.0 = Debug|ARM
{D613FB39-5035-4043-91E2-BAB323908AF4}.Debug|ARM64.ActiveCfg = Debug|ARM64
{D613FB39-5035-4043-91E2-BAB323908AF4}.Debug|ARM64.Build.0 = Debug|ARM64
{D613FB39-5035-4043-91E2-BAB323908AF4}.Debug|x64.ActiveCfg = Debug|x64
{D613FB39-5035-4043-91E2-BAB323908AF4}.Debug|x64.Build.0 = Debug|x64
{D613FB39-5035-4043-91E2-BAB323908AF4}.Debug|x86.ActiveCfg = Debug|Win32
{D613FB39-5035-4043-91E2-BAB323908AF4}.Debug|x86.Build.0 = Debug|Win32
+ {D613FB39-5035-4043-91E2-BAB323908AF4}.Release|ARM.ActiveCfg = Release|ARM
+ {D613FB39-5035-4043-91E2-BAB323908AF4}.Release|ARM.Build.0 = Release|ARM
{D613FB39-5035-4043-91E2-BAB323908AF4}.Release|ARM64.ActiveCfg = Release|ARM64
{D613FB39-5035-4043-91E2-BAB323908AF4}.Release|ARM64.Build.0 = Release|ARM64
{D613FB39-5035-4043-91E2-BAB323908AF4}.Release|x64.ActiveCfg = Release|x64
{D613FB39-5035-4043-91E2-BAB323908AF4}.Release|x64.Build.0 = Release|x64
{D613FB39-5035-4043-91E2-BAB323908AF4}.Release|x86.ActiveCfg = Release|Win32
{D613FB39-5035-4043-91E2-BAB323908AF4}.Release|x86.Build.0 = Release|Win32
+ {FB239623-7D19-4025-BCEA-B43298D4A315}.Debug|ARM.ActiveCfg = Debug|ARM
+ {FB239623-7D19-4025-BCEA-B43298D4A315}.Debug|ARM.Build.0 = Debug|ARM
{FB239623-7D19-4025-BCEA-B43298D4A315}.Debug|ARM64.ActiveCfg = Debug|ARM64
{FB239623-7D19-4025-BCEA-B43298D4A315}.Debug|ARM64.Build.0 = Debug|ARM64
{FB239623-7D19-4025-BCEA-B43298D4A315}.Debug|x64.ActiveCfg = Debug|x64
{FB239623-7D19-4025-BCEA-B43298D4A315}.Debug|x64.Build.0 = Debug|x64
{FB239623-7D19-4025-BCEA-B43298D4A315}.Debug|x86.ActiveCfg = Debug|Win32
{FB239623-7D19-4025-BCEA-B43298D4A315}.Debug|x86.Build.0 = Debug|Win32
+ {FB239623-7D19-4025-BCEA-B43298D4A315}.Release|ARM.ActiveCfg = Release|ARM
+ {FB239623-7D19-4025-BCEA-B43298D4A315}.Release|ARM.Build.0 = Release|ARM
{FB239623-7D19-4025-BCEA-B43298D4A315}.Release|ARM64.ActiveCfg = Release|ARM64
{FB239623-7D19-4025-BCEA-B43298D4A315}.Release|ARM64.Build.0 = Release|ARM64
{FB239623-7D19-4025-BCEA-B43298D4A315}.Release|x64.ActiveCfg = Release|x64
{FB239623-7D19-4025-BCEA-B43298D4A315}.Release|x64.Build.0 = Release|x64
{FB239623-7D19-4025-BCEA-B43298D4A315}.Release|x86.ActiveCfg = Release|Win32
{FB239623-7D19-4025-BCEA-B43298D4A315}.Release|x86.Build.0 = Release|Win32
+ {C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Debug|ARM.ActiveCfg = Debug|ARM
+ {C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Debug|ARM.Build.0 = Debug|ARM
{C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Debug|ARM64.ActiveCfg = Debug|ARM64
{C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Debug|ARM64.Build.0 = Debug|ARM64
{C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Debug|x64.ActiveCfg = Debug|x64
{C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Debug|x64.Build.0 = Debug|x64
{C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Debug|x86.ActiveCfg = Debug|Win32
{C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Debug|x86.Build.0 = Debug|Win32
+ {C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Release|ARM.ActiveCfg = Release|ARM
+ {C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Release|ARM.Build.0 = Release|ARM
{C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Release|ARM64.ActiveCfg = Release|ARM64
{C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Release|ARM64.Build.0 = Release|ARM64
{C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Release|x64.ActiveCfg = Release|x64
{C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Release|x64.Build.0 = Release|x64
{C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Release|x86.ActiveCfg = Release|Win32
{C8B95FCB-9B0B-4E9F-B7D5-643883C192C9}.Release|x86.Build.0 = Release|Win32
+ {559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Debug|ARM.ActiveCfg = Debug|ARM
+ {559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Debug|ARM.Build.0 = Debug|ARM
{559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Debug|ARM64.ActiveCfg = Debug|ARM64
{559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Debug|ARM64.Build.0 = Debug|ARM64
{559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Debug|x64.ActiveCfg = Debug|x64
{559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Debug|x64.Build.0 = Debug|x64
{559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Debug|x86.ActiveCfg = Debug|Win32
{559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Debug|x86.Build.0 = Debug|Win32
+ {559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Release|ARM.ActiveCfg = Release|ARM
+ {559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Release|ARM.Build.0 = Release|ARM
{559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Release|ARM64.ActiveCfg = Release|ARM64
{559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Release|ARM64.Build.0 = Release|ARM64
{559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Release|x64.ActiveCfg = Release|x64
{559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Release|x64.Build.0 = Release|x64
{559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Release|x86.ActiveCfg = Release|Win32
{559A7CF4-DC5F-4D62-BA6B-0C2B025593F8}.Release|x86.Build.0 = Release|Win32
+ {152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Debug|ARM.ActiveCfg = Debug|ARM
+ {152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Debug|ARM.Build.0 = Debug|ARM
{152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Debug|ARM64.ActiveCfg = Debug|ARM64
{152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Debug|ARM64.Build.0 = Debug|ARM64
{152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Debug|x64.ActiveCfg = Debug|x64
{152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Debug|x64.Build.0 = Debug|x64
{152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Debug|x86.ActiveCfg = Debug|Win32
{152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Debug|x86.Build.0 = Debug|Win32
+ {152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Release|ARM.ActiveCfg = Release|ARM
+ {152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Release|ARM.Build.0 = Release|ARM
{152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Release|ARM64.ActiveCfg = Release|ARM64
{152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Release|ARM64.Build.0 = Release|ARM64
{152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Release|x64.ActiveCfg = Release|x64
{152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Release|x64.Build.0 = Release|x64
{152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Release|x86.ActiveCfg = Release|Win32
{152E4C6E-9A9D-4D5A-B38D-4905D173649A}.Release|x86.Build.0 = Release|Win32
+ {A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Debug|ARM.ActiveCfg = Debug|ARM
+ {A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Debug|ARM.Build.0 = Debug|ARM
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Debug|ARM64.ActiveCfg = Debug|ARM64
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Debug|ARM64.Build.0 = Debug|ARM64
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Debug|x64.ActiveCfg = Debug|x64
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Debug|x64.Build.0 = Debug|x64
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Debug|x86.ActiveCfg = Debug|Win32
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Debug|x86.Build.0 = Debug|Win32
+ {A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Release|ARM.ActiveCfg = Release|ARM
+ {A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Release|ARM.Build.0 = Release|ARM
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Release|ARM64.ActiveCfg = Release|ARM64
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Release|ARM64.Build.0 = Release|ARM64
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Release|x64.ActiveCfg = Release|x64
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Release|x64.Build.0 = Release|x64
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Release|x86.ActiveCfg = Release|Win32
{A91B8BF3-28E4-4D9E-8DBA-64B70E4F0270}.Release|x86.Build.0 = Release|Win32
+ {D2961EA1-A8CA-4A62-B760-948403DC8494}.Debug|ARM.ActiveCfg = Debug|ARM
+ {D2961EA1-A8CA-4A62-B760-948403DC8494}.Debug|ARM.Build.0 = Debug|ARM
{D2961EA1-A8CA-4A62-B760-948403DC8494}.Debug|ARM64.ActiveCfg = Debug|ARM64
{D2961EA1-A8CA-4A62-B760-948403DC8494}.Debug|ARM64.Build.0 = Debug|ARM64
{D2961EA1-A8CA-4A62-B760-948403DC8494}.Debug|x64.ActiveCfg = Debug|x64
{D2961EA1-A8CA-4A62-B760-948403DC8494}.Debug|x64.Build.0 = Debug|x64
{D2961EA1-A8CA-4A62-B760-948403DC8494}.Debug|x86.ActiveCfg = Debug|Win32
{D2961EA1-A8CA-4A62-B760-948403DC8494}.Debug|x86.Build.0 = Debug|Win32
+ {D2961EA1-A8CA-4A62-B760-948403DC8494}.Release|ARM.ActiveCfg = Release|ARM
+ {D2961EA1-A8CA-4A62-B760-948403DC8494}.Release|ARM.Build.0 = Release|ARM
{D2961EA1-A8CA-4A62-B760-948403DC8494}.Release|ARM64.ActiveCfg = Release|ARM64
{D2961EA1-A8CA-4A62-B760-948403DC8494}.Release|ARM64.Build.0 = Release|ARM64
{D2961EA1-A8CA-4A62-B760-948403DC8494}.Release|x64.ActiveCfg = Release|x64
{D2961EA1-A8CA-4A62-B760-948403DC8494}.Release|x64.Build.0 = Release|x64
{D2961EA1-A8CA-4A62-B760-948403DC8494}.Release|x86.ActiveCfg = Release|Win32
{D2961EA1-A8CA-4A62-B760-948403DC8494}.Release|x86.Build.0 = Release|Win32
+ {85695954-3800-4558-9857-966E69E9F9EC}.Debug|ARM.ActiveCfg = Debug|ARM
+ {85695954-3800-4558-9857-966E69E9F9EC}.Debug|ARM.Build.0 = Debug|ARM
{85695954-3800-4558-9857-966E69E9F9EC}.Debug|ARM64.ActiveCfg = Debug|ARM64
{85695954-3800-4558-9857-966E69E9F9EC}.Debug|ARM64.Build.0 = Debug|ARM64
{85695954-3800-4558-9857-966E69E9F9EC}.Debug|x64.ActiveCfg = Debug|x64
{85695954-3800-4558-9857-966E69E9F9EC}.Debug|x64.Build.0 = Debug|x64
{85695954-3800-4558-9857-966E69E9F9EC}.Debug|x86.ActiveCfg = Debug|Win32
{85695954-3800-4558-9857-966E69E9F9EC}.Debug|x86.Build.0 = Debug|Win32
+ {85695954-3800-4558-9857-966E69E9F9EC}.Release|ARM.ActiveCfg = Release|ARM
+ {85695954-3800-4558-9857-966E69E9F9EC}.Release|ARM.Build.0 = Release|ARM
{85695954-3800-4558-9857-966E69E9F9EC}.Release|ARM64.ActiveCfg = Release|ARM64
{85695954-3800-4558-9857-966E69E9F9EC}.Release|ARM64.Build.0 = Release|ARM64
{85695954-3800-4558-9857-966E69E9F9EC}.Release|x64.ActiveCfg = Release|x64
{85695954-3800-4558-9857-966E69E9F9EC}.Release|x64.Build.0 = Release|x64
{85695954-3800-4558-9857-966E69E9F9EC}.Release|x86.ActiveCfg = Release|Win32
{85695954-3800-4558-9857-966E69E9F9EC}.Release|x86.Build.0 = Release|Win32
+ {F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Debug|ARM.ActiveCfg = Debug|ARM
+ {F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Debug|ARM.Build.0 = Debug|ARM
{F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Debug|ARM64.ActiveCfg = Debug|ARM64
{F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Debug|ARM64.Build.0 = Debug|ARM64
{F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Debug|x64.ActiveCfg = Debug|x64
{F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Debug|x64.Build.0 = Debug|x64
{F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Debug|x86.ActiveCfg = Debug|Win32
{F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Debug|x86.Build.0 = Debug|Win32
+ {F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Release|ARM.ActiveCfg = Release|ARM
+ {F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Release|ARM.Build.0 = Release|ARM
{F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Release|ARM64.ActiveCfg = Release|ARM64
{F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Release|ARM64.Build.0 = Release|ARM64
{F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Release|x64.ActiveCfg = Release|x64
{F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Release|x64.Build.0 = Release|x64
{F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Release|x86.ActiveCfg = Release|Win32
{F1C915B3-2C64-4992-AFB7-7F035B1A7607}.Release|x86.Build.0 = Release|Win32
+ {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|ARM.ActiveCfg = Debug|ARM
+ {13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|ARM.Build.0 = Debug|ARM
{13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|ARM64.ActiveCfg = Debug|ARM64
{13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|ARM64.Build.0 = Debug|ARM64
{13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|x64.ActiveCfg = Debug|x64
{13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|x64.Build.0 = Debug|x64
{13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|x86.ActiveCfg = Debug|Win32
{13333A6F-6A4A-48CD-865C-0F65135EB018}.Debug|x86.Build.0 = Debug|Win32
+ {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|ARM.ActiveCfg = Release|ARM
+ {13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|ARM.Build.0 = Release|ARM
{13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|ARM64.ActiveCfg = Release|ARM64
{13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|ARM64.Build.0 = Release|ARM64
{13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|x64.ActiveCfg = Release|x64
{13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|x64.Build.0 = Release|x64
{13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|x86.ActiveCfg = Release|Win32
{13333A6F-6A4A-48CD-865C-0F65135EB018}.Release|x86.Build.0 = Release|Win32
+ {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|ARM.ActiveCfg = Debug|ARM
+ {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|ARM.Build.0 = Debug|ARM
{0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|ARM64.ActiveCfg = Debug|ARM64
{0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|ARM64.Build.0 = Debug|ARM64
{0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|x64.ActiveCfg = Debug|x64
{0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|x64.Build.0 = Debug|x64
{0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|x86.ActiveCfg = Debug|Win32
{0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Debug|x86.Build.0 = Debug|Win32
+ {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|ARM.ActiveCfg = Release|ARM
+ {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|ARM.Build.0 = Release|ARM
{0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|ARM64.ActiveCfg = Release|ARM64
{0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|ARM64.Build.0 = Release|ARM64
{0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|x64.ActiveCfg = Release|x64
{0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|x64.Build.0 = Release|x64
{0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|x86.ActiveCfg = Release|Win32
{0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E}.Release|x86.Build.0 = Release|Win32
+ {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|ARM.ActiveCfg = Debug|ARM
+ {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|ARM.Build.0 = Debug|ARM
{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|ARM64.ActiveCfg = Debug|ARM64
{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|ARM64.Build.0 = Debug|ARM64
{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|x64.ActiveCfg = Debug|x64
{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|x64.Build.0 = Debug|x64
{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|x86.ActiveCfg = Debug|Win32
{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Debug|x86.Build.0 = Debug|Win32
+ {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|ARM.ActiveCfg = Release|ARM
+ {0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|ARM.Build.0 = Release|ARM
{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|ARM64.ActiveCfg = Release|ARM64
{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|ARM64.Build.0 = Release|ARM64
{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|x64.ActiveCfg = Release|x64
{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|x64.Build.0 = Release|x64
{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|x86.ActiveCfg = Release|Win32
{0E0ACA62-A92F-44CF-BD41-AEB541946DF8}.Release|x86.Build.0 = Release|Win32
+ {F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Debug|ARM.ActiveCfg = Debug|ARM
+ {F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Debug|ARM.Build.0 = Debug|ARM
{F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Debug|ARM64.ActiveCfg = Debug|ARM64
{F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Debug|ARM64.Build.0 = Debug|ARM64
{F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Debug|x64.ActiveCfg = Debug|x64
{F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Debug|x64.Build.0 = Debug|x64
{F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Debug|x86.ActiveCfg = Debug|Win32
{F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Debug|x86.Build.0 = Debug|Win32
+ {F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Release|ARM.ActiveCfg = Release|ARM
+ {F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Release|ARM.Build.0 = Release|ARM
{F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Release|ARM64.ActiveCfg = Release|ARM64
{F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Release|ARM64.Build.0 = Release|ARM64
{F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Release|x64.ActiveCfg = Release|x64
{F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Release|x64.Build.0 = Release|x64
{F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Release|x86.ActiveCfg = Release|Win32
{F8A1FE5A-DC8A-49DF-B882-DEF76E38E484}.Release|x86.Build.0 = Release|Win32
+ {B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Debug|ARM.ActiveCfg = Debug|ARM
+ {B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Debug|ARM.Build.0 = Debug|ARM
{B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Debug|ARM64.ActiveCfg = Debug|ARM64
{B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Debug|ARM64.Build.0 = Debug|ARM64
{B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Debug|x64.ActiveCfg = Debug|x64
{B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Debug|x64.Build.0 = Debug|x64
{B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Debug|x86.ActiveCfg = Debug|Win32
{B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Debug|x86.Build.0 = Debug|Win32
+ {B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Release|ARM.ActiveCfg = Release|ARM
+ {B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Release|ARM.Build.0 = Release|ARM
{B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Release|ARM64.ActiveCfg = Release|ARM64
{B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Release|ARM64.Build.0 = Release|ARM64
{B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Release|x64.ActiveCfg = Release|x64
{B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Release|x64.Build.0 = Release|x64
{B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Release|x86.ActiveCfg = Release|Win32
{B68C61C6-4699-41E6-A158-EA1BE029E7A0}.Release|x86.Build.0 = Release|Win32
+ {303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Debug|ARM.ActiveCfg = Debug|ARM
+ {303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Debug|ARM.Build.0 = Debug|ARM
{303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Debug|ARM64.ActiveCfg = Debug|ARM64
{303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Debug|ARM64.Build.0 = Debug|ARM64
{303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Debug|x64.ActiveCfg = Debug|x64
{303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Debug|x64.Build.0 = Debug|x64
{303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Debug|x86.ActiveCfg = Debug|Win32
{303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Debug|x86.Build.0 = Debug|Win32
+ {303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Release|ARM.ActiveCfg = Release|ARM
+ {303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Release|ARM.Build.0 = Release|ARM
{303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Release|ARM64.ActiveCfg = Release|ARM64
{303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Release|ARM64.Build.0 = Release|ARM64
{303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Release|x64.ActiveCfg = Release|x64
{303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Release|x64.Build.0 = Release|x64
{303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Release|x86.ActiveCfg = Release|Win32
{303CC0FE-7D66-4F9F-B7A1-0AF7F9359074}.Release|x86.Build.0 = Release|Win32
+ {A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Debug|ARM.ActiveCfg = Debug|ARM
+ {A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Debug|ARM.Build.0 = Debug|ARM
{A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Debug|ARM64.ActiveCfg = Debug|ARM64
{A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Debug|ARM64.Build.0 = Debug|ARM64
{A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Debug|x64.ActiveCfg = Debug|x64
{A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Debug|x64.Build.0 = Debug|x64
{A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Debug|x86.ActiveCfg = Debug|Win32
{A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Debug|x86.Build.0 = Debug|Win32
+ {A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Release|ARM.ActiveCfg = Release|ARM
+ {A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Release|ARM.Build.0 = Release|ARM
{A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Release|ARM64.ActiveCfg = Release|ARM64
{A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Release|ARM64.Build.0 = Release|ARM64
{A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Release|x64.ActiveCfg = Release|x64
{A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Release|x64.Build.0 = Release|x64
{A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Release|x86.ActiveCfg = Release|Win32
{A63B3AD1-AB7B-461E-9FFF-2447F5BCD459}.Release|x86.Build.0 = Release|Win32
+ {E893622C-47DE-4F83-B422-0A26711590A4}.Debug|ARM.ActiveCfg = Debug|ARM
+ {E893622C-47DE-4F83-B422-0A26711590A4}.Debug|ARM.Build.0 = Debug|ARM
{E893622C-47DE-4F83-B422-0A26711590A4}.Debug|ARM64.ActiveCfg = Debug|ARM64
{E893622C-47DE-4F83-B422-0A26711590A4}.Debug|ARM64.Build.0 = Debug|ARM64
{E893622C-47DE-4F83-B422-0A26711590A4}.Debug|x64.ActiveCfg = Debug|x64
{E893622C-47DE-4F83-B422-0A26711590A4}.Debug|x64.Build.0 = Debug|x64
{E893622C-47DE-4F83-B422-0A26711590A4}.Debug|x86.ActiveCfg = Debug|Win32
{E893622C-47DE-4F83-B422-0A26711590A4}.Debug|x86.Build.0 = Debug|Win32
+ {E893622C-47DE-4F83-B422-0A26711590A4}.Release|ARM.ActiveCfg = Release|ARM
+ {E893622C-47DE-4F83-B422-0A26711590A4}.Release|ARM.Build.0 = Release|ARM
{E893622C-47DE-4F83-B422-0A26711590A4}.Release|ARM64.ActiveCfg = Release|ARM64
{E893622C-47DE-4F83-B422-0A26711590A4}.Release|ARM64.Build.0 = Release|ARM64
{E893622C-47DE-4F83-B422-0A26711590A4}.Release|x64.ActiveCfg = Release|x64
{E893622C-47DE-4F83-B422-0A26711590A4}.Release|x64.Build.0 = Release|x64
{E893622C-47DE-4F83-B422-0A26711590A4}.Release|x86.ActiveCfg = Release|Win32
{E893622C-47DE-4F83-B422-0A26711590A4}.Release|x86.Build.0 = Release|Win32
+ {D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Debug|ARM.ActiveCfg = Debug|ARM
+ {D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Debug|ARM.Build.0 = Debug|ARM
{D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Debug|ARM64.ActiveCfg = Debug|ARM64
{D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Debug|ARM64.Build.0 = Debug|ARM64
{D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Debug|x64.ActiveCfg = Debug|x64
{D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Debug|x64.Build.0 = Debug|x64
{D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Debug|x86.ActiveCfg = Debug|Win32
{D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Debug|x86.Build.0 = Debug|Win32
+ {D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Release|ARM.ActiveCfg = Release|ARM
+ {D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Release|ARM.Build.0 = Release|ARM
{D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Release|ARM64.ActiveCfg = Release|ARM64
{D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Release|ARM64.Build.0 = Release|ARM64
{D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Release|x64.ActiveCfg = Release|x64
{D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Release|x64.Build.0 = Release|x64
{D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Release|x86.ActiveCfg = Release|Win32
{D48A96C2-8512-4CC3-B6E4-7CFF07ED8ED3}.Release|x86.Build.0 = Release|Win32
+ {08C40663-B6A3-481E-8755-AE32BAD99501}.Debug|ARM.ActiveCfg = Debug|ARM
+ {08C40663-B6A3-481E-8755-AE32BAD99501}.Debug|ARM.Build.0 = Debug|ARM
{08C40663-B6A3-481E-8755-AE32BAD99501}.Debug|ARM64.ActiveCfg = Debug|ARM64
{08C40663-B6A3-481E-8755-AE32BAD99501}.Debug|ARM64.Build.0 = Debug|ARM64
{08C40663-B6A3-481E-8755-AE32BAD99501}.Debug|x64.ActiveCfg = Debug|x64
{08C40663-B6A3-481E-8755-AE32BAD99501}.Debug|x64.Build.0 = Debug|x64
{08C40663-B6A3-481E-8755-AE32BAD99501}.Debug|x86.ActiveCfg = Debug|Win32
{08C40663-B6A3-481E-8755-AE32BAD99501}.Debug|x86.Build.0 = Debug|Win32
+ {08C40663-B6A3-481E-8755-AE32BAD99501}.Release|ARM.ActiveCfg = Release|ARM
+ {08C40663-B6A3-481E-8755-AE32BAD99501}.Release|ARM.Build.0 = Release|ARM
{08C40663-B6A3-481E-8755-AE32BAD99501}.Release|ARM64.ActiveCfg = Release|ARM64
{08C40663-B6A3-481E-8755-AE32BAD99501}.Release|ARM64.Build.0 = Release|ARM64
{08C40663-B6A3-481E-8755-AE32BAD99501}.Release|x64.ActiveCfg = Release|x64
{08C40663-B6A3-481E-8755-AE32BAD99501}.Release|x64.Build.0 = Release|x64
{08C40663-B6A3-481E-8755-AE32BAD99501}.Release|x86.ActiveCfg = Release|Win32
{08C40663-B6A3-481E-8755-AE32BAD99501}.Release|x86.Build.0 = Release|Win32
+ {5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Debug|ARM.ActiveCfg = Debug|ARM
+ {5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Debug|ARM.Build.0 = Debug|ARM
{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Debug|ARM64.ActiveCfg = Debug|ARM64
{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Debug|ARM64.Build.0 = Debug|ARM64
{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Debug|x64.ActiveCfg = Debug|x64
{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Debug|x64.Build.0 = Debug|x64
{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Debug|x86.ActiveCfg = Debug|Win32
{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Debug|x86.Build.0 = Debug|Win32
+ {5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Release|ARM.ActiveCfg = Release|ARM
+ {5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Release|ARM.Build.0 = Release|ARM
{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Release|ARM64.ActiveCfg = Release|ARM64
{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Release|ARM64.Build.0 = Release|ARM64
{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Release|x64.ActiveCfg = Release|x64
{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Release|x64.Build.0 = Release|x64
{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Release|x86.ActiveCfg = Release|Win32
{5FF6CD6C-515A-4D55-97B6-62AD9BCB77EA}.Release|x86.Build.0 = Release|Win32
+ {D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Debug|ARM.ActiveCfg = Debug|ARM
+ {D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Debug|ARM.Build.0 = Debug|ARM
{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Debug|ARM64.ActiveCfg = Debug|ARM64
{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Debug|ARM64.Build.0 = Debug|ARM64
{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Debug|x64.ActiveCfg = Debug|x64
{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Debug|x64.Build.0 = Debug|x64
{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Debug|x86.ActiveCfg = Debug|Win32
{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Debug|x86.Build.0 = Debug|Win32
+ {D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Release|ARM.ActiveCfg = Release|ARM
+ {D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Release|ARM.Build.0 = Release|ARM
{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Release|ARM64.ActiveCfg = Release|ARM64
{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Release|ARM64.Build.0 = Release|ARM64
{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Release|x64.ActiveCfg = Release|x64
diff --git a/cppwinrt/cppwinrt.vcxproj b/cppwinrt/cppwinrt.vcxproj
index b8beed890..a997dd876 100644
--- a/cppwinrt/cppwinrt.vcxproj
+++ b/cppwinrt/cppwinrt.vcxproj
@@ -2,6 +2,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -10,6 +14,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -124,6 +132,10 @@
Application
true
+
+ Application
+ true
+
Application
true
@@ -133,6 +145,11 @@
false
true
+
+ Application
+ false
+ true
+
Application
false
@@ -155,12 +172,18 @@
+
+
+
+
+
+
@@ -190,6 +213,23 @@
+
+
+ Disabled
+ ..\inc;$(OutputPath);$(WinMDPackageDir);
+ MultiThreadedDebug
+
+
+ Console
+
+
+ $(OutputPath)prebuild.exe ..\strings $(OutputPath)
+
+
+
+
+
+
Disabled
@@ -253,6 +293,29 @@
+
+
+ MaxSpeed
+ true
+ true
+ ..\inc;$(OutputPath);$(WinMDPackageDir);
+ MultiThreaded
+ Guard
+
+
+ Console
+ true
+ true
+ /DEBUGTYPE:CV,FIXUP %(AdditionalOptions)
+
+
+ $(OutputPath)prebuild.exe ..\strings $(OutputPath)
+
+
+
+
+
+
MaxSpeed
diff --git a/fast_fwd/arm/thunks.asm b/fast_fwd/arm/thunks.asm
new file mode 100644
index 000000000..9010908b6
--- /dev/null
+++ b/fast_fwd/arm/thunks.asm
@@ -0,0 +1,58 @@
+; ARM fast forwarder thunk implementations
+; Calling convention: https://docs.microsoft.com/en-us/cpp/build/overview-of-arm-abi-conventions
+
+#include "ksarm.h"
+
+ IMPORT __guard_check_icall_fptr
+
+ TEXTAREA
+
+ CFG_ALIGN
+ NESTED_ENTRY InvokeForwarder
+
+ ; Save enregistered args and return address
+ PROLOG_PUSH {r0-r4, lr}
+
+ ; Replace forwarder abi with owner abi
+ ldr r1, [r0, #4]
+ str r1, [sp]
+
+ ; Add offset and index (on stack)
+ ldr r2, [sp, #24]
+ ldr r3, [r0, #8]
+ add r2, r2, r3
+
+ ; Get method address from owner abi vtable
+ ldr r0, [r1]
+ ldr r4, [r0, r2, lsl #2]
+ mov r0, r4
+
+ ; Verify indirect call target
+ mov32 r12, __guard_check_icall_fptr
+ ldr r12, [r12]
+ blx r12
+
+ ; Restore method address, return address, and args
+ mov r12, r4
+ EPILOG_POP {r0-r4, lr}
+ EPILOG_NOP add sp, #4
+
+ ; Jump to method
+ EPILOG_NOP bx r12
+
+ NESTED_END InvokeForwarder
+
+ ; Define thunks
+ MACRO
+ WINRT_FF_THUNK $i
+ LEAF_ENTRY winrt_ff_thunk$i
+ ; Note: no scratch registers available (r12/IP is used by CFG), must use stack
+ mov r12, $i
+ push r12
+ ldr pc, =InvokeForwarder
+ LEAF_END winrt_ff_thunk$i
+ MEND
+
+#include "thunks.inc"
+
+ END
\ No newline at end of file
diff --git a/fast_fwd/fast_fwd.vcxproj b/fast_fwd/fast_fwd.vcxproj
index b9452d149..6d7a42d77 100644
--- a/fast_fwd/fast_fwd.vcxproj
+++ b/fast_fwd/fast_fwd.vcxproj
@@ -17,6 +17,14 @@
Release
x64
+
+ Debug
+ ARM
+
+
+ Release
+ ARM
+
Debug
ARM64
@@ -71,10 +79,16 @@
- true
+ true
false
!$(Platform_Arm)
+
+ cppwinrt_fast_forwarder
+
+
+ cppwinrt_fast_forwarder
+
cppwinrt_fast_forwarder
diff --git a/nuget/Microsoft.Windows.CppWinRT.nuspec b/nuget/Microsoft.Windows.CppWinRT.nuspec
index 52151fc08..5f254ccb2 100644
--- a/nuget/Microsoft.Windows.CppWinRT.nuspec
+++ b/nuget/Microsoft.Windows.CppWinRT.nuspec
@@ -21,6 +21,7 @@
+
diff --git a/prebuild/prebuild.vcxproj b/prebuild/prebuild.vcxproj
index 9fad91fd8..0f6ecf5c3 100644
--- a/prebuild/prebuild.vcxproj
+++ b/prebuild/prebuild.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -36,6 +44,10 @@
Application
true
+
+ Application
+ true
+
Application
true
@@ -45,6 +57,11 @@
false
true
+
+ Application
+ false
+ true
+
Application
false
@@ -67,12 +84,18 @@
+
+
+
+
+
+
@@ -95,6 +118,16 @@
Console
+
+
+ Disabled
+ ..\cppwinrt
+ MultiThreadedDebug
+
+
+ Console
+
+
Disabled
@@ -136,6 +169,20 @@
true
+
+
+ MaxSpeed
+ true
+ true
+ ..\cppwinrt
+ MultiThreaded
+
+
+ Console
+ true
+ true
+
+
MaxSpeed
diff --git a/prepare_versionless_diffs.cmd b/prepare_versionless_diffs.cmd
index 05cb6dd0b..468645657 100644
--- a/prepare_versionless_diffs.cmd
+++ b/prepare_versionless_diffs.cmd
@@ -12,6 +12,7 @@ if /I "%target_platform%" equ "all" (
)
call %0 x86 !target_configuration!
call %0 x64 !target_configuration!
+ call %0 arm !target_configuration!
call %0 arm64 !target_configuration!
goto :eof
)
diff --git a/scratch/scratch.vcxproj b/scratch/scratch.vcxproj
index 84f6ce3d8..551902548 100644
--- a/scratch/scratch.vcxproj
+++ b/scratch/scratch.vcxproj
@@ -2,6 +2,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -10,6 +14,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
diff --git a/strings/base_activation.h b/strings/base_activation.h
index c657c692d..639bc50f5 100644
--- a/strings/base_activation.h
+++ b/strings/base_activation.h
@@ -119,8 +119,10 @@ WINRT_EXPORT namespace winrt
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
#endif
-#if defined(__GNUC__) && defined(__aarch64__)
+#if defined(__GNUC__) && (defined(__arm__) || defined(__aarch64__))
#define WINRT_IMPL_INTERLOCKED_READ_MEMORY_BARRIER __asm__ __volatile__ ("dmb ish");
+#elif defined _M_ARM
+#define WINRT_IMPL_INTERLOCKED_READ_MEMORY_BARRIER (__dmb(_ARM_BARRIER_ISH));
#elif defined _M_ARM64
#define WINRT_IMPL_INTERLOCKED_READ_MEMORY_BARRIER (__dmb(_ARM64_BARRIER_ISH));
#endif
@@ -133,7 +135,7 @@ WINRT_EXPORT namespace winrt::impl
std::int32_t const result = *target;
_ReadWriteBarrier();
return result;
-#elif defined _M_ARM64
+#elif defined _M_ARM || defined _M_ARM64
#if defined(__GNUC__)
std::int32_t const result = *target;
#else
@@ -305,7 +307,7 @@ WINRT_EXPORT namespace winrt::impl
static_assert(std::is_standard_layout_v);
-#if !defined _M_IX86 && !defined _M_X64 && !defined _M_ARM64
+#if !defined _M_IX86 && !defined _M_X64 && !defined _M_ARM && !defined _M_ARM64
#error Unsupported architecture: verify that zero-initialization of SLIST_HEADER is still safe
#endif
diff --git a/test/nuget/ConsoleApplication1/ConsoleApplication1.vcxproj b/test/nuget/ConsoleApplication1/ConsoleApplication1.vcxproj
index 38f3ee4cc..4256301ba 100644
--- a/test/nuget/ConsoleApplication1/ConsoleApplication1.vcxproj
+++ b/test/nuget/ConsoleApplication1/ConsoleApplication1.vcxproj
@@ -13,18 +13,10 @@
-
- Debug
- ARM64
-
Debug
Win32
-
- Release
- ARM64
-
Release
Win32
diff --git a/test/nuget/Directory.Build.props b/test/nuget/Directory.Build.props
index a54887b1e..9f410480b 100644
--- a/test/nuget/Directory.Build.props
+++ b/test/nuget/Directory.Build.props
@@ -23,7 +23,7 @@
$(IntDir)Generated Files\
high
$(Platform)
- x86
+ x86
$(SolutionDir)..\..\_build\$(CppWinRTPlatform)\$(Configuration)\
diff --git a/test/nuget/NuGetTest.sln b/test/nuget/NuGetTest.sln
index c836b2551..017be8147 100644
--- a/test/nuget/NuGetTest.sln
+++ b/test/nuget/NuGetTest.sln
@@ -64,230 +64,270 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestModuleConsumerApp", "Te
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|ARM = Debug|ARM
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
+ Release|ARM = Release|ARM
Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|ARM64.Build.0 = Debug|ARM64
- {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|ARM64.Deploy.0 = Debug|ARM64
+ {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|ARM.ActiveCfg = Debug|ARM
+ {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|ARM.Build.0 = Debug|ARM
+ {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|ARM.Deploy.0 = Debug|ARM
+ {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|ARM64.ActiveCfg = Debug|Win32
{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|x64.ActiveCfg = Debug|x64
{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|x64.Build.0 = Debug|x64
{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|x64.Deploy.0 = Debug|x64
{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|x86.ActiveCfg = Debug|Win32
{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|x86.Build.0 = Debug|Win32
{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Debug|x86.Deploy.0 = Debug|Win32
- {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|ARM64.ActiveCfg = Release|ARM64
- {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|ARM64.Build.0 = Release|ARM64
- {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|ARM64.Deploy.0 = Release|ARM64
+ {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|ARM.ActiveCfg = Release|ARM
+ {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|ARM.Build.0 = Release|ARM
+ {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|ARM.Deploy.0 = Release|ARM
+ {A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|ARM64.ActiveCfg = Release|Win32
{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|x64.ActiveCfg = Release|x64
{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|x64.Build.0 = Release|x64
{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|x64.Deploy.0 = Release|x64
{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|x86.ActiveCfg = Release|Win32
{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|x86.Build.0 = Release|Win32
{A8BDBDE9-1A3D-4F5E-8668-9F6E84790D44}.Release|x86.Deploy.0 = Release|Win32
- {E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Debug|ARM64.Build.0 = Debug|ARM64
+ {E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Debug|ARM.ActiveCfg = Debug|ARM
+ {E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Debug|ARM.Build.0 = Debug|ARM
+ {E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Debug|ARM64.ActiveCfg = Debug|Win32
{E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Debug|x64.ActiveCfg = Debug|x64
{E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Debug|x64.Build.0 = Debug|x64
{E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Debug|x86.ActiveCfg = Debug|Win32
{E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Debug|x86.Build.0 = Debug|Win32
- {E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Release|ARM64.ActiveCfg = Release|ARM64
- {E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Release|ARM64.Build.0 = Release|ARM64
+ {E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Release|ARM.ActiveCfg = Release|ARM
+ {E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Release|ARM.Build.0 = Release|ARM
+ {E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Release|ARM64.ActiveCfg = Release|Win32
{E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Release|x64.ActiveCfg = Release|x64
{E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Release|x64.Build.0 = Release|x64
{E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Release|x86.ActiveCfg = Release|Win32
{E0EBBE54-C046-4611-B048-3CE893B1DF8A}.Release|x86.Build.0 = Release|Win32
- {4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Debug|ARM64.Build.0 = Debug|ARM64
+ {4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Debug|ARM.ActiveCfg = Debug|ARM
+ {4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Debug|ARM.Build.0 = Debug|ARM
+ {4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Debug|ARM64.ActiveCfg = Debug|Win32
{4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Debug|x64.ActiveCfg = Debug|x64
{4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Debug|x64.Build.0 = Debug|x64
{4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Debug|x86.ActiveCfg = Debug|Win32
{4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Debug|x86.Build.0 = Debug|Win32
- {4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Release|ARM64.ActiveCfg = Release|ARM64
- {4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Release|ARM64.Build.0 = Release|ARM64
+ {4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Release|ARM.ActiveCfg = Release|ARM
+ {4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Release|ARM.Build.0 = Release|ARM
+ {4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Release|ARM64.ActiveCfg = Release|Win32
{4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Release|x64.ActiveCfg = Release|x64
{4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Release|x64.Build.0 = Release|x64
{4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Release|x86.ActiveCfg = Release|Win32
{4BBB2DE7-4596-4DA6-A923-E65E838363B5}.Release|x86.Build.0 = Release|Win32
- {2158F418-CA97-4599-8103-EFC133850BAA}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {2158F418-CA97-4599-8103-EFC133850BAA}.Debug|ARM64.Build.0 = Debug|ARM64
+ {2158F418-CA97-4599-8103-EFC133850BAA}.Debug|ARM.ActiveCfg = Debug|Win32
+ {2158F418-CA97-4599-8103-EFC133850BAA}.Debug|ARM64.ActiveCfg = Debug|Win32
{2158F418-CA97-4599-8103-EFC133850BAA}.Debug|x64.ActiveCfg = Debug|x64
{2158F418-CA97-4599-8103-EFC133850BAA}.Debug|x64.Build.0 = Debug|x64
{2158F418-CA97-4599-8103-EFC133850BAA}.Debug|x86.ActiveCfg = Debug|Win32
{2158F418-CA97-4599-8103-EFC133850BAA}.Debug|x86.Build.0 = Debug|Win32
- {2158F418-CA97-4599-8103-EFC133850BAA}.Release|ARM64.ActiveCfg = Release|ARM64
- {2158F418-CA97-4599-8103-EFC133850BAA}.Release|ARM64.Build.0 = Release|ARM64
+ {2158F418-CA97-4599-8103-EFC133850BAA}.Release|ARM.ActiveCfg = Release|Win32
+ {2158F418-CA97-4599-8103-EFC133850BAA}.Release|ARM64.ActiveCfg = Release|Win32
{2158F418-CA97-4599-8103-EFC133850BAA}.Release|x64.ActiveCfg = Release|x64
{2158F418-CA97-4599-8103-EFC133850BAA}.Release|x64.Build.0 = Release|x64
{2158F418-CA97-4599-8103-EFC133850BAA}.Release|x86.ActiveCfg = Release|Win32
{2158F418-CA97-4599-8103-EFC133850BAA}.Release|x86.Build.0 = Release|Win32
- {0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Debug|ARM64.Build.0 = Debug|ARM64
+ {0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Debug|ARM.ActiveCfg = Debug|Win32
+ {0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Debug|ARM64.ActiveCfg = Debug|Win32
{0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Debug|x64.ActiveCfg = Debug|x64
{0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Debug|x64.Build.0 = Debug|x64
{0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Debug|x86.ActiveCfg = Debug|Win32
{0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Debug|x86.Build.0 = Debug|Win32
- {0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Release|ARM64.ActiveCfg = Release|ARM64
- {0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Release|ARM64.Build.0 = Release|ARM64
+ {0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Release|ARM.ActiveCfg = Release|Win32
+ {0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Release|ARM64.ActiveCfg = Release|Win32
{0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Release|x64.ActiveCfg = Release|x64
{0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Release|x64.Build.0 = Release|x64
{0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Release|x86.ActiveCfg = Release|Win32
{0011F69F-2363-4DFD-B02A-1E7E909BCE89}.Release|x86.Build.0 = Release|Win32
- {C2820B98-A31F-46D0-A96D-B8F24392B049}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {C2820B98-A31F-46D0-A96D-B8F24392B049}.Debug|ARM64.Build.0 = Debug|ARM64
+ {C2820B98-A31F-46D0-A96D-B8F24392B049}.Debug|ARM.ActiveCfg = Debug|ARM
+ {C2820B98-A31F-46D0-A96D-B8F24392B049}.Debug|ARM.Build.0 = Debug|ARM
+ {C2820B98-A31F-46D0-A96D-B8F24392B049}.Debug|ARM64.ActiveCfg = Debug|Win32
{C2820B98-A31F-46D0-A96D-B8F24392B049}.Debug|x64.ActiveCfg = Debug|x64
{C2820B98-A31F-46D0-A96D-B8F24392B049}.Debug|x64.Build.0 = Debug|x64
{C2820B98-A31F-46D0-A96D-B8F24392B049}.Debug|x86.ActiveCfg = Debug|Win32
{C2820B98-A31F-46D0-A96D-B8F24392B049}.Debug|x86.Build.0 = Debug|Win32
- {C2820B98-A31F-46D0-A96D-B8F24392B049}.Release|ARM64.ActiveCfg = Release|ARM64
- {C2820B98-A31F-46D0-A96D-B8F24392B049}.Release|ARM64.Build.0 = Release|ARM64
+ {C2820B98-A31F-46D0-A96D-B8F24392B049}.Release|ARM.ActiveCfg = Release|ARM
+ {C2820B98-A31F-46D0-A96D-B8F24392B049}.Release|ARM.Build.0 = Release|ARM
+ {C2820B98-A31F-46D0-A96D-B8F24392B049}.Release|ARM64.ActiveCfg = Release|Win32
{C2820B98-A31F-46D0-A96D-B8F24392B049}.Release|x64.ActiveCfg = Release|x64
{C2820B98-A31F-46D0-A96D-B8F24392B049}.Release|x64.Build.0 = Release|x64
{C2820B98-A31F-46D0-A96D-B8F24392B049}.Release|x86.ActiveCfg = Release|Win32
{C2820B98-A31F-46D0-A96D-B8F24392B049}.Release|x86.Build.0 = Release|Win32
- {1350E626-038B-4BDF-8E1D-C751EF33D90F}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {1350E626-038B-4BDF-8E1D-C751EF33D90F}.Debug|ARM64.Build.0 = Debug|ARM64
+ {1350E626-038B-4BDF-8E1D-C751EF33D90F}.Debug|ARM.ActiveCfg = Debug|ARM
+ {1350E626-038B-4BDF-8E1D-C751EF33D90F}.Debug|ARM.Build.0 = Debug|ARM
+ {1350E626-038B-4BDF-8E1D-C751EF33D90F}.Debug|ARM64.ActiveCfg = Debug|Win32
{1350E626-038B-4BDF-8E1D-C751EF33D90F}.Debug|x64.ActiveCfg = Debug|x64
{1350E626-038B-4BDF-8E1D-C751EF33D90F}.Debug|x64.Build.0 = Debug|x64
{1350E626-038B-4BDF-8E1D-C751EF33D90F}.Debug|x86.ActiveCfg = Debug|Win32
{1350E626-038B-4BDF-8E1D-C751EF33D90F}.Debug|x86.Build.0 = Debug|Win32
- {1350E626-038B-4BDF-8E1D-C751EF33D90F}.Release|ARM64.ActiveCfg = Release|ARM64
- {1350E626-038B-4BDF-8E1D-C751EF33D90F}.Release|ARM64.Build.0 = Release|ARM64
+ {1350E626-038B-4BDF-8E1D-C751EF33D90F}.Release|ARM.ActiveCfg = Release|ARM
+ {1350E626-038B-4BDF-8E1D-C751EF33D90F}.Release|ARM.Build.0 = Release|ARM
+ {1350E626-038B-4BDF-8E1D-C751EF33D90F}.Release|ARM64.ActiveCfg = Release|Win32
{1350E626-038B-4BDF-8E1D-C751EF33D90F}.Release|x64.ActiveCfg = Release|x64
{1350E626-038B-4BDF-8E1D-C751EF33D90F}.Release|x64.Build.0 = Release|x64
{1350E626-038B-4BDF-8E1D-C751EF33D90F}.Release|x86.ActiveCfg = Release|Win32
{1350E626-038B-4BDF-8E1D-C751EF33D90F}.Release|x86.Build.0 = Release|Win32
+ {ADC53200-B456-4386-9851-5BF69DFB8928}.Debug|ARM.ActiveCfg = Debug|ARM
+ {ADC53200-B456-4386-9851-5BF69DFB8928}.Debug|ARM.Build.0 = Debug|ARM
{ADC53200-B456-4386-9851-5BF69DFB8928}.Debug|ARM64.ActiveCfg = Debug|ARM64
{ADC53200-B456-4386-9851-5BF69DFB8928}.Debug|ARM64.Build.0 = Debug|ARM64
{ADC53200-B456-4386-9851-5BF69DFB8928}.Debug|x64.ActiveCfg = Debug|x64
{ADC53200-B456-4386-9851-5BF69DFB8928}.Debug|x64.Build.0 = Debug|x64
{ADC53200-B456-4386-9851-5BF69DFB8928}.Debug|x86.ActiveCfg = Debug|Win32
{ADC53200-B456-4386-9851-5BF69DFB8928}.Debug|x86.Build.0 = Debug|Win32
+ {ADC53200-B456-4386-9851-5BF69DFB8928}.Release|ARM.ActiveCfg = Release|ARM
+ {ADC53200-B456-4386-9851-5BF69DFB8928}.Release|ARM.Build.0 = Release|ARM
{ADC53200-B456-4386-9851-5BF69DFB8928}.Release|ARM64.ActiveCfg = Release|ARM64
{ADC53200-B456-4386-9851-5BF69DFB8928}.Release|ARM64.Build.0 = Release|ARM64
{ADC53200-B456-4386-9851-5BF69DFB8928}.Release|x64.ActiveCfg = Release|x64
{ADC53200-B456-4386-9851-5BF69DFB8928}.Release|x64.Build.0 = Release|x64
{ADC53200-B456-4386-9851-5BF69DFB8928}.Release|x86.ActiveCfg = Release|Win32
{ADC53200-B456-4386-9851-5BF69DFB8928}.Release|x86.Build.0 = Release|Win32
- {432068A4-B206-4468-9254-446CCEB15A2C}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {432068A4-B206-4468-9254-446CCEB15A2C}.Debug|ARM64.Build.0 = Debug|ARM64
+ {432068A4-B206-4468-9254-446CCEB15A2C}.Debug|ARM.ActiveCfg = Debug|ARM
+ {432068A4-B206-4468-9254-446CCEB15A2C}.Debug|ARM.Build.0 = Debug|ARM
+ {432068A4-B206-4468-9254-446CCEB15A2C}.Debug|ARM64.ActiveCfg = Debug|Win32
{432068A4-B206-4468-9254-446CCEB15A2C}.Debug|x64.ActiveCfg = Debug|x64
{432068A4-B206-4468-9254-446CCEB15A2C}.Debug|x64.Build.0 = Debug|x64
{432068A4-B206-4468-9254-446CCEB15A2C}.Debug|x86.ActiveCfg = Debug|Win32
{432068A4-B206-4468-9254-446CCEB15A2C}.Debug|x86.Build.0 = Debug|Win32
- {432068A4-B206-4468-9254-446CCEB15A2C}.Release|ARM64.ActiveCfg = Release|ARM64
- {432068A4-B206-4468-9254-446CCEB15A2C}.Release|ARM64.Build.0 = Release|ARM64
+ {432068A4-B206-4468-9254-446CCEB15A2C}.Release|ARM.ActiveCfg = Release|ARM
+ {432068A4-B206-4468-9254-446CCEB15A2C}.Release|ARM.Build.0 = Release|ARM
+ {432068A4-B206-4468-9254-446CCEB15A2C}.Release|ARM64.ActiveCfg = Release|Win32
{432068A4-B206-4468-9254-446CCEB15A2C}.Release|x64.ActiveCfg = Release|x64
{432068A4-B206-4468-9254-446CCEB15A2C}.Release|x64.Build.0 = Release|x64
{432068A4-B206-4468-9254-446CCEB15A2C}.Release|x86.ActiveCfg = Release|Win32
{432068A4-B206-4468-9254-446CCEB15A2C}.Release|x86.Build.0 = Release|Win32
- {8456C55F-BF01-4798-B79B-7388681C398F}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {8456C55F-BF01-4798-B79B-7388681C398F}.Debug|ARM64.Build.0 = Debug|ARM64
+ {8456C55F-BF01-4798-B79B-7388681C398F}.Debug|ARM.ActiveCfg = Debug|ARM
+ {8456C55F-BF01-4798-B79B-7388681C398F}.Debug|ARM.Build.0 = Debug|ARM
+ {8456C55F-BF01-4798-B79B-7388681C398F}.Debug|ARM64.ActiveCfg = Debug|Win32
{8456C55F-BF01-4798-B79B-7388681C398F}.Debug|x64.ActiveCfg = Debug|x64
{8456C55F-BF01-4798-B79B-7388681C398F}.Debug|x64.Build.0 = Debug|x64
{8456C55F-BF01-4798-B79B-7388681C398F}.Debug|x86.ActiveCfg = Debug|Win32
{8456C55F-BF01-4798-B79B-7388681C398F}.Debug|x86.Build.0 = Debug|Win32
- {8456C55F-BF01-4798-B79B-7388681C398F}.Release|ARM64.ActiveCfg = Release|ARM64
- {8456C55F-BF01-4798-B79B-7388681C398F}.Release|ARM64.Build.0 = Release|ARM64
+ {8456C55F-BF01-4798-B79B-7388681C398F}.Release|ARM.ActiveCfg = Release|ARM
+ {8456C55F-BF01-4798-B79B-7388681C398F}.Release|ARM.Build.0 = Release|ARM
+ {8456C55F-BF01-4798-B79B-7388681C398F}.Release|ARM64.ActiveCfg = Release|Win32
{8456C55F-BF01-4798-B79B-7388681C398F}.Release|x64.ActiveCfg = Release|x64
{8456C55F-BF01-4798-B79B-7388681C398F}.Release|x64.Build.0 = Release|x64
{8456C55F-BF01-4798-B79B-7388681C398F}.Release|x86.ActiveCfg = Release|Win32
{8456C55F-BF01-4798-B79B-7388681C398F}.Release|x86.Build.0 = Release|Win32
- {DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Debug|ARM64.Build.0 = Debug|ARM64
+ {DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Debug|ARM.ActiveCfg = Debug|ARM
+ {DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Debug|ARM.Build.0 = Debug|ARM
+ {DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Debug|ARM64.ActiveCfg = Debug|Win32
{DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Debug|x64.ActiveCfg = Debug|x64
{DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Debug|x64.Build.0 = Debug|x64
{DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Debug|x86.ActiveCfg = Debug|Win32
{DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Debug|x86.Build.0 = Debug|Win32
- {DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Release|ARM64.ActiveCfg = Release|ARM64
- {DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Release|ARM64.Build.0 = Release|ARM64
+ {DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Release|ARM.ActiveCfg = Release|ARM
+ {DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Release|ARM.Build.0 = Release|ARM
+ {DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Release|ARM64.ActiveCfg = Release|Win32
{DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Release|x64.ActiveCfg = Release|x64
{DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Release|x64.Build.0 = Release|x64
{DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Release|x86.ActiveCfg = Release|Win32
{DC435C3F-C38E-43D1-B702-DC03F530A3CB}.Release|x86.Build.0 = Release|Win32
- {DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Debug|ARM64.Build.0 = Debug|ARM64
+ {DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Debug|ARM.ActiveCfg = Debug|ARM
+ {DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Debug|ARM.Build.0 = Debug|ARM
+ {DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Debug|ARM64.ActiveCfg = Debug|Win32
{DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Debug|x64.ActiveCfg = Debug|x64
{DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Debug|x64.Build.0 = Debug|x64
{DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Debug|x86.ActiveCfg = Debug|Win32
{DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Debug|x86.Build.0 = Debug|Win32
- {DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Release|ARM64.ActiveCfg = Release|ARM64
- {DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Release|ARM64.Build.0 = Release|ARM64
+ {DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Release|ARM.ActiveCfg = Release|ARM
+ {DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Release|ARM.Build.0 = Release|ARM
+ {DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Release|ARM64.ActiveCfg = Release|Win32
{DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Release|x64.ActiveCfg = Release|x64
{DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Release|x64.Build.0 = Release|x64
{DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Release|x86.ActiveCfg = Release|Win32
{DC435C3F-C38E-43D1-B702-DC03F530A3DD}.Release|x86.Build.0 = Release|Win32
+ {C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Debug|ARM.ActiveCfg = Debug|ARM
+ {C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Debug|ARM.Build.0 = Debug|ARM
{C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Debug|ARM64.ActiveCfg = Debug|ARM64
{C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Debug|ARM64.Build.0 = Debug|ARM64
{C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Debug|x64.ActiveCfg = Debug|x64
{C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Debug|x64.Build.0 = Debug|x64
{C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Debug|x86.ActiveCfg = Debug|x86
{C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Debug|x86.Build.0 = Debug|x86
+ {C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Release|ARM.ActiveCfg = Release|ARM
+ {C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Release|ARM.Build.0 = Release|ARM
{C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Release|ARM64.ActiveCfg = Release|ARM64
{C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Release|ARM64.Build.0 = Release|ARM64
{C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Release|x64.ActiveCfg = Release|x64
{C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Release|x64.Build.0 = Release|x64
{C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Release|x86.ActiveCfg = Release|x86
{C47F8562-A2B9-4BA3-87AC-B42D015E241D}.Release|x86.Build.0 = Release|x86
- {8717FA32-34A8-457D-B77B-AE005703EB55}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {8717FA32-34A8-457D-B77B-AE005703EB55}.Debug|ARM64.Build.0 = Debug|ARM64
+ {8717FA32-34A8-457D-B77B-AE005703EB55}.Debug|ARM.ActiveCfg = Debug|ARM
+ {8717FA32-34A8-457D-B77B-AE005703EB55}.Debug|ARM.Build.0 = Debug|ARM
+ {8717FA32-34A8-457D-B77B-AE005703EB55}.Debug|ARM64.ActiveCfg = Debug|Win32
{8717FA32-34A8-457D-B77B-AE005703EB55}.Debug|x64.ActiveCfg = Debug|x64
{8717FA32-34A8-457D-B77B-AE005703EB55}.Debug|x64.Build.0 = Debug|x64
{8717FA32-34A8-457D-B77B-AE005703EB55}.Debug|x86.ActiveCfg = Debug|Win32
{8717FA32-34A8-457D-B77B-AE005703EB55}.Debug|x86.Build.0 = Debug|Win32
- {8717FA32-34A8-457D-B77B-AE005703EB55}.Release|ARM64.ActiveCfg = Release|ARM64
- {8717FA32-34A8-457D-B77B-AE005703EB55}.Release|ARM64.Build.0 = Release|ARM64
+ {8717FA32-34A8-457D-B77B-AE005703EB55}.Release|ARM.ActiveCfg = Release|ARM
+ {8717FA32-34A8-457D-B77B-AE005703EB55}.Release|ARM.Build.0 = Release|ARM
+ {8717FA32-34A8-457D-B77B-AE005703EB55}.Release|ARM64.ActiveCfg = Release|Win32
{8717FA32-34A8-457D-B77B-AE005703EB55}.Release|x64.ActiveCfg = Release|x64
{8717FA32-34A8-457D-B77B-AE005703EB55}.Release|x64.Build.0 = Release|x64
{8717FA32-34A8-457D-B77B-AE005703EB55}.Release|x86.ActiveCfg = Release|Win32
{8717FA32-34A8-457D-B77B-AE005703EB55}.Release|x86.Build.0 = Release|Win32
+ {FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Debug|ARM.ActiveCfg = Debug|ARM
+ {FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Debug|ARM.Build.0 = Debug|ARM
{FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Debug|ARM64.ActiveCfg = Debug|ARM64
{FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Debug|ARM64.Build.0 = Debug|ARM64
{FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Debug|x64.ActiveCfg = Debug|x64
{FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Debug|x64.Build.0 = Debug|x64
{FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Debug|x86.ActiveCfg = Debug|Win32
{FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Debug|x86.Build.0 = Debug|Win32
+ {FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Release|ARM.ActiveCfg = Release|ARM
+ {FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Release|ARM.Build.0 = Release|ARM
{FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Release|ARM64.ActiveCfg = Release|ARM64
{FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Release|ARM64.Build.0 = Release|ARM64
{FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Release|x64.ActiveCfg = Release|x64
{FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Release|x64.Build.0 = Release|x64
{FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Release|x86.ActiveCfg = Release|Win32
{FF846D79-F4B8-495A-9FB4-79BAAEB98E4F}.Release|x86.Build.0 = Release|Win32
- {F89C2185-7834-443D-A449-53BD52FFEA3B}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {F89C2185-7834-443D-A449-53BD52FFEA3B}.Debug|ARM64.Build.0 = Debug|ARM64
+ {F89C2185-7834-443D-A449-53BD52FFEA3B}.Debug|ARM.ActiveCfg = Debug|ARM
+ {F89C2185-7834-443D-A449-53BD52FFEA3B}.Debug|ARM.Build.0 = Debug|ARM
+ {F89C2185-7834-443D-A449-53BD52FFEA3B}.Debug|ARM64.ActiveCfg = Debug|Win32
{F89C2185-7834-443D-A449-53BD52FFEA3B}.Debug|x64.ActiveCfg = Debug|x64
{F89C2185-7834-443D-A449-53BD52FFEA3B}.Debug|x64.Build.0 = Debug|x64
{F89C2185-7834-443D-A449-53BD52FFEA3B}.Debug|x86.ActiveCfg = Debug|Win32
{F89C2185-7834-443D-A449-53BD52FFEA3B}.Debug|x86.Build.0 = Debug|Win32
- {F89C2185-7834-443D-A449-53BD52FFEA3B}.Release|ARM64.ActiveCfg = Release|ARM64
- {F89C2185-7834-443D-A449-53BD52FFEA3B}.Release|ARM64.Build.0 = Release|ARM64
+ {F89C2185-7834-443D-A449-53BD52FFEA3B}.Release|ARM.ActiveCfg = Release|ARM
+ {F89C2185-7834-443D-A449-53BD52FFEA3B}.Release|ARM.Build.0 = Release|ARM
+ {F89C2185-7834-443D-A449-53BD52FFEA3B}.Release|ARM64.ActiveCfg = Release|Win32
{F89C2185-7834-443D-A449-53BD52FFEA3B}.Release|x64.ActiveCfg = Release|x64
{F89C2185-7834-443D-A449-53BD52FFEA3B}.Release|x64.Build.0 = Release|x64
{F89C2185-7834-443D-A449-53BD52FFEA3B}.Release|x86.ActiveCfg = Release|Win32
{F89C2185-7834-443D-A449-53BD52FFEA3B}.Release|x86.Build.0 = Release|Win32
- {4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Debug|ARM64.ActiveCfg = Debug|ARM64
- {4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Debug|ARM64.Build.0 = Debug|ARM64
+ {4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Debug|ARM.ActiveCfg = Debug|Win32
+ {4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Debug|ARM64.ActiveCfg = Debug|Win32
{4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Debug|x64.ActiveCfg = Debug|x64
{4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Debug|x64.Build.0 = Debug|x64
{4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Debug|x86.ActiveCfg = Debug|Win32
{4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Debug|x86.Build.0 = Debug|Win32
- {4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Release|ARM64.ActiveCfg = Release|ARM64
- {4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Release|ARM64.Build.0 = Release|ARM64
+ {4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Release|ARM.ActiveCfg = Release|Win32
+ {4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Release|ARM64.ActiveCfg = Release|Win32
{4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Release|x64.ActiveCfg = Release|x64
{4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Release|x64.Build.0 = Release|x64
{4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Release|x86.ActiveCfg = Release|Win32
{4DD64EAE-4B27-415A-863E-55CB8D5863DD}.Release|x86.Build.0 = Release|Win32
+ {98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|ARM.ActiveCfg = Debug|x64
+ {98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|ARM.Build.0 = Debug|x64
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|ARM64.ActiveCfg = Debug|ARM64
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|ARM64.Build.0 = Debug|ARM64
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|x64.ActiveCfg = Debug|x64
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|x64.Build.0 = Debug|x64
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|x86.ActiveCfg = Debug|Win32
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Debug|x86.Build.0 = Debug|Win32
+ {98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|ARM.ActiveCfg = Release|x64
+ {98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|ARM.Build.0 = Release|x64
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|ARM64.ActiveCfg = Release|ARM64
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|ARM64.Build.0 = Release|ARM64
{98E28FC8-2EB7-4544-9B6A-941462C6D3E2}.Release|x64.ActiveCfg = Release|x64
diff --git a/test/nuget/TestApp/TestApp.vcxproj b/test/nuget/TestApp/TestApp.vcxproj
index f14bd9f0b..fe49c25e4 100644
--- a/test/nuget/TestApp/TestApp.vcxproj
+++ b/test/nuget/TestApp/TestApp.vcxproj
@@ -16,9 +16,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -28,9 +28,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
diff --git a/test/nuget/TestRuntimeComponent1/TestRuntimeComponent1.vcxproj b/test/nuget/TestRuntimeComponent1/TestRuntimeComponent1.vcxproj
index b1ee4f43f..98413b501 100644
--- a/test/nuget/TestRuntimeComponent1/TestRuntimeComponent1.vcxproj
+++ b/test/nuget/TestRuntimeComponent1/TestRuntimeComponent1.vcxproj
@@ -16,9 +16,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -28,9 +28,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
diff --git a/test/nuget/TestRuntimeComponent2/TestRuntimeComponent2.vcxproj b/test/nuget/TestRuntimeComponent2/TestRuntimeComponent2.vcxproj
index c27db2602..86fd3c3ce 100644
--- a/test/nuget/TestRuntimeComponent2/TestRuntimeComponent2.vcxproj
+++ b/test/nuget/TestRuntimeComponent2/TestRuntimeComponent2.vcxproj
@@ -17,9 +17,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -29,9 +29,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
diff --git a/test/nuget/TestRuntimeComponent3/TestRuntimeComponent3.vcxproj b/test/nuget/TestRuntimeComponent3/TestRuntimeComponent3.vcxproj
index 01c84d830..65c4c6a01 100644
--- a/test/nuget/TestRuntimeComponent3/TestRuntimeComponent3.vcxproj
+++ b/test/nuget/TestRuntimeComponent3/TestRuntimeComponent3.vcxproj
@@ -17,9 +17,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -29,9 +29,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
diff --git a/test/nuget/TestRuntimeComponentCSharp/TestRuntimeComponentCSharp.csproj b/test/nuget/TestRuntimeComponentCSharp/TestRuntimeComponentCSharp.csproj
index 167b32ad9..ce9208ac8 100644
--- a/test/nuget/TestRuntimeComponentCSharp/TestRuntimeComponentCSharp.csproj
+++ b/test/nuget/TestRuntimeComponentCSharp/TestRuntimeComponentCSharp.csproj
@@ -36,6 +36,24 @@
false
prompt
+
+ ARM
+ true
+ DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP
+ ;2008
+ full
+ false
+ prompt
+
+
+ ARM
+ TRACE;NETFX_CORE;WINDOWS_UWP
+ true
+ ;2008
+ pdbonly
+ false
+ prompt
+
ARM64
true
diff --git a/test/nuget/TestRuntimeComponentCX/TestRuntimeComponentCX.vcxproj b/test/nuget/TestRuntimeComponentCX/TestRuntimeComponentCX.vcxproj
index 819cff52b..036d3a195 100644
--- a/test/nuget/TestRuntimeComponentCX/TestRuntimeComponentCX.vcxproj
+++ b/test/nuget/TestRuntimeComponentCX/TestRuntimeComponentCX.vcxproj
@@ -2,6 +2,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -14,6 +18,10 @@
Debug
x64
+
+ Release
+ ARM
+
Release
ARM64
@@ -61,6 +69,12 @@
+
+
+
+
+
+
@@ -81,6 +95,12 @@
false
+
+ false
+
+
+ false
+
false
@@ -129,6 +149,38 @@
false
+
+
+ Use
+ _WINRT_DLL;%(PreprocessorDefinitions)
+ pch.h
+ $(IntDir)pch.pch
+ $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)
+ /bigobj /Zc:twoPhase- %(AdditionalOptions)
+ 28204
+ true
+
+
+ Console
+ false
+
+
+
+
+ Use
+ _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions)
+ pch.h
+ $(IntDir)pch.pch
+ $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)
+ /bigobj /Zc:twoPhase- %(AdditionalOptions)
+ 28204
+ true
+
+
+ Console
+ false
+
+
Use
@@ -211,6 +263,8 @@
Create
Create
Create
+ Create
+ Create
Create
Create
diff --git a/test/nuget/TestRuntimeComponentCXReferencingWinRTStaticLibrary/TestRuntimeComponentCXReferencingWinRTStaticLibrary.vcxproj b/test/nuget/TestRuntimeComponentCXReferencingWinRTStaticLibrary/TestRuntimeComponentCXReferencingWinRTStaticLibrary.vcxproj
index 6ce188345..0b9fdf63a 100644
--- a/test/nuget/TestRuntimeComponentCXReferencingWinRTStaticLibrary/TestRuntimeComponentCXReferencingWinRTStaticLibrary.vcxproj
+++ b/test/nuget/TestRuntimeComponentCXReferencingWinRTStaticLibrary/TestRuntimeComponentCXReferencingWinRTStaticLibrary.vcxproj
@@ -2,6 +2,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -14,6 +18,10 @@
Debug
x64
+
+ Release
+ ARM
+
Release
ARM64
@@ -43,6 +51,10 @@
DynamicLibrary
true
+
+ DynamicLibrary
+ true
+
DynamicLibrary
true
@@ -56,6 +68,11 @@
false
true
+
+ DynamicLibrary
+ false
+ true
+
DynamicLibrary
false
@@ -77,6 +94,12 @@
+
+
+
+
+
+
@@ -97,6 +120,12 @@
false
+
+ false
+
+
+ false
+
false
@@ -143,6 +172,36 @@
false
+
+
+ Use
+ _WINRT_DLL;%(PreprocessorDefinitions)
+ pch.h
+ $(IntDir)pch.pch
+ $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)
+ /bigobj /Zc:twoPhase- %(AdditionalOptions)
+ 28204
+
+
+ Console
+ false
+
+
+
+
+ Use
+ _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions)
+ pch.h
+ $(IntDir)pch.pch
+ $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)
+ /bigobj /Zc:twoPhase- %(AdditionalOptions)
+ 28204
+
+
+ Console
+ false
+
+
Use
@@ -221,6 +280,8 @@
Create
Create
Create
+ Create
+ Create
Create
Create
diff --git a/test/nuget/TestRuntimeComponentEmpty/TestRuntimeComponentEmpty.vcxproj b/test/nuget/TestRuntimeComponentEmpty/TestRuntimeComponentEmpty.vcxproj
index 60786eddb..a16148f52 100644
--- a/test/nuget/TestRuntimeComponentEmpty/TestRuntimeComponentEmpty.vcxproj
+++ b/test/nuget/TestRuntimeComponentEmpty/TestRuntimeComponentEmpty.vcxproj
@@ -17,9 +17,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -29,9 +29,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
diff --git a/test/nuget/TestRuntimeComponentNamespaceUnderscore/TestRuntimeComponentNamespaceUnderscore.vcxproj b/test/nuget/TestRuntimeComponentNamespaceUnderscore/TestRuntimeComponentNamespaceUnderscore.vcxproj
index fb8146340..0eec74f45 100644
--- a/test/nuget/TestRuntimeComponentNamespaceUnderscore/TestRuntimeComponentNamespaceUnderscore.vcxproj
+++ b/test/nuget/TestRuntimeComponentNamespaceUnderscore/TestRuntimeComponentNamespaceUnderscore.vcxproj
@@ -17,9 +17,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -29,9 +29,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
diff --git a/test/nuget/TestStaticLibrary1/TestStaticLibrary1.vcxproj b/test/nuget/TestStaticLibrary1/TestStaticLibrary1.vcxproj
index 13ac4e201..742136697 100644
--- a/test/nuget/TestStaticLibrary1/TestStaticLibrary1.vcxproj
+++ b/test/nuget/TestStaticLibrary1/TestStaticLibrary1.vcxproj
@@ -18,9 +18,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -30,9 +30,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
@@ -70,10 +70,10 @@
-
+
-
+
@@ -113,7 +113,7 @@
true
-
+
Use
Level4
@@ -175,7 +175,7 @@
true
-
+
Use
Level4
@@ -208,10 +208,10 @@
Create
Create
- Create
+ Create
Create
Create
- Create
+ Create
TestStaticLibrary1Class.idl
diff --git a/test/nuget/TestStaticLibrary2/TestStaticLibrary2.vcxproj b/test/nuget/TestStaticLibrary2/TestStaticLibrary2.vcxproj
index b419d183e..492148b91 100644
--- a/test/nuget/TestStaticLibrary2/TestStaticLibrary2.vcxproj
+++ b/test/nuget/TestStaticLibrary2/TestStaticLibrary2.vcxproj
@@ -18,9 +18,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -30,9 +30,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
@@ -70,10 +70,10 @@
-
+
-
+
@@ -113,7 +113,7 @@
true
-
+
Use
Level4
@@ -175,7 +175,7 @@
true
-
+
Use
Level4
@@ -208,10 +208,10 @@
Create
Create
- Create
+ Create
Create
Create
- Create
+ Create
TestStaticLibrary2Class.idl
diff --git a/test/nuget/TestStaticLibrary3/TestStaticLibrary3.vcxproj b/test/nuget/TestStaticLibrary3/TestStaticLibrary3.vcxproj
index 210802841..0064ffbf4 100644
--- a/test/nuget/TestStaticLibrary3/TestStaticLibrary3.vcxproj
+++ b/test/nuget/TestStaticLibrary3/TestStaticLibrary3.vcxproj
@@ -18,9 +18,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -30,9 +30,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
@@ -70,10 +70,10 @@
-
+
-
+
@@ -113,7 +113,7 @@
true
-
+
Use
Level4
@@ -175,7 +175,7 @@
true
-
+
Use
Level4
@@ -208,10 +208,10 @@
Create
Create
- Create
+ Create
Create
Create
- Create
+ Create
TestStaticLibrary3Class.idl
diff --git a/test/nuget/TestStaticLibrary4/TestStaticLibrary4.vcxproj b/test/nuget/TestStaticLibrary4/TestStaticLibrary4.vcxproj
index 357d0ca70..c6a48f1dd 100644
--- a/test/nuget/TestStaticLibrary4/TestStaticLibrary4.vcxproj
+++ b/test/nuget/TestStaticLibrary4/TestStaticLibrary4.vcxproj
@@ -2,9 +2,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -14,9 +14,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
@@ -65,10 +65,10 @@
-
+
-
+
@@ -85,10 +85,10 @@
false
-
+
false
-
+
false
@@ -125,7 +125,7 @@
false
-
+
Use
false
@@ -139,7 +139,7 @@
false
-
+
Use
false
@@ -193,10 +193,10 @@
Create
Create
+ Create
+ Create
Create
Create
- Create
- Create
Create
Create
diff --git a/test/nuget/TestStaticLibrary5/TestStaticLibrary5.vcxproj b/test/nuget/TestStaticLibrary5/TestStaticLibrary5.vcxproj
index d93446a05..904e64f6b 100644
--- a/test/nuget/TestStaticLibrary5/TestStaticLibrary5.vcxproj
+++ b/test/nuget/TestStaticLibrary5/TestStaticLibrary5.vcxproj
@@ -2,9 +2,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -14,9 +14,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
@@ -65,10 +65,10 @@
-
+
-
+
@@ -85,10 +85,10 @@
false
-
+
false
-
+
false
@@ -125,7 +125,7 @@
false
-
+
Use
false
@@ -139,7 +139,7 @@
false
-
+
Use
false
@@ -193,10 +193,10 @@
Create
Create
+ Create
+ Create
Create
Create
- Create
- Create
Create
Create
diff --git a/test/nuget/TestStaticLibrary6/TestStaticLibrary6.vcxproj b/test/nuget/TestStaticLibrary6/TestStaticLibrary6.vcxproj
index 626e60dab..a293f25fc 100644
--- a/test/nuget/TestStaticLibrary6/TestStaticLibrary6.vcxproj
+++ b/test/nuget/TestStaticLibrary6/TestStaticLibrary6.vcxproj
@@ -2,9 +2,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -14,9 +14,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
@@ -65,10 +65,10 @@
-
+
-
+
@@ -85,10 +85,10 @@
false
-
+
false
-
+
false
@@ -125,7 +125,7 @@
false
-
+
Use
false
@@ -139,7 +139,7 @@
false
-
+
Use
false
@@ -197,10 +197,10 @@
Create
Create
+ Create
+ Create
Create
Create
- Create
- Create
Create
Create
diff --git a/test/nuget/TestStaticLibrary7/TestStaticLibrary7.vcxproj b/test/nuget/TestStaticLibrary7/TestStaticLibrary7.vcxproj
index 85d6bec7f..d18def06c 100644
--- a/test/nuget/TestStaticLibrary7/TestStaticLibrary7.vcxproj
+++ b/test/nuget/TestStaticLibrary7/TestStaticLibrary7.vcxproj
@@ -18,9 +18,9 @@
-
+
Debug
- ARM64
+ ARM
Debug
@@ -30,9 +30,9 @@
Debug
x64
-
+
Release
- ARM64
+ ARM
Release
diff --git a/test/old_tests/Component/Component.vcxproj b/test/old_tests/Component/Component.vcxproj
index 162c8fec7..45c566634 100644
--- a/test/old_tests/Component/Component.vcxproj
+++ b/test/old_tests/Component/Component.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -13,6 +17,10 @@
Debug
x64
+
+ Release
+ ARM
+
Release
ARM64
@@ -38,6 +46,11 @@
true
x64
+
+ DynamicLibrary
+ true
+ x64
+
DynamicLibrary
true
@@ -54,6 +67,12 @@
true
x64
+
+ DynamicLibrary
+ false
+ true
+ x64
+
DynamicLibrary
false
@@ -74,12 +93,18 @@
+
+
+
+
+
+
@@ -96,6 +121,12 @@
false
Midl
+
+ false
+ false
+ ..\..;$(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+ Midl
+
false
false
@@ -106,6 +137,12 @@
false
Midl
+
+ false
+ false
+ ..\..;$(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+ Midl
+
false
false
@@ -169,6 +206,42 @@
+
+
+ false
+ $(ProjectDir);$(OutputPath);Generated Files;..\Composable\Generated Files
+ false
+ MultiThreadedDebug
+ NOMINMAX;_WINDLL;%(PreprocessorDefinitions)
+ 4100;4297;4458
+
+
+ Console
+ false
+ module.def
+ true
+
+
+
+
+
+
+
+
+ ..\Composable
+
+
+
+
+
+
+
+
+
+
+
+
+
false
@@ -242,6 +315,41 @@
+
+
+ false
+ $(ProjectDir);$(OutputPath);Generated Files;..\Composable\Generated Files
+ MultiThreaded
+ NOMINMAX;_WINDLL;%(PreprocessorDefinitions)
+ 4100;4297;4458
+
+
+ Console
+ false
+ module.def
+ true
+
+
+
+
+
+
+
+
+ ..\Composable
+
+
+
+
+
+
+
+
+
+
+
+
+
false
@@ -376,38 +484,50 @@
$(SystemRoot)\System32\WinMetadata
+ $(SystemRoot)\System32\WinMetadata
$(SystemRoot)\System32\WinMetadata
$(SystemRoot)\System32\WinMetadata
+ $(SystemRoot)\System32\WinMetadata
$(SystemRoot)\System32\WinMetadata
$(SystemRoot)\System32\WinMetadata
$(SystemRoot)\System32\WinMetadata
$(OutputPath)$(ProjectName).winmd
+ $(OutputPath)$(ProjectName).winmd
$(OutputPath)$(ProjectName).winmd
$(OutputPath)$(ProjectName).winmd
+ $(OutputPath)$(ProjectName).winmd
$(OutputPath)$(ProjectName).winmd
$(OutputPath)$(ProjectName).winmd
$(OutputPath)$(ProjectName).winmd
true
+ true
true
true
+ true
true
true
true
$(OutputPath)$(ProjectName)_h.h
+ $(OutputPath)$(ProjectName)_h.h
$(OutputPath)$(ProjectName)_h.h
$(OutputPath)$(ProjectName)_h.h
+ $(OutputPath)$(ProjectName)_h.h
$(OutputPath)$(ProjectName)_h.h
$(OutputPath)$(ProjectName)_h.h
$(OutputPath)$(ProjectName)_h.h
..\Composable
+ ..\Composable
..\Composable
..\Composable
+ ..\Composable
..\Composable
..\Composable
..\Composable
true
+ true
true
true
+ true
true
true
true
diff --git a/test/old_tests/Composable/Composable.vcxproj b/test/old_tests/Composable/Composable.vcxproj
index fcfd095fc..f94d46edc 100644
--- a/test/old_tests/Composable/Composable.vcxproj
+++ b/test/old_tests/Composable/Composable.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -13,6 +17,10 @@
Debug
x64
+
+ Release
+ ARM
+
Release
ARM64
@@ -38,6 +46,11 @@
true
x64
+
+ DynamicLibrary
+ true
+ x64
+
DynamicLibrary
true
@@ -54,6 +67,12 @@
true
x64
+
+ DynamicLibrary
+ false
+ true
+ x64
+
DynamicLibrary
false
@@ -74,12 +93,18 @@
+
+
+
+
+
+
@@ -96,6 +121,12 @@
false
Midl
+
+ false
+ false
+ ..\..;$(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+ Midl
+
false
false
@@ -106,6 +137,12 @@
false
Midl
+
+ false
+ false
+ ..\..;$(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+ Midl
+
false
false
@@ -169,6 +206,42 @@
+
+
+ false
+ $(ProjectDir);$(OutDir);Generated Files
+ false
+ MultiThreadedDebug
+ NOMINMAX;_WINDLL;%(PreprocessorDefinitions)
+ 4100;4297;4458
+ precomp.hpp
+
+
+ Console
+ false
+ module.def
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
false
@@ -242,6 +315,41 @@
+
+
+ false
+ $(ProjectDir);$(OutDir);Generated Files
+ MultiThreaded
+ NOMINMAX;_WINDLL;%(PreprocessorDefinitions)
+ 4100;4297;4458
+ precomp.hpp
+
+
+ Console
+ false
+ module.def
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
false
@@ -368,32 +476,42 @@
$(SystemRoot)\System32\WinMetadata
+ $(SystemRoot)\System32\WinMetadata
$(SystemRoot)\System32\WinMetadata
$(SystemRoot)\System32\WinMetadata
+ $(SystemRoot)\System32\WinMetadata
$(SystemRoot)\System32\WinMetadata
$(SystemRoot)\System32\WinMetadata
$(SystemRoot)\System32\WinMetadata
$(OutputPath)$(ProjectName).winmd
+ $(OutputPath)$(ProjectName).winmd
$(OutputPath)$(ProjectName).winmd
$(OutputPath)$(ProjectName).winmd
+ $(OutputPath)$(ProjectName).winmd
$(OutputPath)$(ProjectName).winmd
$(OutputPath)$(ProjectName).winmd
$(OutputPath)$(ProjectName).winmd
true
+ true
true
true
+ true
true
true
true
$(OutputPath)$(ProjectName)_h.h
+ $(OutputPath)$(ProjectName)_h.h
$(OutputPath)$(ProjectName)_h.h
$(OutputPath)$(ProjectName)_h.h
+ $(OutputPath)$(ProjectName)_h.h
$(OutputPath)$(ProjectName)_h.h
$(OutputPath)$(ProjectName)_h.h
$(OutputPath)$(ProjectName)_h.h
true
+ true
true
true
+ true
true
true
true
diff --git a/test/old_tests/UnitTests/Tests.vcxproj b/test/old_tests/UnitTests/Tests.vcxproj
index c5169ad4d..1d6779315 100644
--- a/test/old_tests/UnitTests/Tests.vcxproj
+++ b/test/old_tests/UnitTests/Tests.vcxproj
@@ -1,6 +1,10 @@

+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -138,6 +146,11 @@
true
x64
+
+ Application
+ true
+ x64
+
Application
true
@@ -149,6 +162,12 @@
x64
true
+
+ Application
+ false
+ x64
+ true
+
Application
false
@@ -174,12 +193,18 @@
+
+
+
+
+
+
@@ -217,6 +242,25 @@
$(OutDir)test_old.exe
+
+
+ Disabled
+ _HAS_AUTO_PTR_ETC;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ $(OutputPath);..\Composable\Generated Files;..\Component\Generated Files;..\Composable;..\Reflection\Generated Files;..\..\;
+ ProgramDatabase
+ Default
+ false
+ false
+ MultiThreadedDebug
+ 4100;4297;4458
+
+
+ Console
+ true
+ false
+ $(OutDir)test_old.exe
+
+
Disabled
@@ -280,6 +324,25 @@
$(OutDir)test_old.exe
+
+
+ MaxSpeed
+ true
+ true
+ _HAS_AUTO_PTR_ETC;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ $(OutputPath);..\Composable\Generated Files;..\Component\Generated Files;..\Composable;..\Reflection\Generated Files;..\..\;
+ MultiThreaded
+ 4100;4297;4458
+
+
+ Console
+ true
+ true
+ true
+ false
+ $(OutDir)test_old.exe
+
+
MaxSpeed
diff --git a/test/test/test.vcxproj b/test/test/test.vcxproj
index 43928dab2..d1efe8f7d 100644
--- a/test/test/test.vcxproj
+++ b/test/test/test.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -37,6 +45,10 @@
Application
true
+
+ Application
+ true
+
Application
true
@@ -46,6 +58,11 @@
false
true
+
+ Application
+ false
+ true
+
Application
false
@@ -68,12 +85,18 @@
+
+
+
+
+
+
@@ -128,6 +151,24 @@
+
+
+ Disabled
+ $(OutputPath);Generated Files;..;..\..\cppwinrt
+ _MBCS;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+
+
+ Console
+
+
+ $(CppWinRTDir)cppwinrt -in $(OutputPath)test_component.winmd $(OutputPath)test_component_no_pch.winmd -out "$(ProjectDir)Generated Files" -ref sdk -verbose -fastabi
+
+
+
+
+
+
Disabled
@@ -192,6 +233,28 @@
+
+
+ MaxSpeed
+ true
+ true
+ $(OutputPath);Generated Files;..;..\..\cppwinrt
+ _MBCS;%(PreprocessorDefinitions)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+
+
+ $(CppWinRTDir)cppwinrt -in $(OutputPath)test_component.winmd $(OutputPath)test_component_no_pch.winmd -out "$(ProjectDir)Generated Files" -ref sdk -verbose -fastabi
+
+
+
+
+
+
MaxSpeed
@@ -240,6 +303,8 @@
NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
@@ -248,6 +313,8 @@
NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
@@ -256,6 +323,8 @@
NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
@@ -293,6 +362,8 @@
NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
@@ -303,6 +374,8 @@
NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
@@ -314,6 +387,8 @@
NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
@@ -331,6 +406,8 @@
NotUsing
NotUsing
NotUsing
+ NotUsing
+ NotUsing
NotUsing
NotUsing
diff --git a/test/test_component/test_component.vcxproj b/test/test_component/test_component.vcxproj
index 3ffdb8f97..f927e4034 100644
--- a/test/test_component/test_component.vcxproj
+++ b/test/test_component/test_component.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -38,6 +46,11 @@
true
x64
+
+ DynamicLibrary
+ true
+ x64
+
DynamicLibrary
true
@@ -49,6 +62,12 @@
true
x64
+
+ DynamicLibrary
+ false
+ true
+ x64
+
DynamicLibrary
false
@@ -74,12 +93,18 @@
+
+
+
+
+
+
@@ -93,12 +118,20 @@
Midl
+
+ Midl
+ $(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+
Midl
Midl
+
+ Midl
+ $(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+
Midl
@@ -146,6 +179,55 @@
true
+
+
+ Disabled
+ .;$(OutputPath);Generated Files
+ /Zc:threadSafeInit- /we4640 %(AdditionalOptions)
+ MultiThreadedDebug
+
+
+ exports.def
+
+
+ true
+
+
+ $(OutputPath)test_component.winmd
+
+
+
+
+
+
+
+
+
+
+ $(OutputPath)test_component.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /nomidl %(AdditionalOptions)
+ C:\Windows\System32\WinMetadata
+ true
+
+
Disabled
@@ -277,6 +359,59 @@
true
+
+
+ MaxSpeed
+ true
+ true
+ .;$(OutputPath);Generated Files
+ /Zc:threadSafeInit- /we4640 %(AdditionalOptions)
+ MultiThreaded
+
+
+ true
+ true
+ exports.def
+
+
+ true
+
+
+ $(OutputPath)test_component.winmd
+
+
+
+
+
+
+
+
+
+
+ $(OutputPath)test_component.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /nomidl %(AdditionalOptions)
+ C:\Windows\System32\WinMetadata
+ true
+
+
MaxSpeed
diff --git a/test/test_component_base/test_component_base.vcxproj b/test/test_component_base/test_component_base.vcxproj
index 90577a2c5..b824a4b29 100644
--- a/test/test_component_base/test_component_base.vcxproj
+++ b/test/test_component_base/test_component_base.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -38,6 +46,11 @@
true
x64
+
+ DynamicLibrary
+ true
+ x64
+
DynamicLibrary
true
@@ -49,6 +62,12 @@
true
x64
+
+ DynamicLibrary
+ false
+ true
+ x64
+
DynamicLibrary
false
@@ -74,12 +93,18 @@
+
+
+
+
+
+
@@ -93,12 +118,20 @@
Midl
+
+ Midl
+ $(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+
Midl
Midl
+
+ Midl
+ $(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+
Midl
@@ -158,6 +191,68 @@
$(OutputPath)test_component_base.winmd
+
+
+ Disabled
+ $(ProjectDir);$(OutputPath);Generated Files
+ 4100
+ MultiThreadedDebug
+
+
+ exports.def
+
+
+ true
+
+
+ $(OutputPath)test_component_base.winmd
+
+
+
+
+
+
+
+
+
+
+ nul
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /nomidl %(AdditionalOptions)
+ C:\Windows\System32\WinMetadata
+ true
+
+
+ $(CppWinRTDir)cppwinrt -input $(OutputPath)test_component_base.winmd -comp $(ProjectDir) -out "$(ProjectDir)Generated Files" -ref sdk -verbose -name test_component_base
+
+
+
+
+
+
+ Generated Files\module.g.cpp
+
+
+ $(OutputPath)test_component_base.winmd
+
+
Disabled
@@ -326,6 +421,72 @@
$(OutputPath)test_component_base.winmd
+
+
+ MaxSpeed
+ true
+ true
+ $(ProjectDir);$(OutputPath);Generated Files
+ 4100
+ MultiThreaded
+
+
+ true
+ true
+ exports.def
+
+
+ true
+
+
+ $(OutputPath)test_component_base.winmd
+
+
+
+
+
+
+
+
+
+
+ nul
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /nomidl %(AdditionalOptions)
+ C:\Windows\System32\WinMetadata
+ true
+
+
+ $(CppWinRTDir)cppwinrt -input $(OutputPath)test_component_base.winmd -comp $(ProjectDir) -out "$(ProjectDir)Generated Files" -ref sdk -verbose -name test_component_base
+
+
+
+
+
+
+ Generated Files\module.g.cpp
+
+
+ $(OutputPath)test_component_base.winmd
+
+
MaxSpeed
diff --git a/test/test_component_derived/test_component_derived.vcxproj b/test/test_component_derived/test_component_derived.vcxproj
index 837d8821e..5cab40b8f 100644
--- a/test/test_component_derived/test_component_derived.vcxproj
+++ b/test/test_component_derived/test_component_derived.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -38,6 +46,11 @@
true
x64
+
+ DynamicLibrary
+ true
+ x64
+
DynamicLibrary
true
@@ -49,6 +62,12 @@
true
x64
+
+ DynamicLibrary
+ false
+ true
+ x64
+
DynamicLibrary
false
@@ -74,12 +93,18 @@
+
+
+
+
+
+
@@ -93,12 +118,20 @@
Midl
+
+ Midl
+ $(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+
Midl
Midl
+
+ Midl
+ $(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+
Midl
@@ -159,6 +192,69 @@
$(OutputPath)test_component_derived.winmd
+
+
+ Disabled
+ $(ProjectDir);$(OutputPath);Generated Files;..\test_component_base\Generated Files
+ 4100
+ MultiThreadedDebug
+
+
+ exports.def
+
+
+ true
+
+
+ $(OutputPath)test_component_derived.winmd
+
+
+
+
+
+
+
+
+
+
+ nul
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /nomidl %(AdditionalOptions)
+ C:\Windows\System32\WinMetadata
+ true
+ ..\test_component_base
+
+
+ $(CppWinRTDir)cppwinrt -input $(OutputPath)test_component_derived.winmd -ref $(OutputPath)test_component_base.winmd -comp $(ProjectDir) -out "$(ProjectDir)Generated Files" -ref sdk -verbose -name test_component_derived
+
+
+
+
+
+
+ Generated Files\module.g.cpp
+
+
+ $(OutputPath)test_component_derived.winmd
+
+
Disabled
@@ -330,6 +426,73 @@
$(OutputPath)test_component_derived.winmd
+
+
+ MaxSpeed
+ true
+ true
+ $(ProjectDir);$(OutputPath);Generated Files;..\test_component_base\Generated Files
+ 4100
+ MultiThreaded
+
+
+ true
+ true
+ exports.def
+
+
+ true
+
+
+ $(OutputPath)test_component_derived.winmd
+
+
+
+
+
+
+
+
+
+
+ nul
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /nomidl %(AdditionalOptions)
+ C:\Windows\System32\WinMetadata
+ true
+ ..\test_component_base
+
+
+ $(CppWinRTDir)cppwinrt -input $(OutputPath)test_component_derived.winmd -ref $(OutputPath)test_component_base.winmd -comp $(ProjectDir) -out "$(ProjectDir)Generated Files" -ref sdk -verbose -name test_component_derived
+
+
+
+
+
+
+ Generated Files\module.g.cpp
+
+
+ $(OutputPath)test_component_derived.winmd
+
+
MaxSpeed
diff --git a/test/test_component_fast/test_component_fast.vcxproj b/test/test_component_fast/test_component_fast.vcxproj
index ed5a36222..3b7b07dbf 100644
--- a/test/test_component_fast/test_component_fast.vcxproj
+++ b/test/test_component_fast/test_component_fast.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -39,6 +47,11 @@
true
x64
+
+ DynamicLibrary
+ true
+ x64
+
DynamicLibrary
true
@@ -50,6 +63,12 @@
true
x64
+
+ DynamicLibrary
+ false
+ true
+ x64
+
DynamicLibrary
false
@@ -75,12 +94,18 @@
+
+
+
+
+
+
@@ -94,12 +119,20 @@
Midl
+
+ Midl
+ $(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+
Midl
Midl
+
+ Midl
+ $(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+
Midl
@@ -160,6 +193,69 @@
$(OutputPath)test_component_fast.winmd
+
+
+ Disabled
+ $(ProjectDir);$(OutputPath);Generated Files
+ /DWINRT_FAST_ABI_SIZE=50 %(AdditionalOptions)
+ 4100
+ MultiThreadedDebug
+
+
+ exports.def
+
+
+ true
+
+
+ $(OutputPath)test_component_fast.winmd
+
+
+
+
+
+
+
+
+
+
+ nul
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /nomidl %(AdditionalOptions)
+ C:\Windows\System32\WinMetadata
+ true
+
+
+ $(CppWinRTDir)cppwinrt -input $(OutputPath)test_component_fast.winmd -comp $(ProjectDir) -out "$(ProjectDir)Generated Files" -ref sdk -verbose -fastabi -prefix -opt -name test_component_fast
+
+
+
+
+
+
+ Generated Files\module.g.cpp
+
+
+ $(OutputPath)test_component_fast.winmd
+
+
Disabled
@@ -331,6 +427,73 @@
$(OutputPath)test_component_fast.winmd
+
+
+ MaxSpeed
+ true
+ true
+ $(ProjectDir);$(OutputPath);Generated Files
+ /DWINRT_FAST_ABI_SIZE=50 %(AdditionalOptions)
+ 4100
+ MultiThreaded
+
+
+ true
+ true
+ exports.def
+
+
+ true
+
+
+ $(OutputPath)test_component_fast.winmd
+
+
+
+
+
+
+
+
+
+
+ nul
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /nomidl %(AdditionalOptions)
+ C:\Windows\System32\WinMetadata
+ true
+
+
+ $(CppWinRTDir)cppwinrt -input $(OutputPath)test_component_fast.winmd -comp $(ProjectDir) -out "$(ProjectDir)Generated Files" -ref sdk -verbose -fastabi -prefix -opt -name test_component_fast
+
+
+
+
+
+
+ Generated Files\module.g.cpp
+
+
+ $(OutputPath)test_component_fast.winmd
+
+
MaxSpeed
diff --git a/test/test_component_folders/test_component_folders.vcxproj b/test/test_component_folders/test_component_folders.vcxproj
index 14c12f8f9..5bd0ddd57 100644
--- a/test/test_component_folders/test_component_folders.vcxproj
+++ b/test/test_component_folders/test_component_folders.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -38,6 +46,11 @@
true
x64
+
+ DynamicLibrary
+ true
+ x64
+
DynamicLibrary
true
@@ -49,6 +62,12 @@
true
x64
+
+ DynamicLibrary
+ false
+ true
+ x64
+
DynamicLibrary
false
@@ -74,12 +93,18 @@
+
+
+
+
+
+
@@ -93,12 +118,20 @@
Midl
+
+ Midl
+ $(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+
Midl
Midl
+
+ Midl
+ $(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+
Midl
@@ -158,6 +191,68 @@
$(OutputPath)test_component_folders.winmd
+
+
+ Disabled
+ $(ProjectDir);$(OutputPath);Generated Files
+ 4100
+ MultiThreadedDebug
+
+
+ exports.def
+
+
+ true
+
+
+ $(OutputPath)test_component_folders.winmd
+
+
+
+
+
+
+
+
+
+
+ nul
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /nomidl %(AdditionalOptions)
+ C:\Windows\System32\WinMetadata
+ true
+
+
+ $(CppWinRTDir)cppwinrt -input $(OutputPath)test_component_folders.winmd -comp -out "$(ProjectDir)Generated Files" -ref sdk -verbose -overwrite -name test_component_folders
+
+
+
+
+
+
+ Generated Files\module.g.cpp
+
+
+ $(OutputPath)test_component_folders.winmd
+
+
Disabled
@@ -326,6 +421,72 @@
$(OutputPath)test_component_folders.winmd
+
+
+ MaxSpeed
+ true
+ true
+ $(ProjectDir);$(OutputPath);Generated Files
+ 4100
+ MultiThreaded
+
+
+ true
+ true
+ exports.def
+
+
+ true
+
+
+ $(OutputPath)test_component_folders.winmd
+
+
+
+
+
+
+
+
+
+
+ nul
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /nomidl %(AdditionalOptions)
+ C:\Windows\System32\WinMetadata
+ true
+
+
+ $(CppWinRTDir)cppwinrt -input $(OutputPath)test_component_folders.winmd -comp -out "$(ProjectDir)Generated Files" -ref sdk -verbose -overwrite -name test_component_folders
+
+
+
+
+
+
+ Generated Files\module.g.cpp
+
+
+ $(OutputPath)test_component_folders.winmd
+
+
MaxSpeed
diff --git a/test/test_component_no_pch/test_component_no_pch.vcxproj b/test/test_component_no_pch/test_component_no_pch.vcxproj
index 117be2d00..d41cabb67 100644
--- a/test/test_component_no_pch/test_component_no_pch.vcxproj
+++ b/test/test_component_no_pch/test_component_no_pch.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -38,6 +46,11 @@
true
x64
+
+ DynamicLibrary
+ true
+ x64
+
DynamicLibrary
true
@@ -49,6 +62,12 @@
true
x64
+
+ DynamicLibrary
+ false
+ true
+ x64
+
DynamicLibrary
false
@@ -74,12 +93,18 @@
+
+
+
+
+
+
@@ -93,12 +118,20 @@
Midl
+
+ Midl
+ $(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+
Midl
Midl
+
+ Midl
+ $(VC_ExecutablePath_x86);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH);
+
Midl
@@ -159,6 +192,69 @@
$(OutputPath)test_component_no_pch.winmd
+
+
+ Disabled
+ $(ProjectDir);$(OutputPath);Generated Files
+ 4100
+ NotUsing
+ MultiThreadedDebug
+
+
+ exports.def
+
+
+ true
+
+
+ $(OutputPath)test_component_no_pch.winmd
+
+
+
+
+
+
+
+
+
+
+ nul
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /nomidl %(AdditionalOptions)
+ C:\Windows\System32\WinMetadata
+ true
+
+
+ $(CppWinRTDir)cppwinrt -input $(OutputPath)test_component_no_pch.winmd -comp -out "$(ProjectDir)Generated Files" -ref sdk -verbose -overwrite -pch . -name test_component_no_pch
+
+
+
+
+
+
+ Generated Files\module.g.cpp
+
+
+ $(OutputPath)test_component_no_pch.winmd
+
+
Disabled
@@ -330,6 +426,73 @@
$(OutputPath)test_component_no_pch.winmd
+
+
+ MaxSpeed
+ true
+ true
+ $(ProjectDir);$(OutputPath);Generated Files
+ 4100
+ NotUsing
+ MultiThreaded
+
+
+ true
+ true
+ exports.def
+
+
+ true
+
+
+ $(OutputPath)test_component_no_pch.winmd
+
+
+
+
+
+
+
+
+
+
+ nul
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /nomidl %(AdditionalOptions)
+ C:\Windows\System32\WinMetadata
+ true
+
+
+ $(CppWinRTDir)cppwinrt -input $(OutputPath)test_component_no_pch.winmd -comp -out "$(ProjectDir)Generated Files" -ref sdk -verbose -overwrite -pch . -name test_component_no_pch
+
+
+
+
+
+
+ Generated Files\module.g.cpp
+
+
+ $(OutputPath)test_component_no_pch.winmd
+
+
MaxSpeed
diff --git a/test/test_cpp20/test_cpp20.vcxproj b/test/test_cpp20/test_cpp20.vcxproj
index 4eaee0a18..a0156e9c8 100644
--- a/test/test_cpp20/test_cpp20.vcxproj
+++ b/test/test_cpp20/test_cpp20.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -38,6 +46,10 @@
Application
true
+
+ Application
+ true
+
Application
true
@@ -47,6 +59,11 @@
false
true
+
+ Application
+ false
+ true
+
Application
false
@@ -69,12 +86,18 @@
+
+
+
+
+
+
@@ -133,6 +156,25 @@
+
+
+ Disabled
+ $(OutputPath);Generated Files;..\
+ NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+
+
+ Console
+
+
+
+
+
+
+
+
+
+
Disabled
@@ -203,6 +245,29 @@
+
+
+ MaxSpeed
+ true
+ true
+ $(OutputPath);Generated Files;..\
+ NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+
+
+
+
+
+
+
+
+
+
MaxSpeed
diff --git a/test/test_cpp20_no_sourcelocation/test_cpp20_no_sourcelocation.vcxproj b/test/test_cpp20_no_sourcelocation/test_cpp20_no_sourcelocation.vcxproj
index 85c3e1532..a7b17022c 100644
--- a/test/test_cpp20_no_sourcelocation/test_cpp20_no_sourcelocation.vcxproj
+++ b/test/test_cpp20_no_sourcelocation/test_cpp20_no_sourcelocation.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -38,6 +46,10 @@
Application
true
+
+ Application
+ true
+
Application
true
@@ -47,6 +59,11 @@
false
true
+
+ Application
+ false
+ true
+
Application
false
@@ -69,12 +86,18 @@
+
+
+
+
+
+
@@ -135,6 +158,25 @@
+
+
+ Disabled
+ $(OutputPath);Generated Files;..\
+ NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+
+
+ Console
+
+
+
+
+
+
+
+
+
+
Disabled
@@ -196,6 +238,29 @@
+
+
+ MaxSpeed
+ true
+ true
+ $(OutputPath);Generated Files;..\
+ NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+
+
+
+
+
+
+
+
+
+
MaxSpeed
diff --git a/test/test_fast/test_fast.vcxproj b/test/test_fast/test_fast.vcxproj
index c01907348..478a8023a 100644
--- a/test/test_fast/test_fast.vcxproj
+++ b/test/test_fast/test_fast.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -37,6 +45,10 @@
Application
true
+
+ Application
+ true
+
Application
true
@@ -46,6 +58,11 @@
false
true
+
+ Application
+ false
+ true
+
Application
false
@@ -68,12 +85,18 @@
+
+
+
+
+
+
@@ -130,6 +153,25 @@
+
+
+ Disabled
+ $(OutputPath);Generated Files;..\;
+ WINRT_DIAGNOSTICS;NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+
+
+ Console
+ false
+
+
+ $(CppWinRTDir)cppwinrt -in $(OutputPath)test_component_fast.winmd -out "$(ProjectDir)Generated Files" -ref sdk -verbose -fastabi
+
+
+
+
+
+
Disabled
@@ -197,6 +239,29 @@
+
+
+ MaxSpeed
+ true
+ true
+ $(OutputPath);Generated Files;..\;
+ WINRT_DIAGNOSTICS;NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+ false
+
+
+ $(CppWinRTDir)cppwinrt -in $(OutputPath)test_component_fast.winmd -out "$(ProjectDir)Generated Files" -ref sdk -verbose -fastabi
+
+
+
+
+
+
MaxSpeed
diff --git a/test/test_fast_fwd/test_fast_fwd.vcxproj b/test/test_fast_fwd/test_fast_fwd.vcxproj
index 6d049b1a9..801ec5fca 100644
--- a/test/test_fast_fwd/test_fast_fwd.vcxproj
+++ b/test/test_fast_fwd/test_fast_fwd.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -124,6 +132,30 @@
+
+
+ Disabled
+ true
+ true
+ $(CppWinRTDir);$(OutputPath);Generated Files;..\
+ stdcpp17
+ Use
+ pch.h
+ true
+ WINRT_DIAGNOSTICS;NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+
+
+ Console
+ windowsapp.lib
+
+
+ $(CppWinRTDir)cppwinrt -in $(CppWinRTDir)test_component_fast.winmd -out "$(ProjectDir)Generated Files" -ref sdk -verbose -fastabi
+
+
+
+
+
+
Disabled
@@ -192,6 +224,34 @@
+
+
+ MaxSpeed
+ true
+ true
+ true
+ true
+ $(CppWinRTDir);$(OutputPath);Generated Files;..\
+ stdcpp17
+ Use
+ pch.h
+ true
+ WINRT_DIAGNOSTICS;NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+
+
+ Console
+ true
+ true
+ windowsapp.lib
+
+
+ $(CppWinRTDir)cppwinrt -in $(CppWinRTDir)test_component_fast.winmd -out "$(ProjectDir)Generated Files" -ref sdk -verbose -fastabi
+
+
+
+
+
+
@@ -277,12 +337,18 @@
false
MultiThreaded
+
+ MultiThreaded
+
MultiThreaded
MultiThreaded
+
+ MultiThreadedDebug
+
MultiThreadedDebug
diff --git a/test/test_module_lock_custom/test_module_lock_custom.vcxproj b/test/test_module_lock_custom/test_module_lock_custom.vcxproj
index 64da0d8bc..e56b980ec 100644
--- a/test/test_module_lock_custom/test_module_lock_custom.vcxproj
+++ b/test/test_module_lock_custom/test_module_lock_custom.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -37,6 +45,10 @@
Application
true
+
+ Application
+ true
+
Application
true
@@ -46,6 +58,11 @@
false
true
+
+ Application
+ false
+ true
+
Application
false
@@ -68,12 +85,18 @@
+
+
+
+
+
+
@@ -130,6 +153,25 @@
+
+
+ Disabled
+ $(OutputPath);Generated Files;..\;
+ NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+
+
+ Console
+
+
+
+
+
+
+
+
+
+
Disabled
@@ -197,6 +239,29 @@
+
+
+ MaxSpeed
+ true
+ true
+ $(OutputPath);Generated Files;..\;
+ NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+
+
+
+
+
+
+
+
+
+
MaxSpeed
diff --git a/test/test_module_lock_none/test_module_lock_none.vcxproj b/test/test_module_lock_none/test_module_lock_none.vcxproj
index d9242a281..d2f5ce61d 100644
--- a/test/test_module_lock_none/test_module_lock_none.vcxproj
+++ b/test/test_module_lock_none/test_module_lock_none.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -37,6 +45,10 @@
Application
true
+
+ Application
+ true
+
Application
true
@@ -46,6 +58,11 @@
false
true
+
+ Application
+ false
+ true
+
Application
false
@@ -68,12 +85,18 @@
+
+
+
+
+
+
@@ -130,6 +153,25 @@
+
+
+ Disabled
+ $(OutputPath);Generated Files;..\
+ NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+
+
+ Console
+
+
+
+
+
+
+
+
+
+
Disabled
@@ -197,6 +239,29 @@
+
+
+ MaxSpeed
+ true
+ true
+ $(OutputPath);Generated Files;..\
+ NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+
+
+
+
+
+
+
+
+
+
MaxSpeed
diff --git a/test/test_slow/test_slow.vcxproj b/test/test_slow/test_slow.vcxproj
index 5b753a17a..6094681c7 100644
--- a/test/test_slow/test_slow.vcxproj
+++ b/test/test_slow/test_slow.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -37,6 +45,10 @@
Application
true
+
+ Application
+ true
+
Application
true
@@ -46,6 +58,11 @@
false
true
+
+ Application
+ false
+ true
+
Application
false
@@ -68,12 +85,18 @@
+
+
+
+
+
+
@@ -128,6 +151,24 @@
+
+
+ Disabled
+ $(OutputPath);Generated Files;..\
+ WINRT_DIAGNOSTICS;NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+
+
+ Console
+
+
+ $(CppWinRTDir)cppwinrt -in $(OutputPath)test_component_fast.winmd -out "$(ProjectDir)Generated Files" -ref sdk -verbose
+
+
+
+
+
+
Disabled
@@ -192,6 +233,28 @@
+
+
+ MaxSpeed
+ true
+ true
+ $(OutputPath);Generated Files;..\
+ WINRT_DIAGNOSTICS;NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreaded
+
+
+ Console
+ true
+ true
+
+
+ $(CppWinRTDir)cppwinrt -in $(OutputPath)test_component_fast.winmd -out "$(ProjectDir)Generated Files" -ref sdk -verbose
+
+
+
+
+
+
MaxSpeed
diff --git a/vsix/ProjectTemplates/VC/Windows Universal/BlankApp/BlankApp.vcxproj b/vsix/ProjectTemplates/VC/Windows Universal/BlankApp/BlankApp.vcxproj
index ae3d074f2..9b8d8636f 100644
--- a/vsix/ProjectTemplates/VC/Windows Universal/BlankApp/BlankApp.vcxproj
+++ b/vsix/ProjectTemplates/VC/Windows Universal/BlankApp/BlankApp.vcxproj
@@ -18,6 +18,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -30,6 +34,10 @@
Debug
x64
+
+ Release
+ ARM
+
Release
ARM64
diff --git a/vsix/ProjectTemplates/VC/Windows Universal/CoreApp/CoreApp.vcxproj b/vsix/ProjectTemplates/VC/Windows Universal/CoreApp/CoreApp.vcxproj
index 2d891ef11..839bcdc59 100644
--- a/vsix/ProjectTemplates/VC/Windows Universal/CoreApp/CoreApp.vcxproj
+++ b/vsix/ProjectTemplates/VC/Windows Universal/CoreApp/CoreApp.vcxproj
@@ -17,6 +17,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -29,6 +33,10 @@
Debug
x64
+
+ Release
+ ARM
+
Release
ARM64
diff --git a/vsix/ProjectTemplates/VC/Windows Universal/StaticLibrary/StaticLibrary.vcxproj b/vsix/ProjectTemplates/VC/Windows Universal/StaticLibrary/StaticLibrary.vcxproj
index 2afea1c00..c6e93db57 100644
--- a/vsix/ProjectTemplates/VC/Windows Universal/StaticLibrary/StaticLibrary.vcxproj
+++ b/vsix/ProjectTemplates/VC/Windows Universal/StaticLibrary/StaticLibrary.vcxproj
@@ -19,6 +19,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -31,6 +35,10 @@
Debug
x64
+
+ Release
+ ARM
+
Release
ARM64
diff --git a/vsix/ProjectTemplates/VC/Windows Universal/WindowsRuntimeComponent/WindowsRuntimeComponent.vcxproj b/vsix/ProjectTemplates/VC/Windows Universal/WindowsRuntimeComponent/WindowsRuntimeComponent.vcxproj
index da87bf2fb..c0fbd95ce 100644
--- a/vsix/ProjectTemplates/VC/Windows Universal/WindowsRuntimeComponent/WindowsRuntimeComponent.vcxproj
+++ b/vsix/ProjectTemplates/VC/Windows Universal/WindowsRuntimeComponent/WindowsRuntimeComponent.vcxproj
@@ -18,6 +18,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -30,6 +34,10 @@
Debug
x64
+
+ Release
+ ARM
+
Release
ARM64
From 2f1ad71360510bb457442a17594a6f97b6a8f55c Mon Sep 17 00:00:00 2001
From: ahmed605
Date: Sat, 1 Aug 2026 21:18:02 +0300
Subject: [PATCH 2/6] NuGet Package
---
build_nuget.cmd | 14 +++++++-------
build_prior_projection.cmd | 2 +-
build_vsix.cmd | 2 +-
...CppWinRT.nuspec => COMplicated.CppWinRT.nuspec} | 14 +++++++-------
...s.CppWinRT.props => COMplicated.CppWinRT.props} | 0
...pWinRT.targets => COMplicated.CppWinRT.targets} | 0
nuget/readme.md | 6 ++----
nuget/readme.txt | 4 ++--
8 files changed, 20 insertions(+), 22 deletions(-)
rename nuget/{Microsoft.Windows.CppWinRT.nuspec => COMplicated.CppWinRT.nuspec} (77%)
rename nuget/{Microsoft.Windows.CppWinRT.props => COMplicated.CppWinRT.props} (100%)
rename nuget/{Microsoft.Windows.CppWinRT.targets => COMplicated.CppWinRT.targets} (100%)
diff --git a/build_nuget.cmd b/build_nuget.cmd
index 1eb21d55e..71073bd81 100644
--- a/build_nuget.cmd
+++ b/build_nuget.cmd
@@ -1,13 +1,13 @@
rem @echo off
set target_version=%1
-if "%target_version%"=="" set target_version=999.999.999.999
+if "%target_version%"=="" set target_version=3.0.260715.2
-call msbuild /m /p:Configuration=Release,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
-call msbuild /m /p:Configuration=Release,Platform=x64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
-call msbuild /m /p:Configuration=Release,Platform=arm,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
-call msbuild /m /p:Configuration=Release,Platform=arm64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
+call msbuild /m /p:Configuration=Release,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd /p:WindowsTargetPlatformVersion=10.0.22621.0
+call msbuild /m /p:Configuration=Release,Platform=x64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd /p:WindowsTargetPlatformVersion=10.0.22621.0
+call msbuild /m /p:Configuration=Release,Platform=arm,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd /p:WindowsTargetPlatformVersion=10.0.22621.0
+call msbuild /m /p:Configuration=Release,Platform=arm64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd /p:WindowsTargetPlatformVersion=10.0.22621.0
-call msbuild /m /p:Configuration=Release,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:cppwinrt
+call msbuild /m /p:Configuration=Release,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:cppwinrt /p:WindowsTargetPlatformVersion=10.0.22621.0
-nuget pack nuget\Microsoft.Windows.CppWinRT.nuspec -Properties target_version=%target_version%;cppwinrt_exe=%cd%\_build\x86\Release\cppwinrt.exe;cppwinrt_fast_fwd_x86=%cd%\_build\x86\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_x64=%cd%\_build\x64\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm=%cd%\_build\arm\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm64=%cd%\_build\arm64\Release\cppwinrt_fast_forwarder.lib
+nuget pack nuget\COMplicated.CppWinRT.nuspec -Properties target_version=%target_version%;cppwinrt_exe=%cd%\_build\x86\Release\cppwinrt.exe;cppwinrt_fast_fwd_x86=%cd%\_build\x86\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_x64=%cd%\_build\x64\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm=%cd%\_build\arm\Release\cppwinrt_fast_forwarder.lib;cppwinrt_fast_fwd_arm64=%cd%\_build\arm64\Release\cppwinrt_fast_forwarder.lib
diff --git a/build_prior_projection.cmd b/build_prior_projection.cmd
index c7bdf2f64..60f4402e8 100644
--- a/build_prior_projection.cmd
+++ b/build_prior_projection.cmd
@@ -37,7 +37,7 @@ if not exist ".\.nuget" mkdir ".\.nuget"
if not exist ".\.nuget\nuget.exe" powershell -Command "$ProgressPreference = 'SilentlyContinue' ; Invoke-WebRequest https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\.nuget\nuget.exe"
mkdir %reference_output%\package
-.\.nuget\nuget.exe install Microsoft.Windows.CppWinRT -o %reference_output%\package
+.\.nuget\nuget.exe install COMplicated.CppWinRT -o %reference_output%\package
set reference_cppwinrt=
for /F "delims=" %%a in ('dir /s /b %reference_output%\package\cppwinrt.exe') DO set reference_cppwinrt=%%a
if "%reference_cppwinrt%"=="" (
diff --git a/build_vsix.cmd b/build_vsix.cmd
index 8864c7a82..460cb6ab1 100644
--- a/build_vsix.cmd
+++ b/build_vsix.cmd
@@ -31,7 +31,7 @@ call msbuild /p:Configuration=%target_configuration%,Platform=x86,Deployment=%ta
call msbuild /p:Configuration=%target_configuration%,Platform=arm64,Deployment=%target_deployment%,CppWinRTBuildVersion=%target_version% natvis\cppwinrtvisualizer.sln
rem Build nuget
-.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;target_version=%target_version% -version %target_version% -Verbosity Detailed
+.nuget\nuget.exe pack nuget\COMplicated.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;target_version=%target_version% -version %target_version% -Verbosity Detailed
rem Build vsix
call msbuild /restore /p:Configuration=%target_configuration%,Platform="Any CPU",Deployment=%target_deployment%,CppWinRTVersion=%target_version%,NugetPackageVersion=%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
diff --git a/nuget/Microsoft.Windows.CppWinRT.nuspec b/nuget/COMplicated.CppWinRT.nuspec
similarity index 77%
rename from nuget/Microsoft.Windows.CppWinRT.nuspec
rename to nuget/COMplicated.CppWinRT.nuspec
index 5f254ccb2..92a3210f5 100644
--- a/nuget/Microsoft.Windows.CppWinRT.nuspec
+++ b/nuget/COMplicated.CppWinRT.nuspec
@@ -1,19 +1,19 @@
- Microsoft.Windows.CppWinRT
+ COMplicated.CppWinRT
$target_version$
C++/WinRT Build Support
- Microsoft
- Microsoft
+ Microsoft, COMplicated
+ Ahmed605
false
C++/WinRT is a standard C++ language projection for the Windows Runtime implemented solely in header files. It allows you to both author and consume Windows Runtime APIs using any standards-compliant C++ compiler. C++/WinRT is designed to provide C++ developers with first-class access to the modern Windows API.
native C++ WinRT nativepackage
- © Microsoft Corporation. All rights reserved.
+ © Microsoft Corporation & COMplicated. All rights reserved.
LICENSE
readme.md
- https://github.com/Microsoft/cppwinrt
+ https://github.com/COM-plicated/cppwinrt
https://aka.ms/cppwinrt.ico
@@ -23,8 +23,8 @@
-
-
+
+
diff --git a/nuget/Microsoft.Windows.CppWinRT.props b/nuget/COMplicated.CppWinRT.props
similarity index 100%
rename from nuget/Microsoft.Windows.CppWinRT.props
rename to nuget/COMplicated.CppWinRT.props
diff --git a/nuget/Microsoft.Windows.CppWinRT.targets b/nuget/COMplicated.CppWinRT.targets
similarity index 100%
rename from nuget/Microsoft.Windows.CppWinRT.targets
rename to nuget/COMplicated.CppWinRT.targets
diff --git a/nuget/readme.md b/nuget/readme.md
index 16eb5d2bb..c2901f9ce 100644
--- a/nuget/readme.md
+++ b/nuget/readme.md
@@ -1,10 +1,8 @@
-# Microsoft.Windows.CppWinRT NuGet Package
+# COMplicated.CppWinRT NuGet Package
## Overview
-Please visit [Microsoft.Windows.CppWinRT](https://www.nuget.org/packages/Microsoft.Windows.CppWinRT/) for official Microsoft-signed builds of the NuGet package. See also the [C++/WinRT](https://aka.ms/cppwinrt/vsix/) VSIX, which provides C++/WinRT project templates and debug visualization.
-
-To add build support for C++/WinRT vcxproj projects, add a reference to the Microsoft.Windows.CppWinRT NuGet package. This customizes your project's build rules to automatically generate C++/WinRT projection headers, enabling you to both consume and produce Windows Runtime classes.
+To add build support for C++/WinRT vcxproj projects, add a reference to the COMplicated.CppWinRT NuGet package. This customizes your project's build rules to automatically generate C++/WinRT projection headers, enabling you to both consume and produce Windows Runtime classes.
C++/WinRT detects Windows metadata required by the project, from:
* Platform winmd files in the SDK (both MSI and NuGet)
diff --git a/nuget/readme.txt b/nuget/readme.txt
index 8d2681b6b..b25cd09ac 100644
--- a/nuget/readme.txt
+++ b/nuget/readme.txt
@@ -1,5 +1,5 @@
========================================================================
-The Microsoft.Windows.CppWinRT NuGet package automatically generates C++/WinRT projection headers,
+The COMplicated.CppWinRT NuGet package automatically generates C++/WinRT projection headers,
enabling you to both consume and produce Windows Runtime classes.
========================================================================
@@ -18,7 +18,7 @@ In addition, C++/WinRT generates templates and skeleton implementations for each
========================================================================
For more information, visit:
-https://github.com/Microsoft/cppwinrt/tree/master/nuget
+https://github.com/COM-plicated/cppwinrt/tree/master/nuget
The full documentation is also included in this package as readme.md, and
the C++20 modules guide as modules.md.
From ed5b15c4a1350ed3aa4126c3423fa673aaee15f0 Mon Sep 17 00:00:00 2001
From: ahmed605
Date: Mon, 3 Aug 2026 02:17:26 +0300
Subject: [PATCH 3/6] add option to ignore ExclusiveTo for can_produce
---
build_nuget.cmd | 2 +-
cppwinrt.sln | 8 +++
cppwinrt/helpers.h | 5 ++
cppwinrt/main.cpp | 2 +
cppwinrt/settings.h | 2 +
nuget/COMplicated.CppWinRT.targets | 1 +
nuget/CppWinrtRules.Project.xml | 5 ++
.../test_cpp20_module.vcxproj | 8 +++
test/test_nocoro/test_nocoro.vcxproj | 69 +++++++++++++++++++
9 files changed, 101 insertions(+), 1 deletion(-)
diff --git a/build_nuget.cmd b/build_nuget.cmd
index 71073bd81..cdd307596 100644
--- a/build_nuget.cmd
+++ b/build_nuget.cmd
@@ -1,7 +1,7 @@
rem @echo off
set target_version=%1
-if "%target_version%"=="" set target_version=3.0.260715.2
+if "%target_version%"=="" set target_version=3.0.260715.3
call msbuild /m /p:Configuration=Release,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd /p:WindowsTargetPlatformVersion=10.0.22621.0
call msbuild /m /p:Configuration=Release,Platform=x64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd /p:WindowsTargetPlatformVersion=10.0.22621.0
diff --git a/cppwinrt.sln b/cppwinrt.sln
index 86b7a8323..fc6431cd6 100644
--- a/cppwinrt.sln
+++ b/cppwinrt.sln
@@ -490,24 +490,32 @@ Global
{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Release|x64.Build.0 = Release|x64
{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Release|x86.ActiveCfg = Release|Win32
{D4C8F881-84D5-4A7B-8BDE-AB4E34A05374}.Release|x86.Build.0 = Release|Win32
+ {9E392830-805A-4AAF-932D-C493143EFACA}.Debug|ARM.ActiveCfg = Debug|ARM
+ {9E392830-805A-4AAF-932D-C493143EFACA}.Debug|ARM.Build.0 = Debug|ARM
{9E392830-805A-4AAF-932D-C493143EFACA}.Debug|ARM64.ActiveCfg = Debug|ARM64
{9E392830-805A-4AAF-932D-C493143EFACA}.Debug|ARM64.Build.0 = Debug|ARM64
{9E392830-805A-4AAF-932D-C493143EFACA}.Debug|x64.ActiveCfg = Debug|x64
{9E392830-805A-4AAF-932D-C493143EFACA}.Debug|x64.Build.0 = Debug|x64
{9E392830-805A-4AAF-932D-C493143EFACA}.Debug|x86.ActiveCfg = Debug|Win32
{9E392830-805A-4AAF-932D-C493143EFACA}.Debug|x86.Build.0 = Debug|Win32
+ {9E392830-805A-4AAF-932D-C493143EFACA}.Release|ARM.ActiveCfg = Release|ARM
+ {9E392830-805A-4AAF-932D-C493143EFACA}.Release|ARM.Build.0 = Release|ARM
{9E392830-805A-4AAF-932D-C493143EFACA}.Release|ARM64.ActiveCfg = Release|ARM64
{9E392830-805A-4AAF-932D-C493143EFACA}.Release|ARM64.Build.0 = Release|ARM64
{9E392830-805A-4AAF-932D-C493143EFACA}.Release|x64.ActiveCfg = Release|x64
{9E392830-805A-4AAF-932D-C493143EFACA}.Release|x64.Build.0 = Release|x64
{9E392830-805A-4AAF-932D-C493143EFACA}.Release|x86.ActiveCfg = Release|Win32
{9E392830-805A-4AAF-932D-C493143EFACA}.Release|x86.Build.0 = Release|Win32
+ {B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Debug|ARM.ActiveCfg = Debug|ARM
+ {B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Debug|ARM.Build.0 = Debug|ARM
{B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Debug|ARM64.ActiveCfg = Debug|ARM64
{B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Debug|ARM64.Build.0 = Debug|ARM64
{B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Debug|x64.ActiveCfg = Debug|x64
{B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Debug|x64.Build.0 = Debug|x64
{B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Debug|x86.ActiveCfg = Debug|Win32
{B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Debug|x86.Build.0 = Debug|Win32
+ {B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Release|ARM.ActiveCfg = Release|ARM
+ {B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Release|ARM.Build.0 = Release|ARM
{B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Release|ARM64.ActiveCfg = Release|ARM64
{B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Release|ARM64.Build.0 = Release|ARM64
{B8E3A5CE-4E91-4F27-9B02-E0CAF7E10D72}.Release|x64.ActiveCfg = Release|x64
diff --git a/cppwinrt/helpers.h b/cppwinrt/helpers.h
index 2dc152a74..7c4928a74 100644
--- a/cppwinrt/helpers.h
+++ b/cppwinrt/helpers.h
@@ -1123,6 +1123,11 @@ namespace cppwinrt
return true;
}
+ if (settings.ignore_exclusiveto)
+ {
+ return true;
+ }
+
auto interface_name = type_name(type);
auto class_name = get_attribute_value(attribute, 0).name;
auto class_type = c.find_required(class_name);
diff --git a/cppwinrt/main.cpp b/cppwinrt/main.cpp
index 33bb9248e..1aef1102d 100644
--- a/cppwinrt/main.cpp
+++ b/cppwinrt/main.cpp
@@ -43,6 +43,7 @@ namespace cppwinrt
{ "modules", 0, 0, {}, "Generate per-namespace C++20 module interface units (.ixx)" },
{ "module_include", 0, option::no_max, "", "Filter which namespaces are included in module .ixx generation" },
{ "module_exclude", 0, option::no_max, "", "Filter which namespaces are excluded from module .ixx generation" },
+ { "ignore_exclusiveto", 0, 0, {}, "Allow producing classes that inherit from ExclusiveTo interfaces" },
};
static void print_usage(writer& w)
@@ -90,6 +91,7 @@ R"( local Local ^%WinDir^%\System32\WinMetadata folder
settings.verbose = args.exists("verbose");
settings.fastabi = args.exists("fastabi");
settings.modules = args.exists("modules");
+ settings.ignore_exclusiveto = args.exists("ignore_exclusiveto");
settings.input = args.files("input", database::is_database);
settings.reference = args.files("reference", database::is_database);
diff --git a/cppwinrt/settings.h b/cppwinrt/settings.h
index 110e64917..8e3851cb3 100644
--- a/cppwinrt/settings.h
+++ b/cppwinrt/settings.h
@@ -37,6 +37,8 @@ namespace cppwinrt
std::set module_include;
std::set module_exclude;
winmd::reader::filter module_filter;
+
+ bool ignore_exclusiveto{};
};
extern settings_type settings;
diff --git a/nuget/COMplicated.CppWinRT.targets b/nuget/COMplicated.CppWinRT.targets
index a297258f3..363351e3d 100644
--- a/nuget/COMplicated.CppWinRT.targets
+++ b/nuget/COMplicated.CppWinRT.targets
@@ -26,6 +26,7 @@ Copyright (C) Microsoft Corporation. All rights reserved.
$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)))..\..\
$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)))
$(CppWinRTParameters) -fastabi
+ $(CppWinRTParameters) -ignore_exclusiveto
-modules
-module_include $(CppWinRTModuleInclude.Replace(';', ' '))
diff --git a/nuget/CppWinrtRules.Project.xml b/nuget/CppWinrtRules.Project.xml
index 43a712d21..b781e5983 100644
--- a/nuget/CppWinrtRules.Project.xml
+++ b/nuget/CppWinrtRules.Project.xml
@@ -86,6 +86,11 @@
DisplayName="Enable C++17 coroutines"
Description="Enables the /await:strict compiler option"
Category="General" />
+
+
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
diff --git a/test/test_nocoro/test_nocoro.vcxproj b/test/test_nocoro/test_nocoro.vcxproj
index 7efc28066..078e1431d 100644
--- a/test/test_nocoro/test_nocoro.vcxproj
+++ b/test/test_nocoro/test_nocoro.vcxproj
@@ -1,6 +1,10 @@
+
+ Debug
+ ARM
+
Debug
ARM64
@@ -9,6 +13,10 @@
Debug
Win32
+
+ Release
+ ARM
+
Release
ARM64
@@ -38,6 +46,10 @@
Application
true
+
+ Application
+ true
+
Application
true
@@ -47,6 +59,11 @@
false
true
+
+ Application
+ false
+ true
+
Application
false
@@ -69,12 +86,18 @@
+
+
+
+
+
+
@@ -131,6 +154,27 @@
+
+
+ Disabled
+ $(OutputPath);Generated Files;..\
+ NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreadedDebug
+ Level4
+ true
+
+
+ Console
+
+
+
+
+
+
+
+
+
+
Disabled
@@ -198,6 +242,31 @@
+
+
+ MaxSpeed
+ true
+ true
+ $(OutputPath);Generated Files;..\
+ NOMINMAX;_MBCS;%(PreprocessorDefinitions)
+ MultiThreaded
+ Level4
+ true
+
+
+ Console
+ true
+ true
+
+
+
+
+
+
+
+
+
+
MaxSpeed
From f3f101a62ae648c1f1da1bf17f769ac377e55fef Mon Sep 17 00:00:00 2001
From: ahmed605
Date: Fri, 21 Aug 2026 20:39:08 +0300
Subject: [PATCH 4/6] Add ability to specify the output WinMD file name
---
build_nuget.cmd | 2 +-
nuget/COMplicated.CppWinRT.targets | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/build_nuget.cmd b/build_nuget.cmd
index cdd307596..f8f79a425 100644
--- a/build_nuget.cmd
+++ b/build_nuget.cmd
@@ -1,7 +1,7 @@
rem @echo off
set target_version=%1
-if "%target_version%"=="" set target_version=3.0.260715.3
+if "%target_version%"=="" set target_version=3.0.260715.4
call msbuild /m /p:Configuration=Release,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd /p:WindowsTargetPlatformVersion=10.0.22621.0
call msbuild /m /p:Configuration=Release,Platform=x64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd /p:WindowsTargetPlatformVersion=10.0.22621.0
diff --git a/nuget/COMplicated.CppWinRT.targets b/nuget/COMplicated.CppWinRT.targets
index 363351e3d..13f267300 100644
--- a/nuget/COMplicated.CppWinRT.targets
+++ b/nuget/COMplicated.CppWinRT.targets
@@ -14,7 +14,8 @@ Copyright (C) Microsoft Corporation. All rights reserved.
normal
-verbose
- $(OutDir)$(RootNamespace).winmd
+ $(RootNamespace).winmd
+ $(OutDir)$(CppWinRTProjectWinMDFileName)
$(IntDir)Merged\
$(IntDir)Unmerged\
true
From 12598e92cfe8e67744664f4eb4c86f1b4fbbd2f9 Mon Sep 17 00:00:00 2001
From: ahmed605
Date: Fri, 21 Aug 2026 21:10:58 +0300
Subject: [PATCH 5/6] fix bug in CppWinRTProjectWinMDFileName handling
---
build_nuget.cmd | 2 +-
nuget/COMplicated.CppWinRT.targets | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/build_nuget.cmd b/build_nuget.cmd
index f8f79a425..7f7868a48 100644
--- a/build_nuget.cmd
+++ b/build_nuget.cmd
@@ -1,7 +1,7 @@
rem @echo off
set target_version=%1
-if "%target_version%"=="" set target_version=3.0.260715.4
+if "%target_version%"=="" set target_version=3.0.260715.5
call msbuild /m /p:Configuration=Release,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd /p:WindowsTargetPlatformVersion=10.0.22621.0
call msbuild /m /p:Configuration=Release,Platform=x64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd /p:WindowsTargetPlatformVersion=10.0.22621.0
diff --git a/nuget/COMplicated.CppWinRT.targets b/nuget/COMplicated.CppWinRT.targets
index 13f267300..29f9ced8f 100644
--- a/nuget/COMplicated.CppWinRT.targets
+++ b/nuget/COMplicated.CppWinRT.targets
@@ -593,7 +593,7 @@ $(XamlMetaDataProviderPch)
+ DestinationFiles="@(_MdMergedOutput->'$(OutDir)$(CppWinRTProjectWinMDFileName)')" />
From a44663305748e9471d8f9fd8a8f9da461337b926 Mon Sep 17 00:00:00 2001
From: ahmed605
Date: Mon, 24 Aug 2026 01:49:23 +0300
Subject: [PATCH 6/6] add WINRT_CONTAINED_STATIC_LIB for building
self-contained static libs
---
build_nuget.cmd | 2 +-
strings/base_extern.h | 31 +++++++++++++++++++++++++++----
strings/base_natvis.h | 8 ++++++++
strings/base_version.h | 6 +++++-
4 files changed, 41 insertions(+), 6 deletions(-)
diff --git a/build_nuget.cmd b/build_nuget.cmd
index 7f7868a48..0b96de07f 100644
--- a/build_nuget.cmd
+++ b/build_nuget.cmd
@@ -1,7 +1,7 @@
rem @echo off
set target_version=%1
-if "%target_version%"=="" set target_version=3.0.260715.5
+if "%target_version%"=="" set target_version=3.0.260715.6
call msbuild /m /p:Configuration=Release,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd /p:WindowsTargetPlatformVersion=10.0.22621.0
call msbuild /m /p:Configuration=Release,Platform=x64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd /p:WindowsTargetPlatformVersion=10.0.22621.0
diff --git a/strings/base_extern.h b/strings/base_extern.h
index a17908ac4..c8a182bc0 100644
--- a/strings/base_extern.h
+++ b/strings/base_extern.h
@@ -2,10 +2,33 @@
// These global function pointers must use WINRT_EXPORT (which expands to
// 'export extern "C++"' in module builds) so that module and non-module TUs
// in the same binary share the same instances.
-WINRT_EXPORT __declspec(selectany) std::int32_t(__stdcall* winrt_to_hresult_handler)(void* address) noexcept {};
-WINRT_EXPORT __declspec(selectany) winrt::hstring(__stdcall* winrt_to_message_handler)(void* address) {};
-WINRT_EXPORT __declspec(selectany) void(__stdcall* winrt_throw_hresult_handler)(std::uint32_t lineNumber, char const* fileName, char const* functionName, void* returnAddress, winrt::hresult const result) noexcept {};
-WINRT_EXPORT __declspec(selectany) std::int32_t(__stdcall* winrt_activation_handler)(void* classId, winrt::guid const& iid, void** factory) noexcept {};
+#ifdef WINRT_CONTAINED_STATIC_LIB
+static inline
+#else
+WINRT_EXPORT __declspec(selectany)
+#endif
+std::int32_t(__stdcall* winrt_to_hresult_handler)(void* address) noexcept {};
+
+#ifdef WINRT_CONTAINED_STATIC_LIB
+static inline
+#else
+WINRT_EXPORT __declspec(selectany)
+#endif
+winrt::hstring(__stdcall* winrt_to_message_handler)(void* address) {};
+
+#ifdef WINRT_CONTAINED_STATIC_LIB
+static inline
+#else
+WINRT_EXPORT __declspec(selectany)
+#endif
+void(__stdcall* winrt_throw_hresult_handler)(std::uint32_t lineNumber, char const* fileName, char const* functionName, void* returnAddress, winrt::hresult const result) noexcept {};
+
+#ifdef WINRT_CONTAINED_STATIC_LIB
+static inline
+#else
+WINRT_EXPORT __declspec(selectany)
+#endif
+std::int32_t(__stdcall* winrt_activation_handler)(void* classId, winrt::guid const& iid, void** factory) noexcept {};
#if defined(_MSC_VER)
#ifdef _M_HYBRID
diff --git a/strings/base_natvis.h b/strings/base_natvis.h
index 9e78563cb..c0a2c3116 100644
--- a/strings/base_natvis.h
+++ b/strings/base_natvis.h
@@ -84,12 +84,20 @@ WINRT_EXPORT namespace winrt::impl
};
}
+#ifdef WINRT_CONTAINED_STATIC_LIB
+static inline
+#else
extern "C"
__declspec(selectany)
+#endif
decltype(winrt::impl::natvis::abi_val) & WINRT_abi_val = winrt::impl::natvis::abi_val;
+#ifdef WINRT_CONTAINED_STATIC_LIB
+static inline
+#else
extern "C"
__declspec(selectany)
+#endif
decltype(winrt::impl::natvis::get_val) & WINRT_get_val = winrt::impl::natvis::get_val;
#ifdef _M_IX86
diff --git a/strings/base_version.h b/strings/base_version.h
index 13d21fb2a..8155c55cb 100644
--- a/strings/base_version.h
+++ b/strings/base_version.h
@@ -1,10 +1,14 @@
// WINRT_version is used by Microsoft to analyze C++/WinRT library adoption and inform future product decisions.
+#ifdef WINRT_CONTAINED_STATIC_LIB
+static inline
+#else
extern "C"
__declspec(selectany)
+#endif
char const * const WINRT_version = "C++/WinRT version:" CPPWINRT_VERSION;
-#if defined(_MSC_VER)
+#if defined(_MSC_VER) && !defined(WINRT_CONTAINED_STATIC_LIB)
#ifdef _M_IX86
#pragma comment(linker, "/include:_WINRT_version")
#else