[slang-verilog] Add new port (version 10.0) - #50214
Conversation
|
Thanks for the contribution! As we mentioned in #50176, this port installs a CMake package called slang, but the existing vcpkg must follow upstream CMake package names exactly, so we can’t rename or override the package name on our side. The maintainer guide only allows unofficial -unofficial configs when upstream provides no CMake package at all, which isn’t the case here. Because both ports currently provide the same CMake package name, they can’t coexist in the registry. I will open an issue upstream asking how these two libraries are intended to coexist, or whether they would consider providing distinct package names or aliases. Once upstream clarifies their intended naming, we can update the port accordingly. |
|
I've opened an issue with upstream MikePopoloski/slang#1710 |
|
I'm going to place in draft while we wait on upstream guidance |
|
Please link the issue on shader slang as well, thanks for managing this! |
|
We've established as slang-verilog on conda: https://github.com/conda-forge/slang-verilog-feedstock |
Signed-off-by: Tim Paine <3105306+timkpaine@users.noreply.github.com>
12b5299 to
43a7e6f
Compare
Billy O'Neal (BillyONeal)
left a comment
There was a problem hiding this comment.
GPT 5.6 Sol reports:
The port still conflicts with
shader-slangby exportingslangConfig.cmakeandslang::slang. Moving files undershare/slang-verilogdoes not disambiguate the package or target. Upstream approvedslang-verilogandslang-verilog::slang.
[...]
Upstream explicitly approved a disambiguatedslang-verilogconfig and aslang-verilog::slangtarget in that discussion. The current PR does not implement either. Merely moving the first project's config undershare/slang-verilogdoes not change the CMake package filename or exported target identity
[...]
usagerecommendsslang::slang_slang, but the installed export createsslang::slang. Configuring the documented example failed:Target "slang_usage_consumer" links to: slang::slang_slang but the target was not found.
vcpkg print-usage slang-verilog:x64-windows-static --generatedcorrectly identifiedslang::slang, so the custom file should at minimum be removed in favor of generated usage. The final usage must instead reflect the disambiguated package/target required by the preceding finding.
I'm not sure about this part but I'm repeating it here because it might be helpful for you:
AnalysisManager.hpublicly includesBS_thread_pool.hppwhenSLANG_USE_THREADSis exported, but the port neither installs that header nor declaresbshoshany-thread-pool. The bundled copy is also used during compilation, leaving an undeclared public dependency and vendored third-party code.This is observable in an ordinary CMake consumer:
.../include/slang/analysis/AnalysisManager.h(11): fatal error C1083: Cannot open include file: 'BS_thread_pool.hpp': No such file or directoryThe bundled
external/BS_thread_pool.hppis also used to compile slang itself (SourceLoader.cpp) and is a well-known third-party library already packaged asbshoshany-thread-pool. This conflicts with the [registry] rule against building with vendored third-party code.
Owner-Projectform.vcpkg.json, or explicitly disabled through patches or build system arguments such as CMAKE_DISABLE_FIND_PACKAGE_Xxx or VCPKG_LOCK_FIND_PACKAGEvcpkg.jsonmatches what upstream says.vcpkg.jsonmatches what upstream says../vcpkg x-add-version --alland committing the result.