Export_Include_Dirs - Android.bp

Introduction

In Android.bp files, export_include_dirs is a useful module property that specifies additional directories to be included in the include path for other modules that depend on it. This property ensures that the dependent module can access the necessary header files from the exporting module. In this article, we will explore the export_include_dirs property, its usage, and provide relevant code examples.

Usage

The export_include_dirs property is defined within the android_app or cc_library modules in the Android.bp file. It allows you to specify one or more directories that will be added to the include path of dependent modules. This ensures that the dependent module can access the necessary header files from the exporting module.

Example

Let's consider an example where we have two modules, module1 and module2. module1 exports some header files that module2 needs to include during compilation.

Here is the Android.bp file for module1:

cc_library {
    name: "module1",
    srcs: ["module1.c"],
    export_include_dirs: ["include"],
}

In this example, the export_include_dirs property is set to ["include"]. This means that the directory include will be added to the include path of any module that depends on module1.

Now, let's take a look at the Android.bp file for module2:

cc_library {
    name: "module2",
    srcs: ["module2.c"],
    shared_libs: ["module1"],
}

In module2, we have specified module1 as a shared library dependency using the shared_libs property. Since module2 depends on module1, it will automatically include the directories specified in module1's export_include_dirs property.

By doing this, any header files present in the include directory of module1 can be accessed in module2 during compilation.

Conclusion

The export_include_dirs property in Android.bp files allows us to include additional directories in the include path of dependent modules. It ensures that necessary header files from exporting modules are accessible to dependent modules during compilation.

In this article, we provided an overview of export_include_dirs and demonstrated its usage through a code example. This property is a valuable tool for managing dependencies and facilitating efficient module compilation in Android projects.