Skip to content

A program cannot ship another package's executable built for its target; the tool edge builds it for the host #711

Description

@speak-agent

Observed

A program's release layout may need to carry an executable that another package in the graph builds. GalTranslPP's GUI ships Updater.exe, which its workspace member Updater builds. The manifest cannot express "this dependency's executable, built for my target". The only edge that exposes another package's executable is a tool edge, used as tools = ["Updater"] with mcpp::dep_bin("gpp.updater", "Updater"), and that edge means a program for the build machine:

Request

A target artifact dependency: an edge that builds a dependency's bin target for the consumer's target and profile, and exposes the resulting path to the consumer's build program. Deploy and mcpp pack should also be able to use that path. Cargo's artifact dependencies (RFC 3028) are prior art.

Activity

  1. added a commit that references this issue on Sep 27, 2026
  2. speak-agent commented on Sep 27, 2026

    @speak-agent
    MemberAuthor

    Fixed in mcpp 2026.9.27.1 (#719, merged as b439fd9), released on GitHub and mirrored to GitCode (xlings-res/mcpp), and published in the xim index (openxlings/xim-pkgindex#894).

    Verified after the release with the published binary inside an xlings subos sandbox (xlings subos use eco-0927 --sandbox --cmd ...), mcpp configured for the CN mirror in a fresh MCPP_HOME:

    • e2e 801_a_dependency_program_is_shipped_with_the_consumer: artifacts = ["updater"] builds the program for the consumer's target, places it in the consumer's bin/, links none of its code, reaches actions as ${mcpp.artifact:updater/updater} and is carried by mcpp pack. PASS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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