fix(3p/nix): Link to Abseil built by Nix
This didn't work previously ... but now it does. I think setting the standard explicitly is what did the trick, but it's slightly unclear to me why. Either way this means that Abseil is no longer constantly getting recompiled when building Nix, which is nice. Change-Id: I377f7b68bf1ef9045df6a2eee8fdd0c92f243547 Reviewed-on: https://cl.tvl.fyi/c/depot/+/921 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
This commit is contained in:
parent
f54a48f831
commit
5cb6e6ee21
4 changed files with 6 additions and 20 deletions
4
third_party/abseil_cpp/default.nix
vendored
4
third_party/abseil_cpp/default.nix
vendored
|
@ -7,6 +7,10 @@ in llvmPackages.libcxxStdenv.mkDerivation rec {
|
|||
src = ./.;
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DCMAKE_CXX_STANDARD=17"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "An open-source collection of C++ code designed to augment the C++ standard library";
|
||||
homepage = https://abseil.io/;
|
||||
|
|
19
third_party/nix/CMakeLists.txt
vendored
19
third_party/nix/CMakeLists.txt
vendored
|
@ -20,24 +20,7 @@ find_package(CURL)
|
|||
find_package(SQLite3)
|
||||
find_package(Threads)
|
||||
find_package(LibLZMA)
|
||||
|
||||
# Abseil really doesn't like being precompiled. It is included here as
|
||||
# an imported CMake project (i.e. it will be built /with/ this
|
||||
# project).
|
||||
#
|
||||
# In development mode, the 'abseil_cpp' folder is symlinked to
|
||||
# ../abseil_cpp (the relative location in the depot). In derivation
|
||||
# builds this symlink is automatically replaced with an appropriate
|
||||
# link to the Abseil sources in the Nix store.
|
||||
add_subdirectory(abseil_cpp)
|
||||
install(DIRECTORY abseil_cpp/absl
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
FILES_MATCHING
|
||||
PATTERN "*.inc"
|
||||
PATTERN "*.h"
|
||||
PATTERN "copts" EXCLUDE
|
||||
PATTERN "testdata" EXCLUDE
|
||||
)
|
||||
find_package(absl REQUIRED)
|
||||
|
||||
# Linking precompiled glog binaries (linked against libstdc++) leads
|
||||
# to working binaries that do not output log messages. It seems that
|
||||
|
|
1
third_party/nix/abseil_cpp
vendored
1
third_party/nix/abseil_cpp
vendored
|
@ -1 +0,0 @@
|
|||
../abseil_cpp/
|
2
third_party/nix/default.nix
vendored
2
third_party/nix/default.nix
vendored
|
@ -19,7 +19,6 @@ in pkgs.llvmPackages.libcxxStdenv.mkDerivation {
|
|||
|
||||
# Abseil's sources need to be symlinked into Nix' sources.
|
||||
postUnpack = ''
|
||||
ln -fs ${pkgs.abseil_cpp.drvAttrs.src} nix/abseil_cpp
|
||||
ln -fs ${pkgs.glog.drvAttrs.src} nix/glog
|
||||
'';
|
||||
|
||||
|
@ -35,6 +34,7 @@ in pkgs.llvmPackages.libcxxStdenv.mkDerivation {
|
|||
|
||||
# TODO(tazjin): Some of these might only be required for native inputs
|
||||
buildInputs = with pkgs; [
|
||||
abseil_cpp
|
||||
aws-s3-cpp
|
||||
brotli
|
||||
bzip2
|
||||
|
|
Loading…
Reference in a new issue