xref: /aosp_15_r20/external/OpenCL-ICD-Loader/Android.bp (revision 1cddb830dba8aa7c1cc1039338e56b3b9fa24952)
1soong_namespace {}
2
3package {
4    default_applicable_licenses: ["OpenCL-ICD-Loader_license"],
5    default_visibility: ["//visibility:public"],
6}
7
8license {
9    name: "OpenCL-ICD-Loader_license",
10    visibility: [":__subpackages__"],
11    license_kinds: ["SPDX-license-identifier-Apache-2.0"],
12    license_text: ["LICENSE"],
13}
14
15cc_library_shared {
16    /*
17        Applications expect to be able to link against
18        libOpenCL.so. Therefore, the module name must match.
19    */
20    name: "libOpenCL",
21    compile_multilib: "both",
22    srcs: [
23        "loader/icd.c",
24        "loader/icd_dispatch.c",
25        "loader/icd_dispatch_generated.c",
26        "loader/linux/icd_linux.c",
27        "loader/linux/icd_linux_envvars.c",
28    ],
29    version_script: "loader/linux/icd_exports.map",
30    header_libs: ["OpenCL-Headers"],
31    generated_headers: ["generate_cmake_config"],
32    export_header_lib_headers: ["OpenCL-Headers"],
33    local_include_dirs: ["loader"],
34    cflags: [
35        "-DCL_NO_NON_ICD_DISPATCH_EXTENSION_PROTOTYPES",
36        "-DCL_TARGET_OPENCL_VERSION=300",
37        "-DOPENCL_ICD_LOADER_VERSION_MAJOR=3",
38        "-DOPENCL_ICD_LOADER_VERSION_MINOR=0",
39        "-DOPENCL_ICD_LOADER_VERSION_REV=6",
40        "-DMODERN_ANDROID_VENDOR_PATH",
41    ],
42    soc_specific: true,
43}
44
45genrule {
46    name: "generate_cmake_config",
47    out: ["icd_cmake_config.h"],
48    /*
49        Android's libc doesn't implement `secure_getenv` or `__secure_getenv`
50        so we just create an empty $(out) file.
51    */
52    cmd: "touch $(out)",
53    visibility: ["//visibility:private"],
54}
55