問題タブ [buck]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
174 参照

buck - cxx_binary() と cxx_library() の違い

2つの違いは何ですか?ドキュメントでは、それらは同じ引数を持っているようですか? 彼らは同じことをしますか?公式ドキュメント以外に Buck に関する多くの情報を見つけることができませんでした。

0 投票する
2 に答える
1728 参照

c++ - Bazel: ヘッダーを 1 つのインクルード パスにグロブする方法

バックでは、次のように書くことができます。

この行により、これらのヘッダーが MediaLib/ の下で使用可能になります。Bazelで同等のものは何ですか?

0 投票する
1 に答える
182 参照

ios - モジュールからアクセスできる Swift 生成インターフェイスを Xcode のみに制限できますか?

場合

モジュール (モジュール マップ ファイルを含む静的ライブラリ) は、iOS アプリ コードベースにコード (Objective-C + Swift) が混在しています。Swift コードはモジュールからのみ使用する必要があるため、必要なインターフェースはすべて内部です

ここのドキュメントは言う

生成されたヘッダーはフレームワークのパブリック インターフェイスの一部であるため、public または open 修飾子でマークされた宣言のみが、フレームワーク ターゲットの生成されたヘッダーに表示されます。internal 修飾子でマークされ、Objective-C クラスから継承するクラス内で宣言されたメソッドとプロパティは、Objective-C ランタイムからアクセスできます。ただし、コンパイル時にはアクセスできず、フレームワーク ターゲット用に生成されたヘッダーには表示されません。

XCode ではプロジェクトを正常にコンパイルできますが、ビルドにBUCKを使用している CI マシンでは、モジュールのObjective C コードから内部的に定義された Swift メソッドが見つからないため失敗します。うまくいった修正は、これらのメソッドを公開することです。

私の疑問:

  • ドキュメントは、Objective C から使用したい Swift メソッドは公開する必要があることを示唆しているため、これは XCode のバグですか?
  • モジュール内から使用している場合でも、モジュール内で必要なすべてのインターフェイスをpublicとしてマークする必要がありますか?

生成されたヘッダーは、フレームワークのパブリック インターフェイスの一部です

  • 生成されたヘッダーがモジュール マップ (またはアンブレラ ヘッダー) で宣言されていない場合でも、フレームワークのパブリック インターフェイスのままになりますか? Swift がモジュール内からのみ使用されていて、それを他のモジュールに公開したくない場合はどうすればよいですか?