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)\