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 <[email protected] 
> <javascript:>> 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 [email protected] 
>> <javascript:>
>> To unsubscribe from this group, send email to
>> [email protected] <javascript:>
>> 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] <javascript:>.
>> 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 [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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-building/8627b939-8c30-49fa-86cf-32c142de15c7%40googlegroups.com.

Reply via email to