Repository navigation
feat: build and run HAL natively on Windows (MSYS2/UCRT64) - #677
Open
horhulenko wants to merge 1 commit into
Open
horhulenko wants to merge 1 commit into
horhulenko wants to merge 1 commit into
Conversation
This branch has not been deployed
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
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
HAL now builds and runs natively on Windows, no WSL involved.
It's MSYS2 (UCRT64) with the usual CMake + Ninja, plus
-DUSE_VENDORED_PYBIND11=OFFbecause the bundled pybind11 is a bit too old for current Python. CLI, Python and the GUI all work, also from a folder with something likeüin its path (learned that one the hard way).I built it on Ubuntu 24.04 with all plugins and tests, all 42 tests pass (run one at a time,
-jtrips over a few on master too) and netlists come out identical to master. So Linux/WSL version is unaffected by this PR.Three of the GUI bugs live on Linux too, Linux is just too polite to crash on them. When the GUI meets a plugin it hasn't seen before, it loads it once to read its info and then unloads it again along with its dependencies (
gui_plugin_manager.cpp). Fordot_viewerand a couple of others that dependency ishal_gui, so the GUI unloads itself in the middle of the scan. ThenremovePlugin()incontent_manager.cpponly takesdot_viewer's factory off the list and never deletes it, so it stays registered as a project serializer and the next project open or save calls into a plugin that is already gone. AndnewProject()infile_manager.cppforgets to load the gate library parser before loading the gate library. That last one is the same fix as #655, so whichever PR goes in second can just drop it.And #656 works now, no bridge required. With
QT_USE_NATIVE_WINDOWS=1ShareX snaps to the docked panels.