Project

General

Profile

[logo] 
 
Home
About/Contact
Major Tools
  Dinotrace
  Verilator
  Verilog-mode
  Verilog-Perl
Other Tools
  IPC::Locker
  Parallel::Forker
  Voneline
General Info
  Papers

Issue #1655

Build support for Windows.

Added by Kuba Ober 5 months ago. Updated 5 months ago.

Status:
Assigned
Priority:
Normal
Assignee:
Category:
Configure/Make/Compiling
% Done:

70%

Estimated time:
5.00 h

Description

I've got a successful MSVC build using Cmake on Windows. The CMakeFile.txt is small and is meant to build successfully on all other platforms we support, but I have not done any checking there yet.

I am not proposing dropping the existing autoconf-based build system, just maintaining Cmake as an alternative - it's quite straightforward and no ugly hacks are needed. I volunteer to maintain that build system on all platforms we can get CI for (and steadfastly refuse dealing with manual builds). The free AppVeyor tier should cover popular Linux, MacOS and Windows.

Right not it's only the build support, but of course a complete solution would also run the test suite and coverage. I have had success using codecov on GitHub, so that's something I would like to include, although it should be its own issue (I didn't even check if something like codecov already runs on this repo).

There will be several PRs that introduce the small changes need for this to work, but thankfully it's all fairly minimal.

I opened this issue to allow discussion ahead of dropping the pull requests.

Motivation on my end for doing this: I have a CPU emulator that runs on Windows and macOS that has to "talk to" simulated logic that I'd much rather write in Verilog than C++. Then other people could then work on it, and many EEs have better grasp of Verilog than C++ (I'm not happy with my C++ on half the days either).

History

#1 Updated by Wilson Snyder 5 months ago

  • Status changed from New to Assigned

I think this is an excellent addition esp if you can support it.

If there are pieces that can be separated out that would be good, for example maybe the linux CMake build support can be separate.

I think you're suggesting adding Windows continuous integration; I think that would be important given most of the contributors don't usen Windows.

Once cmake is stable for ~~4-6 months we can consider making it the default, then after another few releases removing autoconf. (Talking only of building Verilator; I suspect we'll want to support the Verilated makefiles long term.)

#2 Updated by Kuba Ober 5 months ago

The good news is that the codebase is so clean that CMake build support has almost no Windows-specific cruft and will tackle all target platforms at once, it seems. Verilator is about the easiest Windows "port" I've ever attempted. Kudos.

PRs:

  1. https://github.com/verilator/verilator/pull/9 (fix on-point warning in V3AstNodes.h)
  2. PRs #10 is obsolete.
  3. PR #11 is not ready yet. (do not use variable-length auto array extension)
  4. https://github.com/verilator/verilator/pull/12 (implement missing platform support for Windows)

Also available in: Atom