The property in the Android.bp file should be "ext_avd", not
"Ext_avd".  The required capitalization in the go files is an
unfortunate consequence of reflection requiring exported go fields.

On Tue, May 23, 2017 at 12:29 AM, Jeffrey An <[email protected]> wrote:
> 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]> 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]
>> > 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.
>
> --
> --
> 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.

-- 
-- 
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