You'll need to execute conan before running the android build. It's not
enforced yet, but the source tree is expected to be read-only during the
build -- in particularly we start caching the Android.bp files nearly
immediately upon build startup, so adding new ones isn't going to work.
Nothing from the Android.bp files are executed before we finish reading all
the Android.bp files.

- Dan

On Fri, Sep 20, 2019 at 1:51 PM 'NIRAJ DESAI' via Android Building <
android-building@googlegroups.com> wrote:

> I have a similar need
>
> I am trying to integrate the conan package management system.
>
> I have written a custom generator for conan that creates an Android.bp
> file with the appropriate targets that are downloaded via conan
>
> I need to run a script that will install these dependencies during build
> time.
>
> My file structure is:
>
> - vendor/mycompany/external/Android.bp
> - vendor/mycompany/external/conanInstallDependencies.sh
> - vendor/mycompany/conan/conanfile.txt
>
> I am able to run the script using $(shell) via Android.mk but I am not
> sure how to integrate Android.mk and the Android.bp that uses the conan
> deps  to ensure the build order is satisfied
>
> It works with Android.mk, but I have to run the build twice.
> - First build iteration will download the dependencies via Conan and place
> them in the proper folder location but the build will fail because the
> Android.bp that is generated by Conan is not executed
> - Second build iteration will find the existing Android.bp that was
> generated by Conan and the build will succeed
>
>
> I essentially want to create a target that is called
> "conanInstallDependencies"
> This target would  be simple, it will only invoke the
> "conanInstallDependencies.sh" script
>
> I would want the Conan-generated Android.bp to "link" or "be dependent" on
> the "conanInstallDependencies" target so that this Android.bp is always
> built after the "conanInstallDependencies" Android.bp
>
>
>
>
>
> On Thursday, August 22, 2019 at 11:18:41 AM UTC-7, Dan Willemsen wrote:
>>
>> What is your pre-build-script.sh script doing? Right now, since it has no
>> dependencies and no output files, you're essentially running it on every
>> build, even when the user is only trying to compile a single file in a
>> different section of the tree. That's deprecated since it has a huge
>> performance impact.
>>
>> Generally, if this is something that takes inputs and produces output
>> files, you may be able to use a genrule. But without knowing anything about
>> what this script is doing, I can't help much more than that.
>>
>> - Dan
>>
>>
>>
>> On Tue, Aug 20, 2019 at 2:40 PM Frederic Plourde <fredinf...@gmail.com>
>> wrote:
>>
>>> Hi android building !
>>>
>>>
>>>   I used to have this in one of my Android.mk makefiles :
>>>
>>> $(shell (cd $(LOCAL_PATH)/../../ && ./pre-build-script.sh))
>>>
>>>
>>> but I just noticed that this practice is now discouraged on the Soong
>>> Android.bp build system
>>>
>>> From the Build System Best Practices
>>> <https://android.googlesource.com/platform/build/soong/+/HEAD/docs/best_practices.md>
>>> document,  I could read :
>>>
>>> Don't use $(shell) to write files, create symlinks, etc. We expect to
>>> enforce this in the future. Encode these as build rules in the build graph
>>> instead. This can be problematic in a number of ways:
>>>
>>>
>>> Could you give me a concrete example of how I could run this
>>> "pre-build-script.sh" shell script before *every* build in my new
>>> Android.bp file ?
>>>
>>> thx :)
>>>
>>>
>>> *Frederic Plourde*
>>> Principal Engineer
>>> Collabora ltd.
>>>
>>> --
>>> --
>>> You received this message because you are subscribed to the "Android
>>> Building" mailing list.
>>> To post to this group, send email to android-...@googlegroups.com
>>> To unsubscribe from this group, send email to
>>> android-...@googlegroups.com
>>> 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 android-...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/android-building/1131b0a7-0656-4813-9226-c233f3c2a05c%40googlegroups.com
>>> <https://groups.google.com/d/msgid/android-building/1131b0a7-0656-4813-9226-c233f3c2a05c%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> --
> You received this message because you are subscribed to the "Android
> Building" mailing list.
> To post to this group, send email to android-building@googlegroups.com
> To unsubscribe from this group, send email to
> android-building+unsubscr...@googlegroups.com
> 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 android-building+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/android-building/8627b939-8c30-49fa-86cf-32c142de15c7%40googlegroups.com
> <https://groups.google.com/d/msgid/android-building/8627b939-8c30-49fa-86cf-32c142de15c7%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
-- 
You received this message because you are subscribed to the "Android Building" 
mailing list.
To post to this group, send email to android-building@googlegroups.com
To unsubscribe from this group, send email to
android-building+unsubscr...@googlegroups.com
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 android-building+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-building/CALQgHdktduafwpT42mEiFyHrz%3D%2Bht%2BtZRN5PUg%2BZoeXKwg1wBA%40mail.gmail.com.

Reply via email to