Skip to content

Switch to Clang 17 compiler for Windows workflow builds#323

Merged
Chris-AC9KH merged 2 commits into
JS8Call-improved:masterfrom
Chris-AC9KH:pr/workflow
Jun 9, 2026
Merged

Switch to Clang 17 compiler for Windows workflow builds#323
Chris-AC9KH merged 2 commits into
JS8Call-improved:masterfrom
Chris-AC9KH:pr/workflow

Conversation

@Chris-AC9KH

@Chris-AC9KH Chris-AC9KH commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Add Vulkan headers on the runner for Windows build
add CMake versioning to Windows workflow
update Windows workflow path for new optimized library package
update Windows workflow with separate CI and Release scripts

@wmiler, since you are very busy and it would be nice to have the Windows workflow working I thought I could help out with this. I got rid of all the complex CI/Release logic and broke it down into two scripts. The CI one runs as before and does not mess with code signing. It is only for PR's and push actions to make sure the code builds.

The Release one is run manually when we want to create a Release build, otherwise it has no trigger.

Fixes #297

Add Vulkan headers on the runner for Windows build
add CMake versioning to Windows workflow
update Windows workflow path for new optimized library package
update Windows workflow with separate CI and Release scripts
@Chris-AC9KH Chris-AC9KH requested a review from wmiler June 9, 2026 00:21
@Chris-AC9KH Chris-AC9KH added the administration administration of JS8Call-improved project label Jun 9, 2026
@Chris-AC9KH

Chris-AC9KH commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator Author

@wmiler tested the clang-built JS8Call and Windows installer that this PR spit out and it worked beautifully, complete with being versioned with the git hash like it should.

One note on the Release script - I removed the continue on fail with code signing. A Release build should not be done without signing it, so if signing fails the script will exit instead of spitting out an unsigned build.

- Change both Mac and Windows workflows to v7 with archive: false to
prevent zipping the artifact
@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

@wmiler I changed the Mac workflow to use Xcode and use CMake versioning, and drop the runner_arch. And switched the upload artifact step to v7 for both so it doesn't zip the artifacts anymore

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

@wmiler I'm sure you're busy and the new workflows run beautifully. MacOS is the fastest one with Xcode at 2m 39sec. Windows is still the slowest, but that's inherent with the Windows platform. But we still cut the runner time significantly with this change. Both Windows and Mac now use our native CMake versioning for the artifacts.

I could attack the linux one. But I might break something there because that one is most complex. And maybe we want to create two different scripts - one for Release and one for CI like I did for Windows. The Release one COULD call and run the new script in tools to create a .deb as well as AppImage.

Anyway, I'm going to merge this because it works. It kinda killed your other PR, but I figured you were busy so I'll help out on this one for the stuff I'm familiar with.

@Chris-AC9KH Chris-AC9KH merged commit 4bf36c9 into JS8Call-improved:master Jun 9, 2026
4 checks passed
@Chris-AC9KH Chris-AC9KH deleted the pr/workflow branch June 9, 2026 12:08
@wmiler

wmiler commented Jun 9, 2026

Copy link
Copy Markdown
Collaborator

Curiosity question, why is Vulcan now a requirement?

Also, you'll need to add the workflow_dispatch back in, otherwise we can't run it from the Actions page. You also need the inputs->environment to the workflow_dispatch, no other parts (release-ver or build-type) are needed.

edit: for ci-windows

@Chris-AC9KH

Copy link
Copy Markdown
Collaborator Author

@wmiler I fixed the workflow dispatch so they should appear on the Actions page now.

The Vulkan headers are required on Windows for certain graphics drivers. Without them you'll get a warning from the compiler that Vulkan driver support is disabled in Qt. It is actually the same on linux.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

administration administration of JS8Call-improved project

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Question: Windows compiler switch

2 participants