|  | // Copyright (C) 2009 The Android Open Source Project | 
|  | // | 
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | // you may not use this file except in compliance with the License. | 
|  | // You may obtain a copy of the License at | 
|  | // | 
|  | //      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | // | 
|  | // Unless required by applicable law or agreed to in writing, software | 
|  | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | // See the License for the specific language governing permissions and | 
|  | // limitations under the License. | 
|  |  | 
|  | cc_library_headers { | 
|  | name: "libbinder_headers", | 
|  | export_include_dirs: ["include"], | 
|  | vendor_available: true, | 
|  | header_libs: [ | 
|  | "libbase_headers", | 
|  | "libcutils_headers", | 
|  | "libutils_headers", | 
|  | ], | 
|  | export_header_lib_headers: [ | 
|  | "libbase_headers", | 
|  | "libcutils_headers", | 
|  | "libutils_headers", | 
|  | ], | 
|  | } | 
|  |  | 
|  | cc_library_shared { | 
|  | name: "libbinder", | 
|  |  | 
|  | // for vndbinder | 
|  | vendor_available: true, | 
|  | vndk: { | 
|  | enabled: true, | 
|  | }, | 
|  | double_loadable: true, | 
|  |  | 
|  | srcs: [ | 
|  | "ActivityManager.cpp", | 
|  | "AppOpsManager.cpp", | 
|  | "Binder.cpp", | 
|  | "BpBinder.cpp", | 
|  | "BufferedTextOutput.cpp", | 
|  | "Debug.cpp", | 
|  | "IActivityManager.cpp", | 
|  | "IAppOpsCallback.cpp", | 
|  | "IAppOpsService.cpp", | 
|  | "IBatteryStats.cpp", | 
|  | "IInterface.cpp", | 
|  | "IMediaResourceMonitor.cpp", | 
|  | "IMemory.cpp", | 
|  | "IPCThreadState.cpp", | 
|  | "IPermissionController.cpp", | 
|  | "IProcessInfoService.cpp", | 
|  | "IResultReceiver.cpp", | 
|  | "IServiceManager.cpp", | 
|  | "IShellCallback.cpp", | 
|  | "IUidObserver.cpp", | 
|  | "MemoryBase.cpp", | 
|  | "MemoryDealer.cpp", | 
|  | "MemoryHeapBase.cpp", | 
|  | "Parcel.cpp", | 
|  | "ParcelFileDescriptor.cpp", | 
|  | "PermissionCache.cpp", | 
|  | "PermissionController.cpp", | 
|  | "PersistableBundle.cpp", | 
|  | "ProcessInfoService.cpp", | 
|  | "ProcessState.cpp", | 
|  | "Static.cpp", | 
|  | "Status.cpp", | 
|  | "TextOutput.cpp", | 
|  | "IpPrefix.cpp", | 
|  | "Value.cpp", | 
|  | ":libbinder_aidl", | 
|  | ], | 
|  |  | 
|  | target: { | 
|  | vendor: { | 
|  | exclude_srcs: [ | 
|  | "ActivityManager.cpp", | 
|  | "AppOpsManager.cpp", | 
|  | "IActivityManager.cpp", | 
|  | "IAppOpsCallback.cpp", | 
|  | "IAppOpsService.cpp", | 
|  | "IBatteryStats.cpp", | 
|  | "IMediaResourceMonitor.cpp", | 
|  | "IPermissionController.cpp", | 
|  | "IProcessInfoService.cpp", | 
|  | "IUidObserver.cpp", | 
|  | "PermissionCache.cpp", | 
|  | "PermissionController.cpp", | 
|  | "ProcessInfoService.cpp", | 
|  | "IpPrefix.cpp", | 
|  | ":libbinder_aidl", | 
|  | ], | 
|  | }, | 
|  | }, | 
|  |  | 
|  | aidl: { | 
|  | export_aidl_headers: true, | 
|  | }, | 
|  |  | 
|  | cflags: [ | 
|  | "-Wall", | 
|  | "-Wextra", | 
|  | "-Werror", | 
|  | "-Wzero-as-null-pointer-constant", | 
|  | ], | 
|  | product_variables: { | 
|  | binder32bit: { | 
|  | cflags: ["-DBINDER_IPC_32BIT=1"], | 
|  | }, | 
|  | }, | 
|  |  | 
|  | shared_libs: [ | 
|  | "libbase", | 
|  | "liblog", | 
|  | "libcutils", | 
|  | "libutils", | 
|  | "libbinderthreadstate", | 
|  | ], | 
|  |  | 
|  | header_libs: [ | 
|  | "libbinder_headers", | 
|  | ], | 
|  |  | 
|  | export_header_lib_headers: [ | 
|  | "libbinder_headers", | 
|  | ], | 
|  |  | 
|  | clang: true, | 
|  | sanitize: { | 
|  | misc_undefined: ["integer"], | 
|  | }, | 
|  | } | 
|  |  | 
|  | // AIDL interface between libbinder and framework.jar | 
|  | filegroup { | 
|  | name: "libbinder_aidl", | 
|  | srcs: [ | 
|  | "aidl/android/content/pm/IPackageManagerNative.aidl", | 
|  | ], | 
|  | } | 
|  |  | 
|  | subdirs = ["tests"] |