-
Notifications
You must be signed in to change notification settings - Fork 9
Add support for macOS #64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds macOS support and improves cross-platform compatibility across the codebase. The changes focus on replacing Linux-specific constructs with platform-agnostic alternatives and adding conditional logic for macOS-specific configurations.
- Replaces
<bits/stdc++.h>with specific standard library headers for better portability - Adds macOS-specific build configurations (rpath, linker flags, library suffixes)
- Introduces platform detection and shared library suffix handling (
get_shared_lib_suffix())
Reviewed Changes
Copilot reviewed 47 out of 48 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| template/python/cmake/verilator.cmake | Added macOS rpath support and moved rpath configuration from link options to CMAKE_BUILD_RPATH |
| template/python/Makefile | Updated to use platform-agnostic shared library suffix variable |
| template/python/CMakeLists.txt | Changed from generic Python to Python3 package and added macOS rpath logic |
| template/mem_direct/gen_addr.hpp | Replaced bits/stdc++.h with specific standard headers |
| template/mem_direct/Makefile | Added macOS-specific linker flags and unified LDFLAGS/LDLIBS usage |
| template/lib/dut_base.hpp | Replaced bits/stdc++.h with specific standard headers |
| template/lib/dut_base.cpp | Added macOS-specific dlopen logic and replaced get_current_dir_name with std::filesystem |
| template/lib/cmake/verilator.cmake | Added AppleClang-specific force_load linker flags |
| template/lib/Makefile | Made nproc command cross-platform compatible |
| template/java/dut.java | Updated library suffix handling and improved error message |
| template/java/cmake/verilator.cmake | Added macOS rpath support and consolidated rpath configuration |
| template/java/CMakeLists.txt | Added macOS-specific rpath configuration |
| template/cpp/cmake/verilator.cmake | Added macOS rpath support and undefined symbol handling |
| template/cpp/Makefile | Updated to use platform-agnostic shared library suffix |
| template/cpp/CMakeLists.txt | Removed PARENT_SCOPE from variable settings and fixed C++17 standard flag |
| src/picker.cpp | Added explicit includes for codegen and parser headers |
| src/parser/parser_map.cpp | Added explicit includes for parser headers |
| src/codegen/*.cpp | Replaced bits/stdc++.h with specific headers and renamed replace_all to str_replace_all |
| src/appimage/configuration.cpp | Removed non-portable header includes |
| include/*.hpp | Replaced bits/stdc++.h with specific headers and improved platform detection macros |
| Makefile | Made nproc command cross-platform compatible |
| example/*.cpp | Replaced bits/stdc++.h with specific standard headers |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
05c6c7b to
b2d9433
Compare
…_all` to `include/picker.hpp::str_replace_all`
b2d9433 to
c7d2843
Compare
Description
Add picker support for macOS
Type of change
Please delete options that are not relevant.