build(cmake): support MSVC toolchains#1110
Conversation
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
10d5878 to
a618721
Compare
a618721 to
616f4ee
Compare
c301498 to
8e9cdc6
Compare
Keep Linux, macOS, and MinGW behavior unchanged while adding native MSVC compiler, dependency, export, and test configuration. Configure LAPACKE complex types before MSVC consumes the OpenBLAS headers. Co-Authored-By: OpenAI Codex <codex@openai.com>
def374a to
1fc237f
Compare
|
Caution The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1fc237fa81
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| set(_cytnx_had_bla_vendor FALSE) | ||
| endif() | ||
| set(BLA_VENDOR "@BLA_VENDOR@") | ||
| find_dependency(LAPACK REQUIRED) |
There was a problem hiding this comment.
Re-find LAPACKE for installed OpenBLAS targets
When a Windows build uses the default OpenBLAS backend, this re-finds only LAPACK, while CytnxBKNDCMakeLists.cmake:162 still publicly links the build-time ${LAPACK_LIBRARIES} and ${LAPACKE_LIBRARIES} without the BUILD_INTERFACE guard used by the MKL path. Consequently, after the Pixi/build environment is removed or the installation is relocated, CytnxTargets.cmake still references the old .lib paths; appending LAPACK::LAPACK neither removes those paths nor guarantees the separately discovered LAPACKE symbols. Make the Windows OpenBLAS link entries build-only and resolve LAPACKE in the consumer environment as well. CLAUDE.mdL105-L106
Useful? React with 👍 / 👎.
Stack
#1109 → #1110 → #1116 → #1117 → #1118 → #1119 → #1113
This is the first split layer and remains based on #1109. Review only this PR's CMake/compiler portability diff; Pixi, CUDA dispatch, wheel packaging, release metadata, and workflow integration are isolated in the later PRs.
Summary
Type.cppthroughlapacke_config.hso MSVC does not parse LAPACK 3.11 C99 complex declarations.The
__blasINTsize__global is otherwise unused internally; its planned removal and the eventual deletion of this temporaryType.cppheader dependency are tracked in #1115.Linux and macOS
All new platform behavior is guarded by
WIN32/MSVCor preserves the prior non-Windows branch. The previous full stack passed macOS 14, macOS 15 Intel, Ubuntu x86-64, and Ubuntu ARM wheel jobs; the split will rerun those checks independently.Validation
Type.cpp.obj;lapack_wrapper.hppconsumer (Complexmem_cpu.cpp.obj) also compiles;Part of #1114.