Hi,

Thanks for the answer! I understand the purpose of the soong build system.

As you said, for local experimentation, I've tried like below,
build/soong

diff --git a/android/variable.go b/android/variable.go
old mode 100644
new mode 100755
index 163113e..475cee0
--- a/android/variable.go
+++ b/android/variable.go
@@ -75,6 +75,10 @@ type variableProperties struct {
                        Cppflags []string
                }
        } `android:"arch_variant"`
+
+       Ext_avd struct { 
+               Srcs []string 
+       }
 }
 
 var zeroProductVariables variableProperties
@@ -136,6 +140,8 @@ type productVariables struct {
        ArtUseReadBarrier *bool `json:",omitempty"`
 
        BtConfigIncludeDir *string `json:",omitempty"`
+       
+       Ext_avd *string `json:",omitempty"`
 }

build/make
diff --git a/core/soong_config.mk b/core/soong_config.mk
old mode 100644
new mode 100755
index 576c8ab..cf08a8b
--- a/core/soong_config.mk
+++ b/core/soong_config.mk
@@ -69,6 +69,7 @@ $(SOONG_VARIABLES): FORCE
        echo ''; \
        echo '    "ArtUseReadBarrier": $(if $(filter 
false,$(PRODUCT_ART_USE_READ_BARRIER)),false,true),'; \
        echo ''; \
+       echo '    "Ext_avd": "$(BOARD_HAVE_EXT_AVDT)",'; \
        echo '    "BtConfigIncludeDir": 
"$(BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR)"'; \
        echo '}') > $(SOONG_VARIABLES_TMP); \
        if ! cmp -s $(SOONG_VARIABLES_TMP) $(SOONG_VARIABLES); then \

device/huawei/angler
diff --git a/BoardConfig.mk b/BoardConfig.mk
old mode 100644
new mode 100755
index 141d0a4..2e24d88
--- a/BoardConfig.mk
+++ b/BoardConfig.mk
@@ -45,6 +45,7 @@ BOARD_USES_ALSA_AUDIO := true
 BOARD_HAVE_BLUETOOTH := true
 BOARD_HAVE_BLUETOOTH_BCM := true
 BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := 
device/huawei/angler/bluetooth
+BOARD_HAVE_EXT_AVDT := true
 
 BOARD_USES_SECURE_SERVICES := true

system/bt
diff --git a/stack/Android.bp b/stack/Android.bp
old mode 100644
new mode 100755
index 58c8fe9..82cf586
--- a/stack/Android.bp
+++ b/stack/Android.bp
@@ -179,7 +179,10 @@ cc_library_static {
     required: [
         "libldacBT_enc",
         "libldacBT_abr",
-    ]
+    ],
+    Ext_avd: {
+           srcs: ["avdt/avdt_ext.cc"],
+    },
 }

And tried to build but got error.
[2/2] bootstrap out/soong/.minibootstrap/build.ninja.in
[1/1] out/soong/.bootstrap/bin/minibp out/soong/.bootstrap/build.ninja
[1/2] glob device/*/*/Android.bp
[1/2] soong_build docs out/soong/.bootstrap/docs/soong_build.html
FAILED: out/soong/.bootstrap/docs/soong_build.html 
out/soong/.bootstrap/bin/soong_build  -t -b out/soong --docs 
out/soong/.bootstrap/docs/soong_build.html ./Android.bp
error: system/bt/stack/Android.bp:183:12: unrecognized property "Ext_avd"
[2/2] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
FAILED: out/soong/build.ninja 
out/soong/.bootstrap/bin/soong_build -t -b out/soong -d 
out/soong/build.ninja.d -o out/soong/build.ninja Android.bp
error: system/bt/stack/Android.bp:183:12: unrecognized property "Ext_avd"
ninja: build stopped: subcommand failed.
16:25:21 soong bootstrap failed with: exit status 1
make: *** [run_soong_ui] Error 1
make: Leaving directory `/home/jeffrey/work/google/pdk'

#### make failed to build some targets (1 seconds) ####


Could you give me more advice here?

Thanks,


2017년 5월 23일 화요일 오전 5시 13분 12초 UTC+9, Colin Cross 님의 말:
>
> One of our goals for build health is to reduce the number of different 
> ways we build modules.  Adding too many build flags makes it harder to 
> tell if a change will break the build, and hard to run tests.  We 
> would much rather compiling everything the same on all devices, and 
> then determine which parts to use at runtime. 
>
> For local experimentation, you can add flags with: 
> 1.  Add: Ext_avd struct { Srcs []string } to varaibleProperties in 
> build/soong/android/variable.go 
> 2.  Add: Ext_avd *bool `json:",omitempty"` to productVariables in the same 
> file 
> 3.  Modify build/make/core/soong_config.mk to pass BOARD_HAVE_EXT_AVDT to 
> soong. 
>
> On Tue, May 16, 2017 at 11:12 PM, Jeffrey An <[email protected] 
> <javascript:>> wrote: 
> > Hi, 
> > 
> > 
> > 
> > I have been studying android-o-preview-1 especially Soong and Go build 
> > system. 
> > 
> > 
> > 
> > I’d like to add new feature to Bluetooth stack and attachment is one way 
> to 
> > do it. 
> > 
> > In the attachment, I can use #ifdef EXT_AVDT in the cc source file. 
> > 
> > As you can see in the attachment, BOARD_HAVE_EXT_AVDT := true in the 
> > BoardConfig.mk will enable EXT_AVDT in the system/bt stack. 
> > 
> > And Soong will always compile avdt_ext_avdt.cc file even if 
> > BOARD_HAVE_EXT_AVDT is not true in the BoardConfig.mk 
> > 
> > 
> > 
> > I’d like to know another way that avdt_ext_avdt.cc file would not be 
> > compiled without BOARD_HAVE_EXT_AVDT 
> > 
> > 
> > 
> > In the readme file in the Soong, you said 
> > 
> > ``` 
> > 
> > cc_library { 
> > 
> >     ... 
> > 
> >     srcs: ["generic.cpp"], 
> > 
> >     arch: { 
> > 
> >         arm: { 
> > 
> >             srcs: ["arm.cpp"], 
> > 
> >         }, 
> > 
> >         x86: { 
> > 
> >             srcs: ["x86.cpp"], 
> > 
> >         }, 
> > 
> >     }, 
> > 
> > } 
> > 
> > ``` 
> > 
> > 
> > 
> > I tried to find example about it but I couldn’t find it. 
> > 
> > 
> > 
> > I want to change system/bt/stack/Android.bp like below 
> > 
> > … 
> > 
> > "smp/smp_utils.cc", 
> > 
> >         "srvc/srvc_battery.cc", 
> > 
> >         "srvc/srvc_dis.cc", 
> > 
> >         "srvc/srvc_eng.cc", 
> > 
> >     ], 
> > 
> >     static_libs: [ 
> > 
> >         "libbt-hci", 
> > 
> >         "libFraunhoferAAC", 
> > 
> >     ], 
> > 
> >     shared_libs: [ 
> > 
> >         "libcutils", 
> > 
> >         "liblog", 
> > 
> >     ], 
> > 
> >     required: [ 
> > 
> >         "libldacBT_enc", 
> > 
> >     ], 
> > 
> >     ext-avdt: { 
> > 
> > srcs: ["avdt/avdt_ext_avdt.cc "], 
> > 
> >     } 
> > 
> > } 
> > 
> > And  avdt_ext_avdt.cc file will be compiled when BoardConfig.mk file has 
> > BOARD_HAVE_EXT_AVDT := true 
> > 
> > 
> > 
> > Could anyone guide me how to do it? 
> > 
> > 
> > -- 
> > -- 
> > You received this message because you are subscribed to the "Android 
> > Building" mailing list. 
> > To post to this group, send email to [email protected] 
> <javascript:> 
> > To unsubscribe from this group, send email to 
> > [email protected] <javascript:> 
> > For more options, visit this group at 
> > http://groups.google.com/group/android-building?hl=en 
> > 
> > --- 
> > You received this message because you are subscribed to the Google 
> Groups 
> > "Android Building" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an 
> > email to [email protected] <javascript:>. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
-- 
You received this message because you are subscribed to the "Android Building" 
mailing list.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-building?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"Android Building" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to