google-coral / libedgetpu

Source code for the userspace level runtime driver for Coral.ai devices.
Apache License 2.0
179 stars 60 forks source link

Add meson build system support #23

Closed cpcloud closed 1 year ago

cpcloud commented 3 years ago

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:

  1. Not everyone can use the bazel build system.
  2. Meson can be used by pretty much any downstream packaging tool (it's roughly analogous to CMake). This brings libedgetpu to a much larger audience, since with thse changes anyone with the right dependencies can build and/or package the library.
  3. 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:

  1. Two build systems to maintain

Other changes required to successfully build using meson:

  1. 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:

  1. Windows support, I don't have access to a windows machine to test this.
  2. Building with values of darwinn other than 'portable'. Using something other than portable invokes inclusion of files that don't exist in the codebase.
  3. 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.

google-cla[bot] commented 3 years ago

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
Corporate signers

ℹ️ Googlers: Go here for more info.

cpcloud commented 3 years ago

@googlebot I signed it!

cpcloud commented 2 years ago

@dmitriykovalev Is there someone who might be able to review this?