Hi praveen,colin,shalini,
I am stuck at a similar condition as you guys while implementing
conditional compilation in the .bp files , i am working on Android-pi
flavour,
following are the steps that i have tried
-> implemented my own go module named multi_display.go
func globalFlags(ctx android.BaseContext) []string {
var cflags []string
fmt.Println("Inside 1 globalFlags")
if ctx.AConfig().IsEnvTrue("USE_MULTI_DISPLAY") {
cflags = append(cflags, "-DMULTI_DISPLAY_SUPPORT")
fmt.Println("Inside globalFlags")
}
return cflags
}
-> included the same in *build/soong/Android.bp*
-> with the .go file residing in the same folder
i am able to compile android for the target but the flag "
*MULTI_DISPLAY_SUPPORT*" is not propagating to *hardware/libhardware/*
Please let me know what have i misssed adding, any help in this regard
would be apreciated.
On Tuesday, September 4, 2018 at 8:13:20 PM UTC+5:30, [email protected]
wrote:
>
> Hi,
> I have been working on Android O recently and I want to have a
> conditional compilation as per the below scenario:
>
> 1) I have an .mk file @ ~/device/xxyyzz/abc.mk ---- Here abc.mk is the
> target for which I will build this sandbox via lunch command.
>
> The abc.mk has a boolean flag declared by me as MAC_Serialization :=
> TRUE/FALSE
>
> 2) In the location @
> ~/hardware/interfaces/bluetooth/1.0/default/bluetooth_address.cc I have a
> custom logic of mine to be inserted for a piece of code to be compiled or
> not complied based on the boolean flag "MAC_Serialization"
> For this task I tried to access the boolean flag "MAC_Serialization" in
> the android.mk file @
> ~/hardware/interfaces/bluetooth/1.0/default/Android.mk and set the CFLAG
> with an expectation that the bluetooth-address.cc will respond to this
> CFLAG. I observe that the value of boolean flag "MAC_Serialization" has no
> control over this module.
>
> My Question: How do I have a conditional compilation in the source code @
> ~/hardware/interfaces/bluetooth/1.0/default/bluetooth_address.cc based on
> the boolean variable "MAC_Serialization" declared in the top level abc.mk
> located @ ~/device/xxyyzz/abc.mk?
>
> Not sure If I'm going the right direction on this, if so what will be the
> way to do this?
>
>
> Thanks and Regards,
> Praveen Tubachi.
>
> On Sunday, August 6, 2017 at 1:10:02 AM UTC+5:30, [email protected]
> wrote:
>>
>> Hi,
>>
>> I have been working with Android O preview source code and have been
>> studying its new build system, soong.
>>
>> I’m facing issue regarding conditional compilation of source files
>> inside different directories based on value of environment variable.
>>
>> Let’s say Android O-source code has two directories A and B. Each of the
>> directories contain top level Android.bp inside them. I would like soong to
>> conditionally compile sources in directory A or B depending up on the value
>> of an environment variable $ENV_VARIABLE.
>>
>> ENV_VARIABLE is not specified (null) or contains a string value.
>>
>> If ENV_VARIABLE is not null, Android.bp file in A should be compiled,
>> otherwise Android.bp file in B should be compiled.
>>
>> Currently, both the Android.bp files in A and B are compiled with soong.
>> So, we need soong to compile Android.bp file in A or B based on the value
>> of $ENV_VARIABLE.
>>
>>
>>
>> I tried the below approach :
>>
>> 1. Added My_struct struct { Srcs []string } to varaibleProperties
>> in build/soong/variable.go
>>
>> + My_struct struct{
>>
>> + Srcs[]string
>>
>> + }
>> 2.+ My_struct *string `json:",omitempty to productVariables in
>> build/soong/variable.go
>> 3.Passed ENV_VARIABLE to My_struct in build/make/core/soong_config.mk
>>
>> + echo ' "My_struct": "$(ENV_VARIABLE)",'
>>
>> I would like to change Android.bp in directory A in the following way so
>> that whenever My_struct has a valid string, soong should compile sources
>> specified in the subdirs field.
>>
>>
>> + product_variables: {
>>
>> + my_struct: {
>>
>> + subdirs =[“../B”],
>>
>> + },
>>
>> + },
>>
>> }
>>
>>
>>
>> But subdirs is not a property in .bp module. Can you please provide help
>> on how to achieve this?
>>
>>
>>
>> Thank You.
>>
>>
>>
>
--
--
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.