Skip to content

Export environment OUT_DIR to proc-macro. #14035

@Neutron3529

Description

@Neutron3529

Problem

Currently, crates-io will yield such error:

error: failed to verify package tarball

Caused by:
  Source directory was modified by build.rs during cargo publish. Build scripts should not modify anything outside of OUT_DIR.
  Added: /me/rmin/target/package/rmin-examples-0.0.1/aaa.rmin.Rust.Functions.R

But since I only have a proc-macro and no build.rs, the OUT_DIR is not set. And since I need some of their output (generating R wrappers for further roxygen2 doc generation and further package loading), the output is necessary.

Is there some configuration that could make a OUT_DIR visible for proc-macros?

Proposed Solution

Currently, for build.rs, it could write output to OUT_DIR, but for proc-macro-only crate, such option does not exists.

Another solution is that adding a [cache] section in Cargo.toml, tell Cargo what file could be written. With this configure, we may have the ability to debug proc-macros by tell them writting down all the code they generates.

Notes

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-proc-macroArea: compiling proc-macrosC-feature-requestCategory: proposal for a feature. Before PR, ping rust-lang/cargo if this is not `Feature accepted`S-needs-infoStatus: Needs more info, such as a reproduction or more background for a feature request.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions