Fix CMake installs for C++-only builds - #519
Conversation
|
Hi @jeongseok-meta, I don't think it would be a good idea to release "inferior" packages without stubs that are produced by cross-compiling. The stub generation process fundamentally requires the ability to build on the platform that can import the compiled wheels. I think that fixing this by building on a wider set of platforms will address most of the issues you are pursuing here. |
866f794 to
f532b51
Compare
|
Thanks for the feedback. I moved the stub issue out of this PR. conda-forge/drjit-cpp-feedstock#49 now builds macOS ARM packages natively, and CI confirmed that the Python 3.10–3.13 packages include the generated stubs. I've narrowed this PR to the C++ install fixes: handling no-JIT builds, using standard library destinations when Python is disabled, preserving the existing Python package layout, and installing the required I tested no-JIT and LLVM C++ installs with external |
f532b51 to
5e66e86
Compare
Motivation
C++-only and header-only builds should install a conventional CMake package:
Installing public
drjit-coreheaders without JIT is intentionally handled separately in #527. This PR corresponds to conda-forge's0002-Fix-install-destination-paths.patch. Once this change is included in an upstream release, the feedstock can remove that patch.Changes
drjit-core,drjit-extra, andnanothreadtarget installation withDRJIT_ENABLE_JIT.CMAKE_INSTALL_BINDIRandCMAKE_INSTALL_LIBDIRwhen Python is disabled.drjit/library layout when Python is enabled.This PR does not move public headers or change Python stub generation or installation.
Testing
git diff --checkdrjit-core,drjit-extra, andnanothreadunderlib/, notdrjit/.find_package(drjit)consumer built successfully; the installed-header smoke test and live LLVM test both passed.drjitanddrjit.autoimported, a live LLVM calculation passed, all generated stubs were installed, and libraries remained underdrjit/.