diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 5e2677fed..d565b976b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -61,10 +61,10 @@ jobs:
run: |
cmd /c "$env:VSDevCmd" "&" msbuild /m /clp:ForceConsoleColor "$env:msbuild_config_props" cppwinrt.sln /t:fast_fwd
- - name: Build x86 prebuild tool
+ - name: Build x64 prebuild tool
if: matrix.arch == 'arm64'
run: |
- cmd /c "$env:VSDevCmd" "&" msbuild /m /clp:ForceConsoleColor "$env:msbuild_config_props" /p:Platform=x86 cppwinrt.sln /t:cppwinrt
+ cmd /c "$env:VSDevCmd" "&" msbuild /m /clp:ForceConsoleColor "$env:msbuild_config_props" /p:Platform=x64 cppwinrt.sln /t:cppwinrt
- name: Build cppwinrt
run: |
@@ -97,7 +97,7 @@ jobs:
compiler: [MSVC, clang-cl]
arch: [x86, x64, arm64]
config: [Debug, Release]
- test_exe: [test, test_nocoro, test_cpp20, test_cpp20_no_sourcelocation, test_cpp20_module, test_fast, test_slow, test_old, test_module_lock_custom, test_module_lock_none]
+ test_exe: [test, test_nocoro, test_cpp20, test_cpp20_no_sourcelocation, test_cpp20_module, test_cpp23, test_fast, test_slow, test_old, test_module_lock_custom, test_module_lock_none]
toolchain:
- image: windows-2025-vs2026
platform_toolset: v145
@@ -122,12 +122,12 @@ jobs:
name: msvc-build-${{ matrix.compiler}}-${{ matrix.arch }}-${{ matrix.config }}-${{ matrix.toolchain.platform_toolset }}-bin
path: _build/${{ matrix.arch }}/${{ matrix.config }}/
- - name: Fetch x86 cppwinrt executables (arm64 only)
+ - name: Fetch x64 cppwinrt executables (arm64 only)
if: matrix.arch == 'arm64'
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
- name: msvc-build-${{ matrix.compiler}}-x86-Release-${{ matrix.toolchain.platform_toolset }}-bin
- path: _build/x86/Release/
+ name: msvc-build-${{ matrix.compiler}}-x64-Release-${{ matrix.toolchain.platform_toolset }}-bin
+ path: _build/x64/Release/
- name: Download nuget
run: |
@@ -183,7 +183,7 @@ jobs:
$target_platform = "${{ matrix.arch }}"
$cppwinrt_path = "_build\$target_platform\$target_configuration\cppwinrt.exe"
if ($target_platform -eq "arm64") {
- $cppwinrt_path = "_build\x86\Release\cppwinrt.exe"
+ $cppwinrt_path = "_build\x64\Release\cppwinrt.exe"
}
& $cppwinrt_path -in local -out _build\$target_platform\$target_configuration -verbose
@@ -378,7 +378,9 @@ jobs:
- name: Run nuget test
run: |
- cmd /c "$env:VSDevCmd" "&" msbuild /m /clp:ForceConsoleColor "$env:msbuild_config_props" test\nuget\NugetTest.sln
+ $target_configuration = "${{ matrix.config }}"
+ $target_platform = "${{ matrix.arch }}"
+ cmd /c "$env:VSDevCmd" "&" msbuild /m /clp:ForceConsoleColor "/p:CppWinRTPath=$(Resolve-Path "_build\$target_platform\$target_configuration")\" "$env:msbuild_config_props" test\nuget\NugetTest.sln
build-nuget:
name: Build nuget package with MSVC
diff --git a/Directory.Build.Props b/Directory.Build.Props
index 5972803c0..d965343a2 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\x64\$(Configuration)\
diff --git a/build_nuget.cmd b/build_nuget.cmd
index 99e193311..7fb76ecb0 100644
--- a/build_nuget.cmd
+++ b/build_nuget.cmd
@@ -7,6 +7,7 @@ call msbuild /m /p:Configuration=Release,Platform=x86,CppWinRTBuildVersion=%targ
call msbuild /m /p:Configuration=Release,Platform=x64,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
+call msbuild /m /p:Configuration=Release,Platform=x64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:cppwinrt
+call msbuild /m /p:Configuration=Release,Platform=arm64,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_amd64=%cd%\_build\x64\Release\cppwinrt.exe;cppwinrt_exe_arm64=%cd%\_build\arm64\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
diff --git a/build_vsix.cmd b/build_vsix.cmd
index 0a47f6bd6..989c219fc 100644
--- a/build_vsix.cmd
+++ b/build_vsix.cmd
@@ -12,7 +12,7 @@ if "%target_deployment%"=="" set target_deployment=Standalone
if not exist ".\.nuget" mkdir ".\.nuget"
if not exist ".\.nuget\nuget.exe" powershell -Command "Invoke-WebRequest https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile .\.nuget\nuget.exe"
-call .nuget\nuget.exe restore cppwinrt.sln"
+call .nuget\nuget.exe restore cppwinrt.sln
call .nuget\nuget.exe restore natvis\cppwinrtvisualizer.sln
call .nuget\nuget.exe restore test\nuget\NugetTest.sln
@@ -21,8 +21,9 @@ call msbuild /m /p:Configuration=%target_configuration%,Platform=x86,CppWinRTBui
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=arm64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:fast_fwd
-rem Build cppwinrt.exe for x86 only
-call msbuild /m /p:Configuration=%target_configuration%,Platform=x86,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:cppwinrt
+rem Build cppwinrt.exe for x64 and arm64
+call msbuild /m /p:Configuration=%target_configuration%,Platform=x64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:cppwinrt
+call msbuild /m /p:Configuration=%target_configuration%,Platform=arm64,CppWinRTBuildVersion=%target_version% cppwinrt.sln /t:cppwinrt
rem Build cppwinrt visualizer dll for x86, x64, and arm64
call msbuild /p:Configuration=%target_configuration%,Platform=x64,Deployment=%target_deployment%,CppWinRTBuildVersion=%target_version% natvis\cppwinrtvisualizer.sln
@@ -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_amd64=%this_dir%\_build\x64\Release\cppwinrt.exe;cppwinrt_exe_arm64=%this_dir%\_build\arm64\Release\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
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/Microsoft.Windows.CppWinRT.nuspec
index 52151fc08..313ed31fc 100644
--- a/nuget/Microsoft.Windows.CppWinRT.nuspec
+++ b/nuget/Microsoft.Windows.CppWinRT.nuspec
@@ -18,7 +18,8 @@
-
+
+
diff --git a/nuget/Microsoft.Windows.CppWinRT.targets b/nuget/Microsoft.Windows.CppWinRT.targets
index a297258f3..a68e3c498 100644
--- a/nuget/Microsoft.Windows.CppWinRT.targets
+++ b/nuget/Microsoft.Windows.CppWinRT.targets
@@ -30,7 +30,10 @@ Copyright (C) Microsoft Corporation. All rights reserved.
-modules
-module_include $(CppWinRTModuleInclude.Replace(';', ' '))
$(CppWinRTCommandModuleFilter) -module_exclude $(CppWinRTModuleExclude.Replace(';', ' '))
- "$(CppWinRTPackageDir)bin\"
+ $(PROCESSOR_ARCHITECTURE)
+
+ x64
+ "$(CppWinRTPackageDir)bin\$(CppWinRTExeArch)\"
"$(CppWinRTPackageDir)"
diff --git a/test/nuget/Directory.Build.props b/test/nuget/Directory.Build.props
index a54887b1e..c0084eb0d 100644
--- a/test/nuget/Directory.Build.props
+++ b/test/nuget/Directory.Build.props
@@ -23,7 +23,7 @@
$(IntDir)Generated Files\
high
$(Platform)
- x86
+ x64
$(SolutionDir)..\..\_build\$(CppWinRTPlatform)\$(Configuration)\