/* * Copyright 2017 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. */ package { default_applicable_licenses: [ "packages_modules_NeuralNetworks_runtime_license", ], } // Added automatically by a large-scale-change that took the approach of // 'apply every license found to every target'. While this makes sure we respect // every license restriction, it may not be entirely correct. // // e.g. GPL in an MIT project might only apply to the contrib/ directory. // // Please consider splitting the single license below into multiple licenses, // taking care not to lose any license_kind information, and overriding the // default license using the 'licenses: [...]' property on targets as needed. // // For unused files, consider creating a 'fileGroup' with "//visibility:private" // to attach the license to, and including a comment whether the files may be // used in the current project. // See: http://go/android-license-faq license { name: "packages_modules_NeuralNetworks_runtime_license", package_name: "Android Neural Networks API Runtime", visibility: [":__subpackages__"], license_kinds: [ "SPDX-license-identifier-Apache-2.0", "SPDX-license-identifier-BSD", "SPDX-license-identifier-MPL", "SPDX-license-identifier-MPL-2.0", ], license_text: [ "NOTICE", ], } cc_library_headers { name: "libneuralnetworks_headers", host_supported: true, vendor_available: true, export_include_dirs: ["include"], min_sdk_version: "30", apex_available: [ "com.android.neuralnetworks", "test_com.android.neuralnetworks", // Due to the dependency from libneuralnetworks_common // that is available to the platform "//apex_available:platform", ], } cc_library_headers { name: "libneuralnetworks_headers_ndk", host_supported: true, export_include_dirs: ["include"], sdk_version: "current", } cc_library_headers { name: "libneuralnetworks_private_headers", host_supported: true, export_include_dirs: ["."], } cc_defaults { name: "libneuralnetworks_defaults", defaults: ["neuralnetworks_use_latest_utils_hal_aidl"], host_supported: true, use_version_lib: true, // b/109953668, disable OpenMP // openmp: true, srcs: [ "AppInfoFetcher.cpp", "BurstBuilder.cpp", "CompilationBuilder.cpp", "ExecutionBuilder.cpp", "ExecutionCallback.cpp", "ExecutionPlan.cpp", "Manager.cpp", "Memory.cpp", "ModelArchHasher.cpp", "ModelArgumentInfo.cpp", "ModelBuilder.cpp", "NeuralNetworks.cpp", "ServerFlag.cpp", "Telemetry.cpp", "TypeManager.cpp", ], target: { android: { version_script: "libneuralnetworks.map.txt", generated_sources: ["statslog_neuralnetworks.cpp"], generated_headers: ["statslog_neuralnetworks.h"], srcs: [ "TelemetryStatsd.cpp", ], shared_libs: [ "libnativewindow", "libstatssocket", "libvndksupport", ], whole_static_libs: [ "libprocpartition", ], }, host: { cflags: [ "-D__INTRODUCED_IN(n)=", ], }, }, // TODO(pszczepaniak, b/144488395): Use system libnativewindow, // this would remove half of dependencies here. static_libs: [ "android.hardware.neuralnetworks@1.0", "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.2", "android.hardware.neuralnetworks@1.3", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libaidlcommonsupport", "libbase", "libcrypto_static", "libcutils", "libfmq", "libhidlbase", "libhidlmemory", "libjsoncpp", "libmath", "libneuralnetworks_common", "libprocessgroup", "libtextclassifier_hash_static", "libutils", "neuralnetworks_types", "neuralnetworks_utils_hal_service", "server_configurable_flags", ], stl: "libc++_static", shared_libs: [ "libbinder_ndk", "libcgrouprc", "liblog", "libneuralnetworks_packageinfo", ], header_libs: [ "libneuralnetworks_headers", ], export_header_lib_headers: [ "libneuralnetworks_headers", ], } cc_defaults { name: "libneuralnetworks_v2_defaults", defaults: ["libneuralnetworks_defaults"], srcs: [ "FlatbufferModelBuilder.cpp", "NeuralNetworksV2.cpp", "operation_converters/AddOperationConverter.cpp", "operation_converters/ArithmeticOperationConverter.cpp", "operation_converters/Conv2DOperationConverter.cpp", "operation_converters/DepthwiseConv2DOperationConverter.cpp", "operation_converters/LogisticOperationConverter.cpp", "operation_converters/OperationConverterResolver.cpp", "operation_converters/SubGraphContext.cpp", ], exclude_srcs: [ "NeuralNetworks.cpp", ], static_libs: [ "libtflite_static", ], include_dirs: [ "external/flatbuffers/include", "external/tensorflow", ], } cc_library_shared { name: "libneuralnetworks", llndk: { symbol_file: "libneuralnetworks.map.txt", override_export_include_dirs: ["include"], }, defaults: [ "libneuralnetworks_defaults", "neuralnetworks_defaults", ], min_sdk_version: "30", apex_available: [ "com.android.neuralnetworks", "test_com.android.neuralnetworks", ], stubs: { versions: [ "30", "31", ], symbol_file: "libneuralnetworks.map.txt", }, } // Required for tests (b/147158681) cc_library_static { name: "libneuralnetworks_static", defaults: [ "libneuralnetworks_defaults", "neuralnetworks_defaults", ], apex_available: ["//apex_available:platform"], } // Required for tests (b/147158681) cc_library_static { name: "libneuralnetworks_static_experimental", defaults: [ "libneuralnetworks_defaults", "neuralnetworks_defaults", ], exclude_static_libs: [ "libneuralnetworks_common", "neuralnetworks_types", "server_configurable_flags", ], static_libs: [ "libneuralnetworks_common_experimental", "neuralnetworks_types_experimental", ], cflags: ["-DNN_EXPERIMENTAL_FEATURE"], apex_available: ["//apex_available:platform"], } cc_library_static { name: "libneuralnetworks_v2_static_experimental", defaults: [ "libneuralnetworks_v2_defaults", "neuralnetworks_defaults", ], exclude_static_libs: [ "libneuralnetworks_common", "neuralnetworks_types", "server_configurable_flags", ], static_libs: [ "libneuralnetworks_common_experimental", "neuralnetworks_types_experimental", ], cflags: ["-DNN_EXPERIMENTAL_FEATURE"], } cc_library_static { name: "libneuralnetworks_cl", defaults: [ "neuralnetworks_cl_defaults", "neuralnetworks_defaults", ], host_supported: false, apex_available: ["//apex_available:platform"], // b/109953668, disable OpenMP // openmp: true, srcs: [ "BurstBuilder.cpp", "CompilationBuilder.cpp", "ExecutionBuilder.cpp", "ExecutionCallback.cpp", "ExecutionPlan.cpp", "Manager.cpp", "Memory.cpp", "ModelArchHasher.cpp", "ModelArgumentInfo.cpp", "ModelBuilder.cpp", "NeuralNetworks.cpp", "ServerFlag.cpp", "SupportLibraryDiagnostic.cpp", "Telemetry.cpp", "TypeManager.cpp", ], static_libs: [ "libbase_ndk", "libcrypto_static", "libneuralnetworks_common_cl", "neuralnetworks_types_cl", ], shared_libs: [ "libnativewindow", ], header_libs: [ "libneuralnetworks_headers_ndk", "neuralnetworks_supportlibrary_types_ndk", ], export_header_lib_headers: [ "libneuralnetworks_headers_ndk", ], } ndk_headers { name: "libneuralnetworks_ndk_headers", from: "include", to: "android", srcs: [ "include/NeuralNetworks.h", "include/NeuralNetworksTypes.h", ], license: "NOTICE", } ndk_library { name: "libneuralnetworks", symbol_file: "libneuralnetworks.map.txt", // Android O-MR1 first_version: "27", export_header_libs: [ "libneuralnetworks_ndk_headers", ], } genrule { name: "statslog_neuralnetworks.h", tools: ["stats-log-api-gen"], cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_neuralnetworks.h --module neuralnetworks --namespace android,nn,stats", out: [ "statslog_neuralnetworks.h", ], } genrule { name: "statslog_neuralnetworks.cpp", tools: ["stats-log-api-gen"], cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_neuralnetworks.cpp --module neuralnetworks --namespace android,nn,stats --importHeader statslog_neuralnetworks.h", out: [ "statslog_neuralnetworks.cpp", ], }