Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ignore copy target dir to handle cargo package #112

Merged
merged 1 commit into from
Mar 15, 2024

Conversation

sksat
Copy link
Member

@sksat sksat commented Mar 13, 2024

概要

c2a-devtools-frontend のビルドスクリプトでソースディレクトリを $OUT_DIR にコピーする際,target も無視するようにする

変更の意図や背景

cargo package においては,cargo build とビルド時のディレクトリの挙動が異なる.
具体的には,

  • ビルド前に workspace の target/package 以下にクリーンなビルドをするためソースディレクトリがコピーされる
  • この際それぞれの crate のディレクトリを workspace root とするビルドが行われる
    • この生成物は target/package/<crate>-<version>/target に入る
  • ビルドスクリプトが走る前にビルドスクリプト自体のビルドが行われる
    • ここで target/package/<crate>-<version>/target ができる
  • build.rs でソースディレクトリを $OUT_DIR にコピーする
    • この $OUT_DIRtarget/package/<crate>-<version>/target
    • ここで,target/package/<crate>-<version>/target を再帰的にコピーしてしまう
  • File name is too long エラーになる

となってしまう.

発端となる Issue

補足

cargo package がソースディレクトリを最初にコピーする際,Cargo.toml が存在するディレクトリはコピーされない.
このルールは現状 package.include などを指定しても bypass できない(正確には package.license-file のみ bypass されるが,意図が異なり confusing すぎる上に単一ファイルがコピーできてもあまり意味がない).

これにより,devtools-frontend/crates/wasm-opslangcargo package の時のみビルド前にソースディレクトリが存在しない状態になってしまう.そのため,この PR をマージした後も cargo package は通るようにはならない.

@sksat sksat added the bug Something isn't working label Mar 13, 2024
@sksat sksat added this to the v0.7.0 milestone Mar 13, 2024
@sksat sksat self-assigned this Mar 13, 2024
@sksat sksat requested a review from KOBA789 as a code owner March 13, 2024 06:45
@KOBA789 KOBA789 merged commit 87112c6 into main Mar 15, 2024
3 checks passed
@KOBA789 KOBA789 deleted the ignore-target-dir-on-copy branch March 15, 2024 07:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants