# Native builds that depend on a custom Exec task

**URL:** <https://discuss.gradle.org/t/native-builds-that-depend-on-a-custom-exec-task/18371>\
**Category:** Help/Discuss\
**Created:** [July 6, 2016, 5:19am UTC](https://discuss.gradle.org/t/native-builds-that-depend-on-a-custom-exec-task/18371 "2016-07-06T05:19:21Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![benignbala](https://avatars.discourse-cdn.com/v4/letter/b/ea5d25/32.png) [@benignbala](https://discuss.gradle.org/u/benignbala)\
**Post date:** [July 6, 2016, 5:19am UTC](https://discuss.gradle.org/t/native-builds-that-depend-on-a-custom-exec-task/18371/1 "2016-07-06T05:19:21Z")

</div>

I am using gradle for native (C++) builds. I have a situation where based on some inputs, I generate some header files and I need to include those in the build.

I have the following folder structure

```
src/
     -app/
          -main.cpp
     -lib/
         myapp/
                  -myapp.cpp
                  -include/
                            myapp.hpp
                            **generated.hpp**
    -meta/
           -metadata.xml
```

I have an xsl file that generates src/lib/include/generated.hpp from src/meta/metadata.xml

My gradle script is as follows

> plugins {  
> id ‘native-component’  
> id ‘cpp’  
> }
> 
> model {  
> buildTypes {  
> debug  
> production  
> }

> ```
> components {
> myapp(NativeLibrarySpec) {
> sources {....}
> }
> mybin(NativeExecutableSpec) {
> sources {....}
> }
> }
> 
> ```
> 
> }

Now, I’ve to add an Exec task that generates the hpp by running xslt. But how can I make it part of the model ? If I add an Exec task(or component ?) to the model, how do I make the other components depend on the artefact created by this task/component ? Thanks

---

<div class="post-metadata">

**Author:** ![Schalk\_Cronje](https://sea1.discourse-cdn.com/gradle/user_avatar/discuss.gradle.org/schalk_cronje/32/6511_2.png) [@Schalk\_Cronje](https://discuss.gradle.org/u/Schalk_Cronje)\
**Post date:** [July 6, 2016, 9:35am UTC](https://discuss.gradle.org/t/native-builds-that-depend-on-a-custom-exec-task/18371/2 "2016-07-06T09:35:56Z")

</div>

You need `generatedBy`: See [Gradle dependencies between normal tasks and native generated tasks](https://discuss.gradle.org/t/gradle-dependencies-between-normal-tasks-and-native-generated-tasks/17606).

---

<div class="post-metadata">

**Author:** ![benignbala](https://avatars.discourse-cdn.com/v4/letter/b/ea5d25/32.png) [@benignbala](https://discuss.gradle.org/u/benignbala)\
**Post date:** [July 6, 2016, 9:55am UTC](https://discuss.gradle.org/t/native-builds-that-depend-on-a-custom-exec-task/18371/3 "2016-07-06T09:55:14Z")

</div>

@Schalk_Cronje Wonderful, just what I wanted. Thanks a lot!
