diff --git a/tensorflow/lite/delegates/gpu/BUILD b/tensorflow/lite/delegates/gpu/BUILD index 5604c16132f..c667c2056f4 100644 --- a/tensorflow/lite/delegates/gpu/BUILD +++ b/tensorflow/lite/delegates/gpu/BUILD @@ -29,6 +29,17 @@ cc_library( name = "gl_delegate", srcs = ["gl_delegate.cc"], hdrs = ["gl_delegate.h"], + linkopts = select({ + "//tensorflow:android": [ + "-lEGL", + # We don't need to link libGLESv3, because if it exists, + # it is a symlink to libGLESv2. + # See Compatibility Definition Document: + # https://source.android.com/compatibility/10/android-10-cdd#7_1_4_1_opengl_es + "-lGLESv2", + ], + "//conditions:default": [], + }), deps = [ "@com_google_absl//absl/base:core_headers", "@com_google_absl//absl/types:span", @@ -109,6 +120,11 @@ cc_binary( linkopts = [ "-Wl,-soname=libtensorflowlite_gpu_gl.so", ] + select({ + "//tensorflow:android": [ + "-lEGL", + "-lGLESv3", + "-fvisibility=hidden", + ], "//tensorflow:windows": [], "//conditions:default": [ "-fvisibility=hidden", @@ -120,7 +136,7 @@ cc_binary( "nobuilder", "notap", ], - deps = [":gl_delegate"] + tflite_extra_gles_deps(), + deps = [":gl_delegate"], ) # build -c opt --config android_arm64 --copt -Os --copt -DTFLITE_GPU_BINARY_RELEASE --copt --linkopt -s --strip always :libtensorflowlite_gpu_delegate.so @@ -129,6 +145,11 @@ cc_binary( linkopts = [ "-Wl,-soname=libtensorflowlite_gpu_delegate.so", ] + select({ + "//tensorflow:android": [ + "-lEGL", + "-lGLESv3", + "-fvisibility=hidden", + ], "//tensorflow:windows": [], "//conditions:default": [ "-fvisibility=hidden", @@ -140,7 +161,7 @@ cc_binary( "nobuilder", "notap", ], - deps = [":delegate"] + tflite_extra_gles_deps(), + deps = [":delegate"], ) # bazel build -c opt --cpu ios_arm64 --copt -Os --copt -DTFLITE_GPU_BINARY_RELEASE --copt -fvisibility=hidden --linkopt -s --strip always --cxxopt=-std=c++14 :libtensorflowlite_gpu_metal --apple_platform_type=ios @@ -200,9 +221,18 @@ cc_library( name = "delegate", srcs = ["delegate.cc"], hdrs = ["delegate.h"], + linkopts = select({ + "//tensorflow:android": [ + "-lEGL", + # We don't need to link libGLESv3, because if it exists, + # it is a symlink to libGLESv2. + # See Compatibility Definition Document: + # https://source.android.com/compatibility/10/android-10-cdd#7_1_4_1_opengl_es + "-lGLESv2", + ], + "//conditions:default": [], + }), deps = [ - "@com_google_absl//absl/memory", - "@com_google_absl//absl/types:span", "//tensorflow/lite:kernel_api", "//tensorflow/lite:minimal_logging", "//tensorflow/lite/c:common", @@ -216,5 +246,7 @@ cc_library( "//tensorflow/lite/delegates/gpu/common:status", "//tensorflow/lite/delegates/gpu/gl:api2", "//tensorflow/lite/kernels/internal:optimized_base", - ] + tflite_extra_gles_deps(), + "@com_google_absl//absl/memory", + "@com_google_absl//absl/types:span", + ], ) diff --git a/tensorflow/lite/delegates/gpu/cl/BUILD b/tensorflow/lite/delegates/gpu/cl/BUILD index 134148d084d..2e686810767 100644 --- a/tensorflow/lite/delegates/gpu/cl/BUILD +++ b/tensorflow/lite/delegates/gpu/cl/BUILD @@ -1,6 +1,8 @@ load("@flatbuffers//:build_defs.bzl", "flatbuffer_cc_library") -load("//tensorflow/core/platform:build_config_root.bzl", "tf_gpu_tests_tags") -load("//tensorflow/lite:special_rules.bzl", "tflite_extra_gles_deps") +load( + "//tensorflow/core/platform:build_config_root.bzl", + "tf_gpu_tests_tags", +) package( default_visibility = ["//visibility:public"], @@ -265,11 +267,17 @@ cc_library( name = "gpu_api_delegate", srcs = ["gpu_api_delegate.cc"], hdrs = ["gpu_api_delegate.h"], + linkopts = select({ + "//tensorflow:android": [ + "-lEGL", + "-lGLESv3", + ], + "//conditions:default": [], + }), deps = [ ":api", ":opencl_wrapper", ":tensor_type_util", - "@com_google_absl//absl/types:span", "//tensorflow/lite:kernel_api", "//tensorflow/lite/c:common", "//tensorflow/lite/delegates/gpu:api", @@ -279,7 +287,8 @@ cc_library( "//tensorflow/lite/delegates/gpu/common:model_transformer", "//tensorflow/lite/delegates/gpu/common:status", "//tensorflow/lite/delegates/gpu/common/transformations:general_transformations", - ] + tflite_extra_gles_deps(), + "@com_google_absl//absl/types:span", + ], ) cc_library( diff --git a/tensorflow/lite/delegates/gpu/common/testing/feature_parity/BUILD b/tensorflow/lite/delegates/gpu/common/testing/feature_parity/BUILD index 96dc61ed1e7..b5ceff30d1e 100644 --- a/tensorflow/lite/delegates/gpu/common/testing/feature_parity/BUILD +++ b/tensorflow/lite/delegates/gpu/common/testing/feature_parity/BUILD @@ -35,6 +35,10 @@ cc_library( cc_test( name = "opengl_test", srcs = ["opengl_test.cc"], + linkopts = [ + "-lEGL", + "-lGLESv3", + ], tags = tf_gpu_tests_tags() + [ "local", "nobuilder", diff --git a/tensorflow/lite/delegates/gpu/gl/kernels/BUILD b/tensorflow/lite/delegates/gpu/gl/kernels/BUILD index e5bd97c7182..700a553a125 100644 --- a/tensorflow/lite/delegates/gpu/gl/kernels/BUILD +++ b/tensorflow/lite/delegates/gpu/gl/kernels/BUILD @@ -1,5 +1,8 @@ -load("//tensorflow/lite:special_rules.bzl", "tflite_extra_gles_deps", "tflite_portable_test_suite_combined") -load("//tensorflow/core/platform:build_config_root.bzl", "tf_gpu_tests_tags") +load("//tensorflow/lite:special_rules.bzl", "tflite_portable_test_suite_combined") +load( + "//tensorflow/core/platform:build_config_root.bzl", + "tf_gpu_tests_tags", +) package( default_visibility = ["//visibility:public"], @@ -29,6 +32,10 @@ cc_test( name = "converter_test", size = "small", srcs = ["converter_test.cc"], + linkopts = [ + "-lEGL", + "-lGLESv3", + ], tags = tf_gpu_tests_tags() + [ "local", "nobuilder", @@ -37,15 +44,15 @@ cc_test( ], deps = [ ":converter", - "@com_google_googletest//:gtest_main", - "@com_google_absl//absl/types:span", "//tensorflow/lite/delegates/gpu/common:convert", "//tensorflow/lite/delegates/gpu/common:shape", "//tensorflow/lite/delegates/gpu/common:status", "//tensorflow/lite/delegates/gpu/gl:egl_environment", "//tensorflow/lite/delegates/gpu/gl:gl_buffer", "//tensorflow/lite/delegates/gpu/gl:portable", - ] + tflite_extra_gles_deps(), + "@com_google_absl//absl/types:span", + "@com_google_googletest//:gtest_main", + ], ) cc_library( @@ -648,9 +655,11 @@ cc_library( testonly = 1, srcs = ["test_util.cc"], hdrs = ["test_util.h"], + linkopts = [ + "-lEGL", + "-lGLESv3", + ], deps = [ - "@com_google_googletest//:gtest", - "@com_google_googletest//:gtest_main", "//tensorflow/lite/delegates/gpu/common:model", "//tensorflow/lite/delegates/gpu/common:operations", "//tensorflow/lite/delegates/gpu/common:status", @@ -664,7 +673,9 @@ cc_library( "//tensorflow/lite/delegates/gpu/gl:request_gpu_info", "//tensorflow/lite/delegates/gpu/gl:runtime_options", "//tensorflow/lite/delegates/gpu/gl/workgroups:default_calculator", - ] + tflite_extra_gles_deps(), + "@com_google_googletest//:gtest", + "@com_google_googletest//:gtest_main", + ], ) cc_library( diff --git a/tensorflow/lite/delegates/gpu/java/src/main/native/BUILD b/tensorflow/lite/delegates/gpu/java/src/main/native/BUILD index 695cb58381a..774fd417758 100644 --- a/tensorflow/lite/delegates/gpu/java/src/main/native/BUILD +++ b/tensorflow/lite/delegates/gpu/java/src/main/native/BUILD @@ -13,6 +13,13 @@ cc_library( name = "native", srcs = ["gpu_delegate_jni.cc"], copts = tflite_copts(), + linkopts = select({ + "//tensorflow:android": [ + "-lGLESv3", + "-lEGL", + ], + "//conditions:default": [], + }), tags = [ "manual", "notap",