эмм.. а как удобнее без конфигов, через cli? У меня получается три сборки - тестовая линуксовая, виндовая и линуксовая "продакшн". Их вполне удобно переключать через --config у dub.
я думал, что он работает немного по другому и если указано windows, то dub передавать ничего не нужно, а передать флаги ldc через dflags-ldc. Но работает только с --arch=x86_64-pc-windows-msvc именно для dub, в хелпе cli у dub написано - "Force a different architecture (e.g. x86 or x86_64)", мда. Но вроде бы экзешник он скомпилил. Установил в wine gtkd runtime. При запуске Library load failed (libgstreamer-1.0-0.dll): Module not found, установил GStreamer, ругается на libvte-2.91-0.dll. Как я понимаю, это эмулятор терминала и он есть в Cygwin
https://cygwin.com/packages/summary/libvte2.91_0.html, судя по зависимостям одной dll-кой не обойтись, прописано в
https://github.com/gtkd-developers/GtkD/blob/81ddb59191a19209d01247fe4180587a64446aa6/generated/vte/vte/c/functions.d#L31. Вспоминаю, что выше по чату об этой либе и проблемах с gtkd. Насколько я помню Cygwin крайне геморройный сам по себе и удаление его тоже... кгм. подхватит ли приложение эти либы в нем.