Skip to content

Fix CI: modernize Windows build and deduplicate triggers#5

Open
robtaylor wants to merge 123 commits intomainfrom
fix-ci
Open

Fix CI: modernize Windows build and deduplicate triggers#5
robtaylor wants to merge 123 commits intomainfrom
fix-ci

Conversation

@robtaylor
Copy link
Copy Markdown
Owner

Summary

  • Replace ancient .dsw project upgrade approach with CMake + MSYS2/MinGW on Windows
  • Use the same CMake build system as posix builds, with mingw-w64 toolchain
  • Update Windows runner from windows-2019 to windows-latest
  • Restrict push triggers to main/master branches only across all workflows, keeping pull_request triggers for all branches

This prevents duplicate CI runs when pushing to a branch with an open PR, and fixes the Windows build which was broken due to the VS6-era .dsw file not upgrading properly on newer Visual Studio versions.

Test plan

  • Posix builds pass (make + CMake, Ubuntu + macOS)
  • Windows CMake+MSYS2 build passes on windows-latest
  • Only pull_request events fire for PR branches (no duplicate push runs)

xobs and others added 30 commits May 1, 2020 08:25
The `make clean` target consists of a single `rm` call that passes every
generated file, object file, and dependency directory.  This results in
a command line that's around 53,800 characters long.

On Linux, the maximum length of a command line is 131,072 or 262,144
characters, however on Windows the limit is 32,768.

The 53,800 character command simply fails to run on Windows, which is a
problem when the first command that gets run is `make clean`.

Break this target into steps, first removing the output files, then the
object files, then any generated garbage, and then the object depedency
directories.

This fixes `make clean` (and as a result yosys) on Windows.

Signed-off-by: Sean Cross <sean@xobs.io>
Since cmdCheckShellEscape doesn't actually report failure in any way,
this code simulates a situation where system() never succeeds.
Add missing WASI platform support for signal.h
Surround $(CC), $(CXX) with double quotes when calling depends.sh, to allow space-delimited compilation tools to be used.
Makefile: support ccache for compiling ABC.
Abort on OOM since there are no C++ exceptions yet.

Signed-off-by: Miodrag Milanovic <mmicko@gmail.com>
On platforms such as Android, legacy macros are no longer defined.
Hence, we define them in terms of the new POSIX macros if the new ones are defined. Otherwise, we throw an error.

Signed-off-by: Mohamed A. Bamakhrama <mohamed@alumni.tum.de>
Signed-off-by: Miodrag Milanovic <mmicko@gmail.com>
Signed-off-by: Miodrag Milanovic <mmicko@gmail.com>
Abort on OOM since there are no C++ exceptions yet.
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
Integrate write_cex and cexinfo and some fixes in write_cex output code
Integrate write_cex and cexinfo and some fixes in write_cex output code
Added read_cex command
Make read_cex able to append if some latches are missing
@robtaylor robtaylor force-pushed the fix-ci branch 10 times, most recently from aa8ae96 to 344acc1 Compare February 22, 2026 23:21
- Use stdatomic.h on MinGW instead of MSVC Interlocked functions.
  MinGW defines _WIN32 but has <stdatomic.h> unlike MSVC. Fix guards
  in utilPth.c and sswPart.c.
- Exclude -ldl and -lrt from link libraries on MINGW/MSYS platforms,
  as these Unix-only libraries don't exist on MinGW.
- Add -lshlwapi on MINGW/MSYS for PathMatchSpec used in sclLiberty.c.

Co-developed-by: Claude Code v2.1.50 (claude-opus-4-6)
- Replace ancient .dsw project upgrade approach with CMake + MSYS2/MinGW
  on Windows, using the same CMake build system as posix builds
- Use MSYS2 with mingw-w64 toolchain for reliable GNU make + GCC support
- Use ABC_USE_STDINT_H=1 and -DWIN32 -DWIN32_NO_DLL to handle MinGW
  platform quirks (32-bit long on 64-bit Windows, missing WIN32 macro)
- Update Windows runner from windows-2019 to windows-latest
- Restrict push triggers to main/master branches only across all
  workflows, keeping pull_request triggers for all branches

Co-developed-by: Claude Code v2.1.50 (claude-opus-4-6)
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.