Skip to content

[enhancement] build.mcpp 契约补 MCPP_DEP_<NAME>_DIR(依赖 payload 路径;数据资产包场景) #241

Description

@Sunrisepeak

背景

build.mcpp 的 env 契约(MCPP_MANIFEST_DIR / MCPP_OUT_DIR / MCPP_TARGET /
MCPP_FEATURE_*)没有提供依赖包的安装路径。当一个包的 build.mcpp 需要读取
依赖包的 payload(实际案例:compat.opencv 的 unifont feature 依赖数据资产包
compat.opencv-unifont,build.mcpp 要把字体 blob2hdr 进 builtin_font_uni.h),
只能靠 store 布局约定自寻:

// <data>/xpkgs/<self>/<ver> -> <data>/runtimedir/<file>(裸 .gz payload 实测落点)
fs::path rt = man.parent_path().parent_path().parent_path() / "runtimedir" / fname;
// fallback:扫 <data>/xpkgs/*opencv-unifont*/ 找文件名

能用,但把 store 内部布局变成了包侧 API。

期望

为声明了 deps 的包,在 build.mcpp 子进程注入:

MCPP_DEP_<SANITIZED_NAME>_DIR=<该依赖的 verdir 或 payload 根>

(与 MCPP_FEATURE_ 同款 sanitize)。顺带一提:裸文件(非归档)payload 目前
verdir 里只有元数据、实体在共享 runtimedir ——若能把它挂进 verdir(硬链/副本),
MCPP_DEP_*_DIR 语义会更完整。

环境

mcpp 0.0.97 · linux x86_64 · 实例见 mcpp-index PR #79(compat.opencv unifont feature)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions