2017-06-12 1 views
0

frameworks/base/cmds/myprojectに新しいC++サブプロジェクトを追加しました。それには独自のAndroid.mkファイルがあります。 make myprojectを実行すると、問題なくコンパイルできます。AOSPの主要メイクにメイク規則を追加

makemake myprojectを追加します。つまり、誰かがAOSPのルートにあるmakeを実行すると、私のプロジェクトも同様に組み込むことになります。私は何をすべきか?

答えて

4

あなたのAndroid.mkファイルを呼び出す必要があります。ニーズに応じて、さまざまな方法があります。

myproyectdevice/のデバイスのいくつかに合わせてコンパイルする場合は、共通のmkファイルを探します。たとえば、これがクアルコムが行う方法です。あなたはAOSPのためにそれをコピーできます。

  • 編集/ device/common/common.mk
  • を作成するには、あなたがしたいすべてのデバイスからそのdevice/common/common.mkへの呼び出しを行います。あなただけの特定のデバイスのためにそれをしたい場合は$(call inherit-product, device/qcom/common/common.mk)

:(これは、QCMはそれをしない方法です

  • それはdevice/generic/mini-emulator-x86mkファイルの持っている、あなたはmini_emulator_x86-userdebug用にコンパイルしたい当然のは、見てみましょう。
  • 編集mini_emulator_x86.mk
  • 編集したり、次のようにPRODUCT_PACKAGESを追加します。

    PRODUCT_PACKAGES += \ 
        myproyect 
    

正しい字下げに注意してください。

このようにしてsource build/envsetup.shlunch mini_emulator_x86-userを入力してからmakeを入力すると、myproyect.mkになります。それをテストするために

  • 編集このような何か追加してmyproject.mkファイル:$(warning MyProject MK has been called
  • コールlunch mini_emulator_x86-userを。
  • make | grep MyProjectあなたが最初の秒で何かを出力する場合は、コンパイル全体を待つ必要はありません、あなたは行こうとしています。

は、追加の参照のためには、クアルコムがcommonbase MKファイルと、そのdeviceフォルダを整理する方法を見てみて。彼らのオープンソースコードを見てくださいhere

+0

ありがとう、私はそれを試してフィードバックにあなたに戻ってきます。 –

+0

私のサブプロジェクトは特定のデバイス用ではありません。それはすべての人のために作られるべきです。だから、それは私が調べなければならない適切な場所である 'device/common /'のようです。そこに 'mk'ファイルはありません。 'generate-packages.sh'を変更する必要がありますか? –

+0

私は自分の答えを編集しました。それが役に立てば幸い! – Olaia