Narumol Prangnawarat | 26654cb | 2023-05-03 16:08:11 +0100 | [diff] [blame] | 1 | # |
| 2 | # Copyright © 2023 Arm Ltd and Contributors. All rights reserved. |
| 3 | # SPDX-License-Identifier: MIT |
| 4 | # |
| 5 | |
| 6 | include(FindPackageHandleStandardArgs) |
| 7 | unset(TFLITEABSL_FOUND) |
| 8 | |
| 9 | find_path(TfLite_ABSL_SYNC_HEADERS |
| 10 | NAMES |
| 11 | absl |
| 12 | HINTS |
| 13 | ${TFLITE_LIB_ROOT}/abseil-cpp) |
| 14 | |
| 15 | # First look for the static version of tensorflow lite |
| 16 | find_library(TfLite_LIB NAMES "libtensorflow-lite.a" HINTS ${TFLITE_LIB_ROOT} ${TFLITE_LIB_ROOT}/tensorflow/lite) |
| 17 | |
| 18 | # If the static library was found, gather extra absl libraries for opaque delegate |
| 19 | if (TfLite_LIB MATCHES .a$) |
| 20 | find_library(TfLite_abseil_base_LIB "libabsl_base.a" PATH |
| 21 | ${TFLITE_LIB_ROOT}/_deps/abseil-cpp-build/absl/base) |
| 22 | find_library(TfLite_abseil_log_severity_LIB "libabsl_log_severity.a" PATH |
| 23 | ${TFLITE_LIB_ROOT}/_deps/abseil-cpp-build/absl/base) |
| 24 | find_library(TfLite_abseil_spinlock_wait_LIB "libabsl_spinlock_wait.a" PATH |
| 25 | ${TFLITE_LIB_ROOT}/_deps/abseil-cpp-build/absl/base) |
| 26 | find_library(TfLite_abseil_malloc_internal_LIB "libabsl_malloc_internal.a" PATH |
| 27 | ${TFLITE_LIB_ROOT}/_deps/abseil-cpp-build/absl/base) |
| 28 | find_library(TfLite_abseil_raw_logging_internal_LIB "libabsl_raw_logging_internal.a" PATH |
| 29 | ${TFLITE_LIB_ROOT}/_deps/abseil-cpp-build/absl/base) |
| 30 | find_library(TfLite_abseil_stacktrace_LIB "libabsl_stacktrace.a" PATH |
| 31 | ${TFLITE_LIB_ROOT}/_deps/abseil-cpp-build/absl/debugging) |
| 32 | find_library(TfLite_abseil_debugging_internal_LIB "libabsl_debugging_internal.a" PATH |
| 33 | ${TFLITE_LIB_ROOT}/_deps/abseil-cpp-build/absl/debugging) |
| 34 | find_library(TfLite_abseil_symbolize_LIB "libabsl_symbolize.a" PATH |
| 35 | ${TFLITE_LIB_ROOT}/_deps/abseil-cpp-build/absl/debugging) |
| 36 | find_library(TfLite_abseil_demangle_internal_LIB "libabsl_demangle_internal.a" PATH |
| 37 | ${TFLITE_LIB_ROOT}/_deps/abseil-cpp-build/absl/debugging) |
| 38 | find_library(TfLite_abseil_time_LIB "libabsl_time.a" PATH |
| 39 | ${TFLITE_LIB_ROOT}/_deps/abseil-cpp-build/absl/time) |
| 40 | find_library(TfLite_abseil_time_zone_LIB "libabsl_time_zone.a" PATH |
| 41 | ${TFLITE_LIB_ROOT}/_deps/abseil-cpp-build/absl/time) |
| 42 | find_library(TfLite_abseil_int128_LIB "libabsl_int128.a" PATH |
| 43 | ${TFLITE_LIB_ROOT}/_deps/abseil-cpp-build/absl/numeric) |
| 44 | |
| 45 | ## Set TFLITEABSL_FOUND |
| 46 | find_package_handle_standard_args(TfLiteAbsl DEFAULT_MSG TfLite_ABSL_SYNC_HEADERS TfLite_abseil_base_LIB |
| 47 | TfLite_abseil_int128_LIB TfLite_abseil_spinlock_wait_LIB |
| 48 | TfLite_abseil_raw_logging_internal_LIB TfLite_abseil_malloc_internal_LIB |
| 49 | TfLite_abseil_symbolize_LIB TfLite_abseil_stacktrace_LIB |
| 50 | TfLite_abseil_demangle_internal_LIB TfLite_abseil_debugging_internal_LIB |
| 51 | TfLite_abseil_time_LIB TfLite_abseil_time_zone_LIB) |
| 52 | |
| 53 | ## Set external variables for usage in CMakeLists.txt |
| 54 | if(TFLITEABSL_FOUND) |
| 55 | set(TfLite_ABSL_SYNC_HEADERS ${TfLite_ABSL_SYNC_HEADERS}) |
| 56 | set(TfLite_Extra_Absl_LIB ${TfLite_abseil_base_LIB} ${TfLite_abseil_int128_LIB} ${TfLite_abseil_spinlock_wait_LIB} |
| 57 | ${TfLite_abseil_raw_logging_internal_LIB} ${TfLite_abseil_malloc_internal_LIB} |
| 58 | ${TfLite_abseil_symbolize_LIB} ${TfLite_abseil_stacktrace_LIB} |
| 59 | ${TfLite_abseil_demangle_internal_LIB} ${TfLite_abseil_debugging_internal_LIB} |
| 60 | ${TfLite_abseil_time_LIB} ${TfLite_abseil_time_zone_LIB}) |
| 61 | endif() |
| 62 | endif() |