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.
