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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions