Strawberry is a music player and a music collection organizer. It is a fork of Clementine originally released in 2018 and aimed at music collectors and audiophiles. It's written in C++ using the Qt toolkit.
Currently, only Linux binaries are available for free and macOS and Windows users must either subscribe on Patreon or build it from source. I am therefore building my own binaries of Strawberry on Windows using Microsoft Visual C++ (MSVC) and making my build configuration and artifacts available here.
I make no guarantees about the functionality of these builds, though I test them on Windows 10 & Windows 11 systems before uploading to GitHub to ensure Strawberry starts and can play audio.
These builds rely on the Microsoft Visual C++ redistributable to run. This should install automatically when using the NSIS installer. If it doesn't, you can get the latest redistributable from the Microsoft website.
Strawberry Project Β β’Β Official Strawberry Website Β β’Β Jonas Kvinge (Strawberry maintainer)
Strawberry's source code is licenced under the GNU GPLv3.
- PowerShell 7.6.3
- Git for Windows 2.55.0.3
- Qt 6 build tools for VS2022
- CMake 4.4.0
- Meson Build 1.11.2
- Ninja 1.13.0
- NASM 3.02
- Strawberry Perl 5.42.2
- Python 3.14.6
- 7-Zip 26.02
- WinFlex 2.6.4
- WinBison 3.7.4
- Rust Compiler 1.97.1
- NSIS 3.12
- LockedList Plugin (DigitalMediaServer fork) 3.1.0.0
- Registry Plugin 4.2
- Internet Client Plugin (DigitalMediaServer fork) 1.0.5.7
- Windows 10 Enterprise LTSC 10.0.19044.0 on Hyper-V assigned with:
- 8c Intel 9th Gen @ 4.8 GHz, 8-64 GB dynamically allocated RAM @ 3600 MT/s
- 64 GB boot disk, 32 GB RAM disk for staging/build targets
- Visual Studio 2022 Community 17.14.36
- C++ core module
- MSVC 14.44.35211.0 x64/x86
- C++ ATL for MSVC v143
- JIT debugger
- C++ profiling tools
- C++ CMake tools for Win64
- C++ AddressSanitizer
- Windows 11 SDK 10.0.22621.7
- vcpkg manager
- Windows 10 IoT Enterprise LTSC 10.0.19044.0 on ARMv8-A Development SBC with:
- 8c Kryo 280 Gold @ 2.2 GHz, 8 GB LPDDR4X @ 1866 MT/s
- 48 GB UFS 2.1 boot disk, 32 GB NTFS UAS build disk
- Visual Studio Build Tools 2022 17.14.36
- MSVC 14.44.35211.0 x64/x86
- MSVC 14.44.35211.0 ARM64/ARM64EC
- C++ ATL for MSVC v143 ARM64
- Windows 11 SDK 10.0.22621.7
- x64 and ARM64 releases are built with precompiled dependencies from strawberry-msvc-dependencies, while x86 releases are built with all dependencies from scratch.
- The build functions for from-scratch build dependencies are in Build-Strawberry.ps1.
The debug builds rely on the MSVC debug libraries and you should have the correct Visual Studio 2022 MSVC build tools and Windows SDK installed:
- MSVC v143 - VS 2022 C++ x64/x86 build tools (Latest)
- Windows 11 SDK (10.0.22621.0)
You can run the Copy-DebugDependencies.ps1 script to copy debug libraries into the Strawberry debug installation folder. To copy these manually, find all DLL files at the following paths:
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\<version>\debug_nonredist\<arch>\*C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.UniversalCRT.Debug\<sdk>\Redist\Debug\<arch>\*
Where <arch> is x64 or x86 matching your Strawberry archive download name, <version> is 14.44.35211 or similar, and <sdk> is 10.0.22621.0 or similar.
* means you should find all DLL files in every sub-folder under these paths.
The files you need are:
concrt140d.dllmsvcp140_1d.dllmsvcp140_2d.dllmsvcp140d_atomic_wait.dllmsvcp140d_codecvt_ids.dllmsvcp140d.dllvccorlib140d.dllvcruntime140_1d.dllvcruntime140_threadsd.dllvcruntime140d.dllucrtbased.dll
Install VS Build Tools 2022:
Open a CMD or PowerShell window and navigate to where you downloaded the build tools installer and run:
.\vs_buildtools.exe --wait --passive --installPath C:\vstools --add Microsoft.VisualStudio.Component.VC.14.44.17.14.x86.x64 --add Microsoft.VisualStudio.Component.Windows11SDK.22621You can replace C:\vstools with a path of your choosing. The needed DLL files can then be found at:
C:\vstools\VC\Redist\MSVC\14.44.35112\debug_nonredist\<arch>\*C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.UniversalCRT.Debug\10.0.22621.0\Redist\Debug\<arch>\*
The build scripts are derived from the original download.bat and build.bat scripts in the strawberry-msvc-build-tools repository (these have now moved to PowerShell π), as well as the build workflow from the main repository.
These scripts apply the same patches to the Strawberry dependencies as found in the strawberry-msvc-dependencies repo, plus a few tweaks here and there to make sure they compile in my build environment.
No changes are made to the Strawberry source code.
Each dependency and Strawberry itself are compiled in a separate function in the build script, with the build strategy defined near the end (search for '#region Build Strategy').
This downloads and merges the dependency versions from the StrawberryPackageVersions.txt and build workflow files to create an up-to-date dependency mapping in plain text. This is read by the dependency collector and build scripts to download and compile the correct versions.
The version file used in the latest build (release or unstable) is kept in the repository for your reference.
This script is derived from the download.bat script and retrieves the dependency versions as specified in a version file (see Get-Versions.ps1). In addition, it can perform cleanup of old/non-dependency files in the target directory and verifies the integrity of downloaded dependency archives (where hashes or digital signatures are present for that version). It supports syncing specific commits or branch heads of the Git-based dependencies for version-pinning.
If you pass -FromScratch to the script, all needed dependency sources are downloaded so they can be built from scratch.
Otherwise, only additional dependencies and build tools are downloaded, plus the precompiled dependencies from strawberry-msvc-dependencies.
This is the main build script and consists primarily of individual functions for building each dependency, and then Strawberry itself. It uses an ordered dictionary to call each build function in a loop until all dependencies are satisfied, before building Strawberry.
If you downloaded the precompiled dependencies by calling Get-Dependencies.ps1 without the -FromScratch switch, you can call this script without -FromScratch to use these and just build Strawberry.
This script is for use with debug builds. It copies the debug MSVC and Windows SDK libraries from Visual Studio 2022 into the Strawberry debug installation directory, in case you are debugging Strawberry on a different computer without VS2022.