FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Windows: ship solvespace-cli in the release assets by Foadsf · Pull Request #1771 · solvespace/solvespace · GitHub

Windows: ship solvespace-cli in the release assets - #1771

Open
Foadsf wants to merge 1 commit into
solvespace:masterfrom
Foadsf:windows-release-ship-cli
Open

Foadsf wants to merge 1 commit into
solvespace:masterfrom
Foadsf:windows-release-ship-cli

Conversation

Foadsf commented Sep 7, 2026

Copy link
Copy Markdown

Fixes #1770.

The Windows release jobs already build solvespace-cli.exe — it shows up in every CD run:

solvespace-cli.vcxproj -> D:\a\solvespace\solvespace\build\bin\RelWithDebInfo\solvespace-cli.exe

but build-windows.sh renames only solvespace.exe, and each job uploads only that one path, so the CLI is discarded at the end of the build. macOS ships it inside the app bundle and Linux distributions package it; Windows is the only platform where it cannot be obtained without compiling.

This renames solvespace-cli.exe with the same suffix as the GUI binary it was built alongside, uploads it in the same artifact, and adds the four files to the release assets. No build configuration changes — the binary is already produced by the existing ENABLE_CLI default, and it is statically linked (/MT, in-tree cairo/libpng/zlib) like the GUI executable, so it needs no extra runtime files.

Verified by running the modified workflow end to end on a fork. All four Windows release jobs passed, and the windows_x86 artifact contained both binaries:

solvespace_x86.exe        8,740,864
solvespace-cli_x86.exe    7,242,752

Running that solvespace-cli_x86.exe on a clean Windows 11 machine, with nothing else installed:

> solvespace-cli_x86.exe export-view --output "%.svg" --view top demo.slvs
Written 'demo.svg'.

Happy to trim this to just the two OpenMP builds if eight Windows assets is more than you want on the release page.

The Windows release jobs already build solvespace-cli.exe alongside the GUI
executable, but only the GUI binary is renamed and uploaded, so the CLI is
discarded at the end of every release build. No official Windows download
therefore provides the command-line interface, and the GUI executable treats
its argument as a file to open rather than as CLI options, so the headless
export and thumbnail functionality documented in the README is unavailable to
Windows users unless they build from source.

Rename and upload solvespace-cli.exe next to each GUI variant it is built
with, and add the four binaries to the release assets.

ruevs commented Sep 7, 2026

Copy link
Copy Markdown
Member

Consider my comment on the issue here #1770 (comment) before deciding whether to merge this.

github-actions Bot added a commit to Foadsf/solvespace that referenced this pull request Sep 8, 2026

Copy link
Copy Markdown
Member

@Foadsf and @ruevs This is a bigger change proposal, but what if we added all the command line options to the GUI app, along with a new --headless or --nogui option? As long as the GUI is dynamically linked, this should even allow it to run headless on servers that don't have a GUI installed, and it would eliminate the need to build a separate executable for CLI use.

github-actions Bot added a commit to Foadsf/solvespace that referenced this pull request Sep 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Windows releases don't ship solvespace-cli.exe even though CI builds it

3 participants


Back | FazBrowse Home | New Git URL