How do i include my own built shared library in Android.bp

1.6k views Asked by At

I compiled my library via this Android.bp code :

cc_library_shared {
     name: "libult123",

     shared_libs: [
        "[email protected]",
        "[email protected]",
        "[email protected]",
        "libandroid",
        "libbase",
        "libbinder",
        "libcutils",
        "libEGL",
        "libGLESv1_CM",
        "libGLESv2",
        "libgui",
        "liblog",
        "libnativewindow",
        "libprotobuf-cpp-full",
        "libsync",
        "libtimestats",
        "libui",
        "libutils",
        "libSurfaceFlingerProp",
    ],

    static_libs: [
        "[email protected]",
        "libglTest",
        "libcompositionengine",
        "libframetimeline",
        "libperfetto_client_experimental",
        "librenderengine",
        "libserviceutils",
    ],

    header_libs: [
       "libnativewindow_headers",
    ],

    cflags: [
        "-DGL_GLEXT_PROTOTYPES",
        "-Wall",
        "-Werror",
        "-Wno-unused-variable",
    ],
    
    //local_src_files: ["ult_lib.h"],
    local_include_dirs: ["include"],
    export_include_dirs: ["include"],
    srcs: ["ult_lib.cpp"],

}

The library directory structure is:

/include/ult_lib.h
/ult_lib.cpp

I want to use this libult123 library in another applications C++ code. Similar to, #include or something like that.

Please tell me how do I include it in my current Android.bp file so that this compiled library gets imported successfully. The Current Android.bp file for compiling the second application is:

cc_prebuilt_library_shared {
    name: "libult123",
        //srcs: ["lib64/libult123.so"],
    target: {
        android_arm: {
            srcs: ["lib/libult123.so"],
        },
        android_arm64: {
            srcs: ["lib64/libult123.so"],
        },
    },
    strip: { none:true, },
}



cc_binary {
    name: "ult_pre3",

    srcs: [
                "test_ult_with_import.cpp"
        ],

    //gtest: true,

        shared_libs: [
                //"libult123",
                //"abcascsad",
        "[email protected]",
        "[email protected]",
        "[email protected]",
        "[email protected]",
        "libandroid",
        "libbase",
        "libbinder",
        "libcutils",
        "libEGL",
        "libfmq",
        "libGLESv1_CM",
        "libGLESv2",
        "libgui",
        "libhidlbase",
        "liblayers_proto",
        "liblog",
        "libnativewindow",
        "libprocessgroup",
        "libprotobuf-cpp-full",
        "libsync",
        "libtimestats",
        "libui",
        "libinput",
        "libutils",
        "libSurfaceFlingerProp",
    ],

    static_libs: [
        "[email protected]",
        "libglTest",
        "libcompositionengine",
        "libframetimeline",
        "libperfetto_client_experimental",
        "librenderengine",
        "libserviceutils",
    ],

    header_libs: [
           //"libult123",
           "libnativewindow_headers",
    ],

    cflags: [
        "-DGL_GLEXT_PROTOTYPES",
        "-Wall",
        "-Werror",
           "-Wno-unused-variable",
    ],

}

Also tried:

.......
/*
cc_prebuilt_library_shared {
    name: "libult123",
        //srcs: ["lib64/libult123.so"],
    target: {
        android_arm: {
            srcs: ["lib/libult123.so"],
        },
        android_arm64: {
            srcs: ["lib64/libult123.so"],
        },
    },
    strip: { none:true, },
}
*/


cc_binary {
    name: "ult_pre3",

    srcs: [
                "test_ult_with_import.cpp"
        ],

    //gtest: true,

        shared_libs: [
        "libult123",
        "android.hardware.configstore-utils",
        "[email protected]",
.........

The error I'm facing:

hardware/intel/external/ult_pre/test_ult_with_import.cpp:27:10: fatal error: 'libult123/ult_lib.h' file not found
#include <libult123/ult_lib.h>
         ^~~~~~~~~~~~~~~~~~~~~
1 error generated.
17:12:34 ninja failed with: exit status 1
1

There are 1 answers

0
Cid On

Make a library header with "cc_library_headers", and include it with "header_libs".

cc_library_headers {
   name: "libult123_header",
   export_include_dirs: "./include"
}

and in application build,
cc_binary {
    ..snip..
    header_libs:["libult123_header"],
    ..snip..
}