diff options
| author | ruki <[email protected]> | 2025-04-07 22:29:36 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-04-07 22:29:36 +0800 |
| commit | 27ddfdbacc8e4aa63b014586a8326f453541ebca (patch) | |
| tree | 40a260c16c8d82fd0d988112499454f63f7db5ed /xmake/rules | |
| parent | a5cf700f8d01fea3b9e19523a024698cb35cb9d5 (diff) | |
| parent | c4d40d3641dc2d2219e41deb9d6482f87e082ffb (diff) | |
Merge pull request #6281 from TimeKeepper/verilator
feat(verilator): Support Verilator target build to shared library
Diffstat (limited to 'xmake/rules')
| -rw-r--r-- | xmake/rules/verilator/xmake.lua | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/xmake/rules/verilator/xmake.lua b/xmake/rules/verilator/xmake.lua index 76d213096..4e6f49397 100644 --- a/xmake/rules/verilator/xmake.lua +++ b/xmake/rules/verilator/xmake.lua @@ -73,3 +73,29 @@ rule("verilator.static") import("verilator").buildcmd_cppfiles(target, batchcmds, sourcebatch, opt) end) +rule("verilator.shared") + add_deps("c++") + set_extensions(".v", ".sv") + on_load(function (target) + target:set("kind", "shared") + end) + + on_config(function (target) + import("verilator").config(target) + end) + + before_build_files(function (target, sourcebatch) + -- Just to avoid before_buildcmd_files being executed at build time + end) + + on_build_files(function (target, batchjobs, sourcebatch, opt) + import("verilator").build_cppfiles(target, batchjobs, sourcebatch, opt) + end, {batch = true, distcc = true}) + + before_buildcmd_files(function(target, batchcmds, sourcebatch, opt) + import("verilator").buildcmd_vfiles(target, batchcmds, sourcebatch, opt) + end) + + on_buildcmd_files(function (target, batchcmds, sourcebatch, opt) + import("verilator").buildcmd_cppfiles(target, batchcmds, sourcebatch, opt) + end) |
