LoginSignup
1
0

MacOS下でcc-rsを使うパッケージのビルドに失敗する場合がある

Last updated at Posted at 2024-04-03

はじめに

cc-rsrustのパッケージにおいて、依存するC/C++を間接的にビルドしてくれるパッケージである。
cc-rsのバージョン1.0.901 が適用される場合に、以下のメッセージが表示されMacOS下でのパッケージビルドが失敗するようになった。

warning: profiler_builtins@0.0.0: xcrun: error: unable to lookup item 'PlatformVersion' from command line tools installation
warning: profiler_builtins@0.0.0: xcrun: error: unable to lookup item 'PlatformVersion' in SDK '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk'

具体的には、duckdb-rsを組み込んだ際に遭遇した。

この事象は、cc-rsissueでも報告されている。

原因

デプロイバージョンを取得するためにcc-rsで内部的に以下のコマンドが実行されている。

xcrun --show-sdk-platform-version

上記のコマンドは、XCodeがインストールされている環境であれば問題なく取得できる(らしい)のだが、コマンドラインツールしかインストールしていない環境ではエラーとなってしまう。

このエラーに引きずられて、間接的にcc-rsに依存するパッケージのビルドが失敗していた。

回避策

cc-rsのコードを追いかけていたところ、MACOSX_DEPLOYMENT_TARGET環境変数の取得を試み、取得できなければ、xcrunを走らせるようになっていた。

そこで、MACOSX_DEPLOYMENT_TARGETにとりま10.11をセットした上で、ビルドを走らせたところ、ビルドが成功するところまでは確認できた。

$ export MACOSX_DEPLOYMENT_TARGET=10.11
$ cargo build

まとめ

cc-rsissueにも上がっているため、そのうち解決するとは思うが、これを書いている時点ではまだ解決していない。
この投稿が助けになれば幸いである。

2024-04-14 追記

以下のプルリクにて、show-sdk-platform-versionではなく、show-sdk-version使用するよう変更された。

show-sdk-versionの使用ではエラーにならないため、この回避策は不要になったと思われる。

  1. issueによると1.0.83では、エラーにならないらしい

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0