C++ development on Windows just got a lot easier

Hi All,

I just wanted to share that icpp-pro 3.0.0 was released today, and the main focus of this release was to make true on our promise to create a nice dev environment for Windows.

It took a ton of effort, but it is working really nice now:

  • We already could build the wasm with wasi-sdk without any issues. It is a cross platform SDK, and we have it embedded inside icpp for a long time.
  • We can now also build a native debug executable with clang++, which is cross platform. We use the pre-build mingw version of clang++ and we had to overcome some hurdles. It is working great now. You can build the native Windows executable in your PowerShell, and debug your Smart Contract with VS Code.
  • smoke-testing of deployed canisters is done with pytest. This is also cross platform and the main thing to figure out was how to invoke dfx which we use inside icpp for a lot of things, using pre-defined pytest fixtures, for things like identity setting, verifying the network is up, and making the actual canister calls that we want to test:
    • I ended up using the same python subprocess calls we use on Linux & Mac, but now with a special format of the command. They look like [“powershell.exe”, “Command”, “wsl --% dfx canister …etc”], and then it all works just flawlessly. The PowerShell and wsl integration is very strong.
    • the smoke tests are run using different pre-defined pytest fixtures, where the test first logs in with a certain identity, so you can test authentication logic.
    • There is also a fixture to run against the local network or the main network.

Also, besides those internals, here is a PowerShell script that is an equivalent of this Bash script for the same canister.

I am giving a presentation/demo on this on Wednesday, for those of you who are part of the dev group. Hope to see you there.

1 Like