zig c++ is claimed to be a drop in compiler replacement for MSVC.
It is based on LLVM (and is reportedly like Clang with better defaults).
Numerous (hopefully minor) changes to the sDNA C++ code have been made on this branch to facilitate compilation using zig c++, but unfortunately these caused a regression in one of the tests, using the existing MSVC build chain (after including the #include stdafx.hs in MuParser). The dll produced using zig C++ has not yet been tested at all
The sDNA CMakelists.txt is used to set up Zig and Ninja, by pulling in a modified version of Duncan Ogilvie's example CMake Toolchain for Zig: https://github.com/mrexodia/zig-cross (in zigcross-cmake)
Previous mainstream releases of sDNA have been using MSVC header files to access the Windows API, to dynamically link to geos_c.dll. By default zig c++ targets Windows using the header files from MinGW-w64 instead of Microsoft's.
A Win32 dll has not been produced yet. Ninja takes the arch from the env, not during config (i.e. not from CMake). When running MSVC builds via Ninja, this is possibly as simple to fix as running vcvarsall.bat Win32 before hand. Equivalent steps that will work with zig c++ need to be found.
zig c++
is claimed to be a drop in compiler replacement for MSVC. It is based on LLVM (and is reportedly like Clang with better defaults).zig c++
, but unfortunately these caused a regression in one of the tests, using the existing MSVC build chain (after including the#include stdafx.h
s in MuParser). The dll produced usingzig C++
has not yet been tested at allzigcross-cmake
)zig c++
targets Windows using the header files from MinGW-w64 instead of Microsoft's.zig c++
need to be found.