Cmake incremental builds improvement#1586
Conversation
|
Deleted rendered PR docs from intelpython.github.com/dpctl, latest should be updated shortly. 🤞 |
|
Array API standard conformance tests for dpctl=0.17.0dev0=py310h15de555_70 ran successfully. |
| if (SKBUILD) | ||
| set(_lib_destination dpctl) | ||
| set(_include_destination dpctl/include/syclinterface) | ||
| set(_include_destination ${CMAKE_INSTALL_PREFIX}/unused) |
There was a problem hiding this comment.
What is this change doing?
There was a problem hiding this comment.
Avoiding that syclinterface header, which are copied to dpctl/include/syclinterface as part of build step be overwritten by the install. The install just puts them in _skbuild/*/cmake-install/unused folder, and setuptools does not copy them into the Python layout, and instead copies files from dpctl/include/syclinterface like intended.
There was a problem hiding this comment.
Then why is this step needed all together? Will it not work, if the line is completely removed?
There was a problem hiding this comment.
This value is used in subsequent 3 install commands.
Removing this line would require moving these install commands inside if/else branch. It would make the script longer, but it can be done
f01bc83 to
787524c
Compare
|
Array API standard conformance tests for dpctl=0.17.0dev0=py310h15de555_107 ran successfully. |
Installing them updates time-stamps on the files, and incremental rebuild is always rebuilding, even though no files are changed. With this change repeated invocation of `python scripts/build_locally.py` is effectively a no-op.
787524c to
fd1d43c
Compare
|
Array API standard conformance tests for dpctl=0.17.0dev0=py310h15de555_118 ran successfully. |
Avoid installing header files which are formed during building steps.
During installation the files are not changed, but timestamps get updated prompting incremental cmake build to do full build instead.