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