I sucessfully configured with clang-cl (and then got warnings and errors almost immediately - on a fresh copy of Ardour)
All that’s needed to successfully configure (after getting dependencies) from a fresh copy of Ardour:
& "C:\Program Files\Microsoft Visual Studio\18\Community\Common7\Tools\Launch-VsDevShell.ps1" -Arch amd64
cd C:\dev\ardour
$env:CC = "clang-cl.exe"
$env:CXX = "clang-cl.exe"
$env:PKG_CONFIG_PATH = "C:\dev\vcpkg\installed\x64-windows\lib\pkgconfig"
python waf configure --prefix=C:/Ardour2 --configdir=share --optimize --ptformat --dist-target=msvc --also-include=C:\dev\vcpkg\installed\x64-windows\include,C:\dev\vcpkg\installed\x64-windows\include\sigc++-2.0 --also-libdir=C:\dev\vcpkg\installed\x64-windows\lib --cxx17
Configure output:
Setting top to : C:\dev\ardour
Setting out to : C:\dev\ardour\build
Checking for 'msvc' (C compiler) : clang-cl.exe
Checking for 'msvc' (C++ compiler) : clang-cl.exe
Checking for program 'CL' : C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.50.35717\bin\HostX64\x64\CL.exe
Checking for program 'CL' : clang-cl.exe
Checking for program 'MT' : C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\\x64\MT.exe
Global Configuration
* Install prefix : C:/Ardour2
* Debuggable build : False
* Build documentation : False
Ardour Configuration
* Will build against private GTK dependency stack : no
* Will rely on libintl built into libc : yes
* Will build against private Ardour dependency stack : no
Checking for boost library >= 1.68 : yes
Checking for program 'pkg-config' : C:\Strawberry\perl\bin\pkg-config.bat
Checking for 'glib-2.0' >= 2.28 : yes
Checking for 'gthread-2.0' >= 2.2 : yes
Checking for 'glibmm-2.4' >= 2.32.0 : yes
Checking for 'sndfile' >= 1.0.18 : yes
Checking for 'giomm-2.4' >= 2.2 : yes
Checking for 'libcurl' >= 7.0.0 : yes
Checking for 'libarchive' >= 3.0.0 : yes
Checking for 'liblo' >= 0.26 : yes
Checking for 'taglib' >= 1.9 : yes
Checking for 'vamp-sdk' >= 2.1 : yes
Checking for 'vamp-hostsdk' >= 2.1 : yes
Checking for 'rubberband' : yes
Checking for 'libusb-1.0' >= 1.0.16 : yes
Checking for rubberband >= 3.0.0 : yes
Checking for sndfile RF64=>RIFF support : Found
Checking for int128 support : lots of bits found.
Checking for 'jack' >= 1.9.10 : yes
Checking for clang : yes
Checking for compiler flags ['-std=c++17'] : yes
Warning: you are building Ardour with SSE support even though your system does not support these instructions. (This may not be an error, especially if you are a package maintainer)
Checking for 'fftw3f' : yes
Checking for library setupapi : yes
Checking for 'aubio' >= 0.3.2 : yes
Checking for 'aubio' >= 0.4.0 : yes
Checking for 'gobject-2.0' : yes
Checking for 'gio-2.0' >= 2.2 : yes
Checking for 'libpng' : yes
Checking for header unistd.h : not found
Checking for 'pango' >= 1.20 : yes
Checking for 'cairo' >= 1.12 : yes
Checking for 'pangocairo' : yes
Checking for 'gio-windows-2.0' : yes
Checking for header unistd.h : not found
Checking for 'gmodule-2.0' : yes
Checking for header unistd.h : not found
Checking for 'sigc++-2.0' >= 2.0 : yes
Checking for 'cairomm-1.0' >= 1.8.4 : yes
Checking for 'pangomm-1.4' >= 1.4 : yes
Checking for 'lv2' >= 1.16.0 : yes
Checking for 'libxml-2.0' : yes
Checking for header execinfo.h : not found
Checking for header unistd.h : not found
Checking for function 'posix_memalign' in stdlib.h : no
Checking for function 'getmntent' in mntent.h : no
Checking for function 'localtime_r' in time.h : no
Checking for library ole32 : yes
Checking for 'cppunit' >= 1.12.0 : not found
Checking for header cwiid.h : not found
You are missing the cwiid headers needed to compile wiimote support
Checking for 'libwebsockets' >= 2.0.0 : yes
Checking for 'jack' >= 1.9.10 : yes
Checking for JACK metadata API : ok
Checking for jack_port_rename() : ok
Checking for 'portaudio-2.0' >= 19 : yes
Checking for header pa_asio.h : not found
Checking for program 'gas, gcc' : C:\Strawberry\c\bin\gcc.exe
Checking for program 'ar' : C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.50.35717\bin\HostX64\x64\LIB.exe
Checking for 'lrdf' >= 0.4.0 : not found
Checking for 'samplerate' >= 0.1.0 : yes
Checking for 'lv2' >= 1.2.0 : yes
Checking for 'lv2' >= 1.10.0 : yes
Checking for 'lv2' >= 1.17.2 : yes
Checking for 'lv2' >= 1.18.6 : yes
Checking for 'serd-0' >= 0.14.0 : yes
Checking for 'sord-0' >= 0.8.0 : yes
Checking for 'sratom-0' >= 0.2.0 : yes
Checking for 'lilv-0' >= 0.24.2 : yes
Checking for 'ogg' >= 1.1.2 : yes
Checking for 'flac' >= 1.2.1 : yes
Checking for 'fftw3f' >= 3.3.5 : yes
Checking for header sys/vfs.h : not found
Checking for header sys/statvfs.h : not found
Checking for header unistd.h : not found
Checking for 'ioprio_set' syscall support : no
Checking for header boost/ptr_container/ptr_list.hpp : yes
Checking for library gdi32 : yes
Checking for 'samplerate' >= 0.1.7 : yes
Checking for 'lv2' >= 1.0.0 : yes
Checking for 'cairo' >= 1.12.0 : yes
Checking for 'gthread-2.0' >= 2.10.1 : yes
Checking for 'x11' >= 1.1 : not found
Checking for 'pangoft2' >= 1.36.8 : yes
Checking for 'fontconfig' : yes
Checking for header stdio.h readline/readline.h : not found
* build session-utils : yes
Checking for library gdi32 : yes
* Build documentation : False
* Debuggable build : False
* Export all symbols (backtrace) : False
* Install prefix : C:/Ardour2
* Strict compiler flags : []
* Internal Shared Libraries : True
* Use External Libraries : False
* Library exports hidden : True
* Free/Demo copy : False
* ALSA DBus Reservation : False
* Architecture flags : None
* ARM NEON support : False
* Aubio : True
* AudioUnits : False
* Build target : msvc
* Canvas Test UI : False
* Beatbox test app : False
* CoreAudio : False
* Debug RT allocations : False
* Debug Symbols : False
* Denormal exceptions : False
* Dr. Mingw : False
* FLAC : True
* FPU optimization : True
* FPU AVX512F support : False
* FPU AVX/FMA support : False
* Futex Semaphore : False
* Freedesktop files : False
* G_ENABLE_DEBUG : False
* I/O Priority Set : False
* Libjack linking : link
* Libjack metadata : True
* Lua Binding Doc : False
* Lua Commandline Tool : False
* LV2 UI embedding : True
* LV2 support : True
* LV2 extensions : True
* LXVST support : False
* Mac VST support : False
* NI-Maschine : False
* OGG : True
* Phone home : True
* Program name : Ardour
* Samplerate : True
* PT format : True
* PTW32 Semaphore : False
* Threaded WaveViews : True
* Translation : True
* Unit tests : False
* Use LLD linker : False
* VST3 support : True
* Windows VST support : True
* Wiimote support : False
* Windows key : Mod4><Super
* PortAudio Backend : True
* CoreAudio/Midi Backend : False
* ALSA Backend : False
* Dummy backend : True
* JACK Backend : True
* PulseAudio Backend : False
* Buildstack : -system-
* Mac i386 Architecture : False
* Mac ppc Architecture : False
* Mac arm64 Architecture : False
* C compiler flags : ['-IC:\\dev\\ardour', '/nologo', '/nologo', '/nologo', '-DHAVE_RF64_RIFF', '-DPLATFORM_WINDOWS', '-DCOMPILER_MSVC', '-DUSE_CAIRO_IMAGE_SURFACE', '-DCOMPILER_INT128_SUPPORT', '-DWAF_BUILD', '-DNDEBUG', '-fshow-column', '-O3', '-fomit-frame-pointer', '-ffast-math', '-pipe', '-DARCH_X86', '-Wall', '-Wpointer-arith', '-Wcast-qual', '-Wcast-align', '-Wno-unused-parameter', '-Wno-deprecated-declarations', '-DBOOST_SYSTEM_NO_DEPRECATED', '-D_ISOC9X_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', '-DPROGRAM_NAME="Ardour"', '-DPROGRAM_VERSION="9"', '-Wstrict-prototypes', '-Wmissing-prototypes', '-D_POSIX_C_SOURCE=200809L']
* C++ compiler flags : ['-IC:\\dev\\ardour', '/nologo', '/nologo', '/nologo', '-DHAVE_RF64_RIFF', '-DPLATFORM_WINDOWS', '-DCOMPILER_MSVC', '-DUSE_CAIRO_IMAGE_SURFACE', '-DCOMPILER_INT128_SUPPORT', '-DWAF_BUILD', '-DNDEBUG', '-fshow-column', '-O3', '-fomit-frame-pointer', '-ffast-math', '-pipe', '-DARCH_X86', '-Wall', '-Wpointer-arith', '-Wcast-qual', '-Wcast-align', '-Wno-unused-parameter', '-Wno-deprecated-declarations', '-DBOOST_SYSTEM_NO_DEPRECATED', '-D_ISOC9X_SOURCE', '-D_LARGEFILE64_SOURCE', '-D_FILE_OFFSET_BITS=64', '-DPROGRAM_NAME="Ardour"', '-DPROGRAM_VERSION="9"', '-std=c++17', '-DBOOST_NO_AUTO_PTR', '-Woverloaded-virtual', '-Wno-mismatched-tags', '-Wno-cast-align', '-Wno-unused-local-typedefs', '-Wunneeded-internal-declaration', '-D__STDC_LIMIT_MACROS', '-D__STDC_FORMAT_MACROS', '-DCANVAS_DEBUG', '-DBOOST_ERROR_CODE_HEADER_ONLY']
* Linker flags : ['/nologo', '/MANIFEST', '/nologo', '/MANIFEST', '/nologo', '/MANIFEST']
'configure' finished successfully (34.021s)
Note that I didn’t have to use $env:AS = … because I had installed Strawberry ages ago to install one of those 4 dependencies, which apparently has gas to pass that gas/gcc check. Also: I didn’t edit the wscript at all.
So: Should clang/clang++ be used instead, or a combo of --dist-target=msvc and clang-cl? clang-cl uses MSVC’s flags, based on what I’ve read online.
And should we start a new Post on the forum? I was thinking something like “Building with Clang (From VS 2026) on Windows”, if so.