Windows toolchain for Krita builds is updated to Clang 18

Hi, all!

Just in case someone on KA has a Windows development environment for Krita, here is an announcement from the mailing list about the transition of our Windows CI build from Clang-15 to Clang-18.

What does it mean for the developers (on Windows):

  1. All the dependency packages have been rebuilt with the new compiler.

  2. Your existing environments using clang-15 will continue to work, unless you try to refetch the dependencies. Don’t do that.

  3. When you decide to update, just start a new environment from scratch. You will need to download the new compiler.

  4. The chapter in the documentation has already been updated: Building Krita from Source — Krita Manual 5.2.0 documentation

One of the reasons to trigger this upgrade was the missing support for ASAN on Windows 11 in Clang 15. So now we have regular weekly Windows ASAN builds of Krita available for download :slight_smile:

The first builds after the upgrade:

https://invent.kde.org/graphics/krita/-/pipelines/798779

Instructions on how to run Krita with ASAN to get symbolizer working:

https://invent.kde.org/graphics/krita#windows-build-with-asan-in-qt-and-krita

6 Likes

Thanks, it built just fine! :+1:

Not sure if it’s just me, but the Python’s environment file, env.bat, returns a syntax error. I always have to remove this part, and then it works OK.

if %NEW_PROMPT_PREFIX% == %VIRTUAL_ENV_PROMPT% (
    exit /b 0
)

What version of Windows do you use? And do you use standard cmd.exe (supported) or powershell (non-supported)?

I use cmd.exe with the Windows Terminal console on Windows 11 24H2 (but it was the same on 23H2 as well).

Hi, @YRH!

Could you please modify the env.bat files and add quotes to both variables in comparison? Like that:

if "%NEW_PROMPT_PREFIX%" == "%VIRTUAL_ENV_PROMPT%" (
    exit /b 0
)

I guess you have some spaces in the directory name, which can cause such issues…

1 Like

Thanks, yes, that fixes it.

After looking at the variables, it was just because the VIRTUAL_ENV_PROMPT is initially empty, so it would yield a malformed test like this (“krita-dev” is my development directory, it’s the last element of the path):

if (krita-dev) == (
    exit /b 0
)

The double quotes fix the syntax error.

1 Like