What does “contains all tools and libraries” mean on the installation page Download | Graphviz ? Is the .exe missing tools or libraries? Which ones? Is there an advantage to the .exe version that might cause one to prefer it despite lacking tools or libraries?
Graphviz has two build systems on Windows, MS Build and CMake. There are currently differences in what they produce (the MS Build one is more complete) and that text is meant to relate to this.
Having said that I think this is both confusing to users and also inaccurate. @mark for the 11.0.0 release, the 32-bit link is to an MS Build artifact and the 64-bit link is to a CMake artifact, despite both being marked “contains all tools and libraries”. The changes here were intentional, but I think we’re now in an incorrect state where a CMake artifact has “contains all tools and libraries” next to it. What do you think we should do about this?
Though the CMake build system has a little ways to go before it hits parity with Autotools, we may almost be there with MS Build. We should audit both, survey the remaining Gitlab issues on this and see if we can put this confusing stuff to bed once and for all.
I’ve already started to survey this for MSBuild and intend to plug the remaining holes in the CMake build system on Windows.
A quick comparison between the produced .exe and .dll files from both build systems shows that the only parts that exist in the MSBuild builds, but not in the CMake ones are:
smyrna.exe
and some of it’s dependencies:freeglut.dll
gvprlib.dll
libatk-1.0-0.dll
and it’s dependency:libgtk-win32-2.0-0.dll
ANN.dll
(needed bymingle.exe
)
All missing 3rd party parts are available through vcpkg except ANN.dll, but we have an x86 copy of it in windows/dependencies/libraries/x86/bin/ANN.dll
.
From what I can see in the tests, there doesn’t seem to be anything else missing in the CMake builds.
I think it should be doable to plug these holes without too much fuzz.
If this lets us delete MSBuild once and for all, hallelujah.
Perhaps we don’t need to build smyrna with CMake before deleting MSBuild after all since it’s unusable anyway due to smyrna fails to start because of missing DLLs in Windows MSBuild builds (#1829) · Issues · graphviz / graphviz · GitLab?
Does anyone ever use smyrna? It was a good effort at the time, but may not have much of an audience.
We discussed this in flip Smyrna default to disabled in the Autotools build system (!2083) · Merge requests · graphviz / graphviz · GitLab. I’m still weakly in favor of keeping it.
I’m also weakly in favour of keeping it. But we could leave it omitted from the CMake build system and see who starts to complain as the CMake build system becomes the default. One way of doing an existence test for users.
My guess is there are no users. From a pkgs.org search, very few distros offer it.