Here is the solution and mistakes i noticed.
We should use *bool pointer instead of *string in product_variable
properties.
+ Ext_avd **bool* `json:",omitempty"`
+ echo ' "Ext_avd": $(BOARD_HAVE_EXT_AVDT),'; \
*remove double quotes for BOARD_HAVE_EXT_AVDT* or use like below
"Ext_avd": $(if $(filter true,$(BOARD_HAVE_EXT_AVDT)),true,false),'; \
Thanks,
Manoj
On Wednesday, 17 January 2018 20:49:14 UTC+5:30, Manoj Basapathi wrote:
>
> Hi ,
>
> I also followed similar steps , build flag is not updating with proper
> value.
> Is there any thing we need to take care apart from these changes.
> Please let us know.
>
> Thanks,
> Manoj
>
> On Wednesday, 24 May 2017 19:59:12 UTC+5:30, Jeffrey An wrote:
>>
>> Hi,
>> With your comment, finally it works. But I have another issue.
>> I added BOARD_HAVE_EXT_AVDT := true and avdt_ext.cc file was compiled.
>> But I removed BOARD_HAVE_EXT_AVDT := true in
>> BoardConfig.mk(device/huawei/angler/) but still avdt_ext.cc file was
>> compiled.
>>
>> Without BOARD_HAVE_EXT_AVDT := true in BoardConfig.mk, avdt_ext.cc file
>> should not be compiled.
>> Here's my changes.
>> build/soong/
>> diff --git a/android/variable.go b/android/variable.go
>> old mode 100644
>> new mode 100755
>> index 163113e..a1ff5bb
>> --- a/android/variable.go
>> +++ b/android/variable.go
>> @@ -74,7 +74,11 @@ type variableProperties struct {
>> Cflags []string
>> Cppflags []string
>> }
>> + Ext_avd struct {
>> + Srcs []string
>> + }
>> } `android:"arch_variant"`
>> +
>> }
>>
>> var zeroProductVariables variableProperties
>> @@ -136,6 +140,8 @@ type productVariables struct {
>> ArtUseReadBarrier *bool `json:",omitempty"`
>>
>> BtConfigIncludeDir *string `json:",omitempty"`
>> +
>> + Ext_avd *string `json:",omitempty"`
>> }
>>
>> system/bt
>> diff --git a/stack/Android.bp b/stack/Android.bp
>> old mode 100644
>> new mode 100755
>> index 58c8fe9..f67fcbc
>> --- a/stack/Android.bp
>> +++ b/stack/Android.bp
>> @@ -179,7 +179,13 @@ cc_library_static {
>> required: [
>> "libldacBT_enc",
>> "libldacBT_abr",
>> - ]
>> + ],
>> +
>> + product_variables: {
>> + ext_avd: {
>> + srcs: ["avdt/avdt_ext.cc"],
>> + },
>> + },
>> }
>>
>> // Bluetooth stack unit tests for target
>>
>> system/bt/stack/avdt/avdt_ext.cc
>>
>> ADSFA
>>
>> #if AVDT_EXT == TRUE
>>
>> /******************************************************************************
>> ...
>> #endif
>>
>> compile result
>> Error should not be printed since I didn't want to compile avdt_ext.cc
>> [ 2% 1/44] cc
>> out/soong/.intermediates/system/bt/stack/libbt-stack/andro..._arm64_armv8-a_cortex-a53_static_core/obj/system/bt/stack/avdt/avdt_ext.o
>> FAILED:
>> out/soong/.intermediates/system/bt/stack/libbt-stack/android_arm64_armv8-a_cortex-a53_static_core/obj/system/bt/stack/avdt/avdt_ext.o
>>
>> PWD=/proc/self/cwd prebuilts/misc/linux-x86/ccache/ccache
>> prebuilts/clang/host/linux-x86/clang-3859424/bin/clang++ -c
>> -Isystem/bt/stack/include -Isystem/bt/stack/avct -Isystem/bt/stack/btm
>> -Isystem/bt/stack/avrc -Isystem/bt/stack/l2cap -Isystem/bt/stack/avdt
>> -Isystem/bt/stack/gatt -Isystem/bt/stack/gap -Isystem/bt/stack/pan
>> -Isystem/bt/stack/bnep -Isystem/bt/stack/hid -Isystem/bt/stack/sdp
>> -Isystem/bt/stack/smp -Isystem/bt/stack/srvc
>> -Idevice/huawei/angler/bluetooth -Iexternal/aac/libAACenc/include
>> -Iexternal/aac/libSYS/include -Iexternal/libldac/inc
>> -Iexternal/libldac/abr/inc -Isystem/bt -Isystem/bt/btcore/include
>> -Isystem/bt/vnd/include -Isystem/bt/vnd/ble -Isystem/bt/btif/include
>> -Isystem/bt/hci/include -Isystem/bt/include -Isystem/bt/udrv/include
>> -Isystem/bt/bta/include -Isystem/bt/bta/sys -Isystem/bt/utils/include
>> -Isystem/bt/stack -fno-exceptions -Wno-multichar -fno-strict-aliasing
>> -fstack-protector-strong -ffunction-sections -fdata-sections
>> -funwind-tables -Wa,--noexecstack -Werror=format-security
>> -D_FORTIFY_SOURCE=2 -fno-short-enums -no-canonical-prefixes
>> -Werror=pointer-to-int-cast -Werror=int-to-pointer-cast
>> -Werror=implicit-function-declaration -DNDEBUG -O2 -g -Wstrict-aliasing=2
>> -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Winit-self
>> -Wpointer-arith -DNDEBUG -UDEBUG -fdebug-prefix-map=/proc/self/cwd=
>> -D__compiler_offsetof=__builtin_offsetof -Werror=int-conversion
>> -Wno-reserved-id-macro -Wno-format-pedantic
>> -Wno-unused-command-line-argument -fcolor-diagnostics
>> -Wno-expansion-to-defined -fdebug-prefix-map=$PWD/= -Werror=return-type
>> -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point
>> -Werror=date-time -nostdlibinc -mcpu=cortex-a53
>> -Iexternal/aac/libAACdec/include -Iexternal/aac/libAACenc/include
>> -Iexternal/aac/libPCMutils/include -Iexternal/aac/libFDK/include
>> -Iexternal/aac/libSYS/include -Iexternal/aac/libMpegTPDec/include
>> -Iexternal/aac/libMpegTPEnc/include -Iexternal/aac/libSBRdec/include
>> -Iexternal/aac/libSBRenc/include -Iexternal/libcxx/include
>> -Iexternal/libcxxabi/include -Iexternal/libchrome
>> -Iexternal/googletest/googletest/include
>> -Iexternal/googletest/googletest/include -Isystem/core/base/include
>> -Isystem/core/libutils/include -Isystem/core/libbacktrace/include
>> -Isystem/core/libsystem/include -Isystem/core/libcutils/include
>> -Isystem/core/liblog/include -Isystem/core/include
>> -Isystem/media/audio/include -Ihardware/libhardware/include
>> -Ihardware/libhardware_legacy/include -Ihardware/ril/include
>> -Ilibnativehelper/include -Iframeworks/native/include
>> -Iframeworks/native/opengl/include -isystem frameworks/av/include -isystem
>> bionic/libc/arch-arm64/include -isystem bionic/libc/include -isystem
>> bionic/libc/kernel/uapi -isystem bionic/libc/kernel/uapi/asm-arm64 -isystem
>> bionic/libc/kernel/android/uapi -Ilibnativehelper/include/nativehelper
>> '-DEXPORT_SYMBOL=__attribute__((visibility("default")))'
>> -fvisibility=hidden -Wall -Wextra -Werror
>> -Wno-gnu-variable-sized-type-not-at-end -Wno-typedef-redefinition
>> -Wno-unused-parameter -DLOG_NDEBUG=1 -DHAS_BDROID_BUILDCFG
>> -DBLUEDROID_DEBUG -DDCHECK_ALWAYS_ON -target aarch64-linux-android
>> -Bprebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/aarch64-linux-android/bin
>>
>> -DANDROID_STRICT -fPIC -D_USING_LIBCXX -std=gnu++14 -Wsign-promo
>> -Wno-inconsistent-missing-override -Wno-null-dereference -fno-rtti
>> -fvisibility-inlines-hidden -Werror=int-to-pointer-cast
>> -Werror=pointer-to-int-cast -Werror=address-of-temporary
>> -Werror=return-type -MD -MF
>> out/soong/.intermediates/system/bt/stack/libbt-stack/android_arm64_armv8-a_cortex-a53_static_core/obj/system/bt/stack/avdt/avdt_ext.o.d
>>
>> -o
>> out/soong/.intermediates/system/bt/stack/libbt-stack/android_arm64_armv8-a_cortex-a53_static_core/obj/system/bt/stack/avdt/avdt_ext.o
>>
>> system/bt/stack/avdt/avdt_ext.cc
>> system/bt/stack/avdt/avdt_ext.cc:2:1: error: unknown type name 'ADSFA'
>> ADSFA
>>
>>
>> Could you give me more advice?
>>
>> Thanks,
>>
>> 2017년 5월 24일 수요일 오전 3시 21분 41초 UTC+9, Dan Willemsen 님의 말:
>>>
>>> And you need to be in the product_variables map:
>>>
>>> product_variables: {
>>> ext_avd: {
>>> srcs: [...],
>>> },
>>> },
>>>
>>> - Dan
>>>
>>> On Tue, May 23, 2017 at 11:07 AM Colin Cross <[email protected]> wrote:
>>>
>>>> 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.
>>>>
>>>
--
--
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.