feat(pixi-build-cmake): 改进对仅包含头文件的库的自动输入检测
作者: lucascolley创建于 2026年9月20日更新于 2026年9月21日
标签enhancementarea:buildpixi-build-cmake
一个仅包含头文件的 C++ 库,例如使用 cmake 可以添加如下内容:
add_library(xsf INTERFACE)
target_include_directories(xsf
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
install(
TARGETS xsf
EXPORT xsfTargets
)
install(
DIRECTORY include/
DESTINATION include
)这样就可以将这些头文件包含在输出包中了:
│ │ 包中的文件:
│ │ ├─ include/xsf/agm.h (2.21 KiB)
│ │ ├─ include/xsf/airy.h (16.45 KiB)
│ │ ├─ include/xsf/alg.h (235 B)
...理想情况下,对这些头文件进行更改会自动使缓存的构建无效。然而,由于对于这种仅包含头文件的包,没有从这些头文件中编译出任何内容,因此 ninja 无法看到这些头文件,因此 https://pixi.prefix.dev/latest/build/backends/pixi-build-cmake/#input-tracking 中描述的输入跟踪策略无法包含它们。
内容来源: prefix-dev/pixi