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.

Reply via email to