Add meson build system support
This PR adds support for using the Meson build system
to build libedgetpu.
It's largely a duplicate of what's happening with Bazel.
Motivation:
- Not everyone can use the bazel build system.
- Meson can be used by pretty much any downstream packaging tool (it's roughly
analogous to CMake). This brings
libedgetputo a much larger audience, since with thse changes anyone with the right dependencies can build and/or package the library. - The bazel requirement for tensorflow-lite is propagated here, i.e., tensorflow-lite's static library doesn't seem to exist anywhere except in nixpkgs. Disclaimer: I contributed that to nixpkgs :)
Downsides:
- Two build systems to maintain
Other changes required to successfully build using meson:
- A number of pieces of code seemed to be unused, yet are using APIs that
don't exist anywhere in the codebase i.e.,
TestVector.
Things that are likely incomplete:
- Windows support, I don't have access to a windows machine to test this.
- Building with values of
darwinnother than'portable'. Using something other thanportableinvokes inclusion of files that don't exist in the codebase. - PCI support, I don't have Coral PCI hardware, only USB.
I also have done the same thing for libcoral (with nearly every test passing), but I've not made it into a PR yet because this PR is a hard dependency of that.
Hopefully these changes are viable, as I'd really love to be able to package up libedgetpu and libcoral into nixpkgs and bring Coral devices to a larger audience.
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
:memo: Please visit https://cla.developers.google.com/ to sign.
Once you've signed (or fixed any issues), please reply here with @googlebot I signed it! and we'll verify it.
What to do if you already signed the CLA
Individual signers
- It's possible we don't have your GitHub username or you're using a different email address on your commit. Check your existing CLA data and verify that your email is set on your git commits.
Corporate signers
- Your company has a Point of Contact who decides which employees are authorized to participate. Ask your POC to be added to the group of authorized contributors. If you don't know who your Point of Contact is, direct the Google project maintainer to go/cla#troubleshoot (Public version).
- The email used to register you as an authorized contributor must be the email used for the Git commit. Check your existing CLA data and verify that your email is set on your git commits.
- The email used to register you as an authorized contributor must also be attached to your GitHub account.
ℹ️ Googlers: Go here for more info.
@googlebot I signed it!
@dmitriykovalev Is there someone who might be able to review this?