about summary refs log tree commit diff
path: root/third_party/nix/CMakeLists.txt
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2020-07-05T19·02+0100
committertazjin <mail@tazj.in>2020-07-05T19·17+0000
commit0064e554863f454137a85370595bda9e7c4b692a (patch)
tree8dfa6399cb913f846d7a05a1e45031d4cb326c68 /third_party/nix/CMakeLists.txt
parenta6da980a0b4b95e1ac06d20aca7fbe59fff3c36c (diff)
feat(3p/nix): Add protobuf & gRPC dependencies and generate sources r/1216
Adds dependencies on the gRPC & protobuf libraries, and implements Nix
code to generate the C++ sources from the included proto definitions.

This is theoretically supported via CMake, but practically doesn't
work and I don't care to debug why.

Doing it like this lets us instead add a CMake library target for our
proto definitions based on the sources generated by Nix.

Pros:
  * no need to deal with the gRPC CMake mess
  * it works!

Cons: * iteration requires nix-shell restart
Change-Id: Ie1fe9807fc96c49cb8f7161ba59d093456062b15
Reviewed-on: https://cl.tvl.fyi/c/depot/+/927
Tested-by: BuildkiteCI
Reviewed-by: isomer <isomer@tvl.fyi>
Diffstat (limited to 'third_party/nix/CMakeLists.txt')
-rw-r--r--third_party/nix/CMakeLists.txt4
1 files changed, 3 insertions, 1 deletions
diff --git a/third_party/nix/CMakeLists.txt b/third_party/nix/CMakeLists.txt
index 58a1fe23fc5d..4e6b209c3699 100644
--- a/third_party/nix/CMakeLists.txt
+++ b/third_party/nix/CMakeLists.txt
@@ -15,12 +15,14 @@ set(PKGCONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 # contain useful definitions. Other dependencies are not treated
 # specially by CMake and are only linked into the resulting binary.
 find_package(BZip2)
-find_package(Boost COMPONENTS context) # probably coroutine + ::headers, lets find out
+find_package(Boost COMPONENTS context)
 find_package(CURL)
 find_package(LibLZMA)
+find_package(Protobuf REQUIRED)
 find_package(SQLite3)
 find_package(Threads)
 find_package(absl REQUIRED)
+find_package(gRPC REQUIRED)
 find_package(glog REQUIRED)
 
 # generate a configuration file (autoheader-style) to configure