Jump to content

Get Involved/development/Windows

From KDE Community Wiki

KDE Craft is a tool to build the sources and its third-party requirements. It is the easy way to build software.

A screen recording version is available https://www.youtube.com/watch?v=38QE543bnb0 https://www.youtube.com/watch?v=CmEZfjm3Jl8

System requirements

The versions of Microsoft Windows operating system (OS) that are still supported by Microsoft include Windows Server greater than or equal to 2016 and Windows greater than or equal to 10. See https://endoflife.date/windows

Setting up KDE Craft

Installing python

While Craft is capable of installing an embedded Python version sufficient for most packages, we recommend a full installation of Python. The recommended Python versions are 3.12 or 3.11 from https://www.python.org .

Setting up a compiler

Currently, Craft supports both the MinGW and Microsoft Visual Studio (msvc) compiler. While MinGW can be installed by Craft, Visual Studio must be installed independently by the user.

Please note that in case you or the package you are a trying to build needs QtWebEngine, you'll have to use Visual Studio(!). MinGW is not supported.

If you want to use Microsoft Visual Studio, KDE Craft Qt5 uses Visual Studio 2019, KDE Craft Qt6 uses Visual Studio 2022.

E.g. Microsoft Visual Studio Community 2019. Possible download links https://learn.microsoft.com/en-us/visualstudio/releases/2019/history

E.g. Microsoft Visual Studio Community 2022. Possible download links https://visualstudio.microsoft.com/vs/community/

When installing Microsoft Visual studio please install the workload "Desktop development with C++". This workload installs the individual components "C++ ATL" and "Windows SDK".

Enable development mode

The Windows operating system supports the creation of symbolic links, but only if "Developer Mode" is activated. Allowing symbolic links allows faster (much faster) extraction of archives. Enable "Developer Mode" in Windows Settings.

Check system locale

In case of build issues you may want to switch the system locale of the machine to English US and utf-8. To do so, you can use `intl.cpl`. Use the administrative tab and switch the system locale to the desired value.

Installing Craft

  1. Start Windows PowerShell (Do not use PowerShell ISE, it doesn't work very well with python). It might be required to start Windows PowerShell elevated as administrator.
  2. Allow execution of powershell scripts by executing the following command:
    Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
    Select the option "[A] Yes to All".
  3. If you have installed Python for Windows, you will probably have HTTPS certificate errors.
    python.exe -m pip install --upgrade certifi
    If "python.exe" is not found (see the PATH environment variable), you can try with "py.exe" instead. I.e.:
    py.exe -m pip install --upgrade certifi
  4. Install Craft and follow the instructions by executing the following command:
    iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/KDE/craft/master/setup/install_craft.ps1'))
    By default KDE Craft will use two directories:
    C:\CraftRoot\ This is the KDE Craft root directory.
    C:\_\ Note: the name of this directory is the character underscore.
  5. Performance. Configure your antivirus to exclude the entire Craft root directory (C:\CraftRoot\). Otherwise some packages can fail to build (e.g. build of kde/frameworks/tier2/kdoctools when AVG is used). E.g. if this a Windows 11 Pro virtual machine and you want maximum performance you can open "Edit group policy" > Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components > Microsoft Defender Antivirus > Turn off Microsoft Defender Antivirus > Enabled. You can also disable automatic Windows updates, open "Edit group policy" > Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components > Windows Update > Manage end user experience > Configure Automatic Updates > Disabled. Open "Windows Defender Firewall with Advanced Security" and turn off all 3 firewall profiles.

Using Craft

To use Craft, start Windows PowerShell and run the initialization script.

C:\CraftRoot\craft\craftenv.ps1

This tells Craft about your environment settings (e.g. paths). It will load your configuration from CraftRoot\etc\CraftSettings.ini. If there are any error messages Craft will not work as expected. The output should look similar to this one (of course with your paths):

Craft               : C:\CraftRoot
ABI                 : windows-cl-msvc2022-x86_64
Download directory  : C:\CraftRoot\download
Cache repository    : https://files.kde.org/craft/Qt6/24.10/windows/cl/msvc2022/x86_64

Then start crafting

Troubleshooting

If craft seems stalled for prolonged period of time, you may want need hit Enter in the PowerShell terminal to give it a nudge.

Download Windows

You can download Microsoft Windows 11 from https://www.microsoft.com/software-download/windows11

Download the .ISO file. Then install it in a virtual machine. One way to do this is using the virtualization software "Virtual Machine Manager". A screen recording version is available https://www.youtube.com/watch?v=CmEZfjm3Jl8

Virtual Machines

If you don't have a Windows operating system installation - not to worry! Grab one of Microsoft's VM for development.

  • Get the "Windows development environment" Windows VM https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/ . This VM comes with Visual Studio 2022 pre-installed. @sitter suggests this.
  • Import into VM software + install guest addons if necessary and applicable.
  • In Windows start menu search for 'Visual Studio Installer' and start it. Follow the instructions from the chapter "Setting up a compiler" above.

Advanced

Setup Visual Studio 2022 with Chocolatey

  • choco install -y visualstudio2022buildtools --package-parameters "--add  Microsoft.VisualStudio.Component.VC.ATL"
  • choco install -y visualstudio2022-workload-vctools visualstudio2022-workload-nativedesktop visualstudio2022-workload-manageddesktopbuildtools

Setup Visual Studio 2019 with Chocolatey

  • choco install -y visualstudio2019buildtools --package-parameters "--add  Microsoft.VisualStudio.Component.VC.ATL"
  • choco install -y visualstudio2019-workload-vctools visualstudio2019-workload-nativedesktop visualstudio2019-workload-manageddesktopbuildtools
  • choco install -y windows-sdk-10