System information
- SolveSpace version: 3.2, and master @ 952c11c
- Operating system: Windows 11 24H2
Expected behavior
A Windows user can download solvespace-cli from the releases page, as on macOS (it is bundled inside SolveSpace.app in SolveSpace.dmg, and sign-macos.sh signs it) and on Linux (distribution packages and the snap both provide it). README.md documents build/bin/solvespace-cli.exe as a Windows build product, and the CLI is the only way to reach export-view, export-wireframe, export-mesh, export-surfaces and thumbnail without the GUI.
Actual behavior
No official Windows download contains a CLI binary. The v3.2 assets are:
solvespace_x86.exe solvespace_single_core_x86.exe
solvespace_x64.exe solvespace_single_core_x64.exe
SolveSpace.dmg solvespace-3.2.tar.xz
All four executables are the GUI. src/platform/entrygui.cpp treats a trailing argument as a file to open, so passing CLI options to them gives Couldn't read file from '--version' (#903).
WinGet and Scoop both pull solvespace_x86.exe straight from this release, so the CLI is missing from those channels too. Building from source is currently the only way for a Windows user to get it.
Additional information
The binary is already built by the release jobs and then discarded. From the Build Release Windows (OpenMP) x86 job of the most recent CD run on master:
solvespace-cli.vcxproj -> D:\a\solvespace\solvespace\build\bin\RelWithDebInfo\solvespace-cli.exe
.github/scripts/build-windows.sh renames only solvespace.exe, and each Windows job in .github/workflows/cd.yml uploads only that single path, so solvespace-cli.exe is left behind in the build directory.
It is statically linked (/MT, in-tree cairo/libpng/zlib) exactly like the GUI executable, so shipping it needs no extra runtime files — I ran one from a CI artifact on a clean Windows 11 machine and exported an SVG with it successfully.
I have a small patch for build-windows.sh and cd.yml and will open a PR.
System information
Expected behavior
A Windows user can download solvespace-cli from the releases page, as on macOS (it is bundled inside SolveSpace.app in SolveSpace.dmg, and sign-macos.sh signs it) and on Linux (distribution packages and the snap both provide it). README.md documents build/bin/solvespace-cli.exe as a Windows build product, and the CLI is the only way to reach export-view, export-wireframe, export-mesh, export-surfaces and thumbnail without the GUI.
Actual behavior
No official Windows download contains a CLI binary. The v3.2 assets are:
All four executables are the GUI. src/platform/entrygui.cpp treats a trailing argument as a file to open, so passing CLI options to them gives Couldn't read file from '--version' (#903).
WinGet and Scoop both pull solvespace_x86.exe straight from this release, so the CLI is missing from those channels too. Building from source is currently the only way for a Windows user to get it.
Additional information
The binary is already built by the release jobs and then discarded. From the Build Release Windows (OpenMP) x86 job of the most recent CD run on master:
.github/scripts/build-windows.sh renames only solvespace.exe, and each Windows job in .github/workflows/cd.yml uploads only that single path, so solvespace-cli.exe is left behind in the build directory.
It is statically linked (/MT, in-tree cairo/libpng/zlib) exactly like the GUI executable, so shipping it needs no extra runtime files — I ran one from a CI artifact on a clean Windows 11 machine and exported an SVG with it successfully.
I have a small patch for build-windows.sh and cd.yml and will open a PR.