#7073·pixi

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