I tried the example cmake project listed here, or something very similar to it.
This seems to imply that in order to build my application, which would link against a libtensorflow-lite.a, the libtensorflow-lite target needs to be built first.
Ok, so what I tried next is to enable the CMAKE_VERBOSE_MAKEFILE=ON variable. The linker command line gives me this output:
/usr/bin/c++ -march=native -O3 -flto CMakeFiles/my_demo.dir/example/mydemo.cpp.o -o my_demo -Wl,-rpath,/usr/local/lib libmy_lib.a <additional lib include switches I can account for> tensorflow-lite/libtensorflow-lite.a _deps/abseil-cpp-build/absl/flags/libabsl_flags.a _deps/abseil-cpp-build/absl/flags/libabsl_flags_internal.a _deps/abseil-cpp-build/absl/flags/libabsl_flags_marshalling.a _deps/abseil-cpp-build/absl/flags/libabsl_flags_reflection.a _deps/abseil-cpp-build/absl/flags/libabsl_flags_config.a _deps/abseil-cpp-build/absl/flags/libabsl_flags_program_name.a _deps/abseil-cpp-build/absl/flags/libabsl_flags_private_handle_accessor.a _deps/abseil-cpp-build/absl/flags/libabsl_flags_commandlineflag.a _deps/abseil-cpp-build/absl/flags/libabsl_flags_commandlineflag_internal.a _deps/abseil-cpp-build/absl/status/libabsl_status.a _deps/abseil-cpp-build/absl/strings/libabsl_str_format_internal.a _deps/abseil-cpp-build/absl/base/libabsl_strerror.a _deps/farmhash-build/libfarmhash.a _deps/fft2d-build/libfft2d_fftsg2d.a _deps/fft2d-build/libfft2d_fftsg.a -lm _deps/flatbuffers-build/libflatbuffers.a _deps/ruy-build/ruy/libruy_context_get_ctx.a _deps/ruy-build/ruy/libruy_context.a _deps/ruy-build/ruy/libruy_frontend.a _deps/ruy-build/ruy/libruy_kernel_arm.a _deps/ruy-build/ruy/libruy_kernel_avx.a _deps/ruy-build/ruy/libruy_kernel_avx2_fma.a _deps/ruy-build/ruy/libruy_kernel_avx512.a _deps/ruy-build/ruy/libruy_apply_multiplier.a _deps/ruy-build/ruy/libruy_pack_arm.a _deps/ruy-build/ruy/libruy_pack_avx.a _deps/ruy-build/ruy/libruy_pack_avx2_fma.a _deps/ruy-build/ruy/libruy_pack_avx512.a _deps/ruy-build/ruy/libruy_prepare_packed_matrices.a _deps/ruy-build/ruy/libruy_trmul.a _deps/ruy-build/ruy/libruy_ctx.a _deps/ruy-build/ruy/libruy_allocator.a _deps/ruy-build/ruy/libruy_prepacked_cache.a _deps/ruy-build/ruy/libruy_system_aligned_alloc.a _deps/ruy-build/ruy/libruy_have_built_path_for_avx.a _deps/ruy-build/ruy/libruy_have_built_path_for_avx2_fma.a _deps/ruy-build/ruy/libruy_have_built_path_for_avx512.a _deps/ruy-build/ruy/libruy_thread_pool.a _deps/ruy-build/ruy/libruy_blocking_counter.a _deps/ruy-build/ruy/libruy_wait.a _deps/ruy-build/ruy/libruy_denormal.a _deps/ruy-build/ruy/libruy_block_map.a _deps/ruy-build/ruy/libruy_tune.a _deps/ruy-build/ruy/libruy_cpuinfo.a _deps/ruy-build/ruy/profiler/libruy_profiler_instrumentation.a -pthread -ldl _deps/abseil-cpp-build/absl/types/libabsl_bad_any_cast_impl.a _deps/abseil-cpp-build/absl/hash/libabsl_hash.a _deps/abseil-cpp-build/absl/types/libabsl_bad_variant_access.a _deps/abseil-cpp-build/absl/hash/libabsl_city.a _deps/abseil-cpp-build/absl/hash/libabsl_low_level_hash.a _deps/abseil-cpp-build/absl/strings/libabsl_cord.a _deps/abseil-cpp-build/absl/strings/libabsl_cordz_info.a _deps/abseil-cpp-build/absl/strings/libabsl_cord_internal.a _deps/abseil-cpp-build/absl/strings/libabsl_cordz_functions.a _deps/abseil-cpp-build/absl/strings/libabsl_cordz_handle.a _deps/abseil-cpp-build/absl/container/libabsl_raw_hash_set.a _deps/abseil-cpp-build/absl/types/libabsl_bad_optional_access.a _deps/abseil-cpp-build/absl/container/libabsl_hashtablez_sampler.a _deps/abseil-cpp-build/absl/profiling/libabsl_exponential_biased.a _deps/abseil-cpp-build/absl/synchronization/libabsl_synchronization.a _deps/abseil-cpp-build/absl/debugging/libabsl_stacktrace.a _deps/abseil-cpp-build/absl/debugging/libabsl_symbolize.a _deps/abseil-cpp-build/absl/debugging/libabsl_debugging_internal.a _deps/abseil-cpp-build/absl/debugging/libabsl_demangle_internal.a _deps/abseil-cpp-build/absl/synchronization/libabsl_graphcycles_internal.a _deps/abseil-cpp-build/absl/base/libabsl_malloc_internal.a _deps/abseil-cpp-build/absl/time/libabsl_time.a _deps/abseil-cpp-build/absl/strings/libabsl_strings.a _deps/abseil-cpp-build/absl/strings/libabsl_strings_internal.a _deps/abseil-cpp-build/absl/base/libabsl_throw_delegate.a _deps/abseil-cpp-build/absl/numeric/libabsl_int128.a _deps/abseil-cpp-build/absl/time/libabsl_civil_time.a _deps/abseil-cpp-build/absl/time/libabsl_time_zone.a _deps/abseil-cpp-build/absl/base/libabsl_base.a _deps/abseil-cpp-build/absl/base/libabsl_raw_logging_internal.a _deps/abseil-cpp-build/absl/base/libabsl_log_severity.a _deps/abseil-cpp-build/absl/base/libabsl_spinlock_wait.a -lrt _deps/xnnpack-build/libXNNPACK.a -lm _deps/cpuinfo-build/libcpuinfo.a _deps/cpuinfo-build/deps/clog/libclog.a pthreadpool/libpthreadpool.a <more lib includes I can account for>
What I can't account for, is all these libs that follow libtensorflow-lite.a under _deps/* I know they are dependencies.
What I would like to know: is there a cmake-way to compile my application with a pre-built libtensorflow-lite.a lib & friends?
I did try the instructions at the CMake Site, on how to import an external static library. However, that not include the dependencies listed under _deps/* sub-folder.
I'm guessing the answer is to import these _deps/* dependencies manually in my Cmake script, but I was hoping there would be a smarter way to do this.
The script from the Tensorflow site is the only thing that seems to be linking my application properly.