Windows ARM64 support for CMake projects in Visual Studio
In Visual Studio 2019 version 16.9 Preview 3 we added support for deploying CMake projects to a remote Windows machine and debugging them with the Visual Studio remote tools. CMake developers targeting ARM64 Windows can now cross-compile (with cl or clang-cl), deploy, and debug their projects directly from Visual Studio. You can download and install the latest preview of Visual Studio here.
For step-by-step instructions of this workflow, check out the Tutorial: Debug a CMake project on a remote Windows machine. This tutorial is specific to ARM64 development, but the steps can be generalized for other Windows architectures. An overview of the new feature set is below.
Before you get started, you will need to install the ARM64 build tools on your host machine. In this scenario, your host machine is the machine where you are building and where Visual Studio is installed. You will also need to install and configure the remote tools on your target machine. In this scenario, your target machine is the ARM64 Windows machine where you will be running and debugging your program.
Install the latest version of the ARM64 build tools on your host machine.
Cross-compile CMake projects for ARM64
You can now add a new CMake configuration of type arm64-Debug or arm64-Release to the CMake Settings Editor. You can also modify existing CMake configurations to build with the msvc_arm64_x64, clang_cl_arm64_x64, msvc_arm64, or clang_cl_arm64 toolset. arm64_x64 toolsets select 64-bit host tools to cross-compile for ARM64, and arm64 toolsets select 32-bit host tools to cross-compile for ARM64.
Debug CMake projects on a remote Windows machine
Add a new debug configuration of type C/C++ Remote Windows Debug to launch.vs.json to debug your project on a remote Windows machine. You will need to set the value of remoteMachineName to the IP address of your remote ARM64 machine that hosts the remote tools. You may also need to update the value of authenticationType to match the authentication mode set on your remote machine. For more information and a sample launch.vs.json file, check out the remote debugging tutorial.
Note: Visual Studio’s support for remote Linux development requires you to add an SSH connection to your remote machine in the Connection Manager. Remote Windows deployment does not require you to use the Connection Manager because it communicates over the Windows remote debugger (msvsmon.exe) instead of SSH.
When you run the application, Visual Studio will cross-compile locally on your host system, deploy the application to your remote Windows machine, and start debugging the application on the remote machine. You can set breakpoints and utilize Visual Studio’s debugging features as if you were debugging locally on your host system.
Give us your feedback
Download Visual Studio 2019 version 16.9 Preview 3 today and give it a try. We’d love to hear from you to help us prioritize and build the right features for you. We can be reached via the comments below, Developer Community, and Twitter (@VisualC). The best way to file a bug or suggest a feature is via Developer Community.