Skip to content

Commit

Permalink
Merge pull request #55754 from orivej/aws-sdk-cpp
Browse files Browse the repository at this point in the history
 aws-sdk-cpp: 1.6.52 -> 1.7.49; add aws-checksums, aws-c-common, aws-c-event-stream
  • Loading branch information
orivej-nixos committed Feb 19, 2019
2 parents 446520b + 8f5afc5 commit 7b25f9c
Show file tree
Hide file tree
Showing 5 changed files with 103 additions and 31 deletions.
28 changes: 28 additions & 0 deletions pkgs/development/libraries/aws-c-common/default.nix
@@ -0,0 +1,28 @@
{ lib, stdenv, fetchFromGitHub, cmake }:

stdenv.mkDerivation rec {
pname = "aws-c-common";
version = "0.3.2";

src = fetchFromGitHub {
owner = "awslabs";
repo = pname;
rev = "v${version}";
sha256 = "169ha105qgcvj93hf1bhlya2nlwh8g5fvypd6whfjs9k0hqddi0c";
};

nativeBuildInputs = [ cmake ];

NIX_CFLAGS_COMPILE = lib.optionals stdenv.isDarwin [
"-Wno-nullability-extension"
"-Wno-typedef-redefinition"
];

meta = with lib; {
description = "AWS SDK for C common core";
homepage = https://github.com/awslabs/aws-c-common;
license = licenses.asl20;
platforms = platforms.unix;
maintainers = with maintainers; [ orivej eelco ];
};
}
29 changes: 29 additions & 0 deletions pkgs/development/libraries/aws-c-event-stream/default.nix
@@ -0,0 +1,29 @@
{ lib, stdenv, fetchFromGitHub, cmake, aws-c-common, aws-checksums }:

stdenv.mkDerivation rec {
pname = "aws-c-event-stream";
version = "0.1.1";

src = fetchFromGitHub {
owner = "awslabs";
repo = pname;
rev = "v${version}";
sha256 = "0anjynfghk3inysy21wqvhxha33xsswh3lm8pr7nx7cpj6cmr37m";
};

nativeBuildInputs = [ cmake ];

buildInputs = [ aws-c-common aws-checksums ];

cmakeFlags = [
"-DCMAKE_MODULE_PATH=${aws-c-common}/lib/cmake"
];

meta = with lib; {
description = "C99 implementation of the vnd.amazon.eventstream content-type";
homepage = https://github.com/awslabs/aws-c-event-stream;
license = licenses.asl20;
platforms = platforms.unix;
maintainers = with maintainers; [ orivej eelco ];
};
}
23 changes: 23 additions & 0 deletions pkgs/development/libraries/aws-checksums/default.nix
@@ -0,0 +1,23 @@
{ lib, stdenv, fetchFromGitHub, cmake }:

stdenv.mkDerivation rec {
pname = "aws-checksums";
version = "0.1.2";

src = fetchFromGitHub {
owner = "awslabs";
repo = pname;
rev = "v${version}";
sha256 = "1r21sfs1ik6cb8bz17w6gp6y2xa9rbjxjka0p6airb3qds094iv5";
};

nativeBuildInputs = [ cmake ];

meta = with lib; {
description = "HW accelerated CRC32c and CRC32";
homepage = https://github.com/awslabs/aws-checksums;
license = licenses.asl20;
platforms = platforms.unix;
maintainers = with maintainers; [ orivej eelco ];
};
}
48 changes: 17 additions & 31 deletions pkgs/development/libraries/aws-sdk-cpp/default.nix
@@ -1,27 +1,21 @@
{ lib, stdenv, fetchFromGitHub, cmake, curl, openssl, zlib
, aws-c-common, aws-c-event-stream, aws-checksums
, CoreAudio, AudioToolbox
, # Allow building a limited set of APIs, e.g. ["s3" "ec2"].
apis ? ["*"]
, # Whether to enable AWS' custom memory management.
customMemoryManagement ? true
}:

let
loaderVar =
if stdenv.isLinux
then "LD_LIBRARY_PATH"
else if stdenv.isDarwin
then "DYLD_LIBRARY_PATH"
else throw "Unsupported system!";
in stdenv.mkDerivation rec {
stdenv.mkDerivation rec {
name = "aws-sdk-cpp-${version}";
version = "1.6.52";
version = "1.7.49";

src = fetchFromGitHub {
owner = "awslabs";
repo = "aws-sdk-cpp";
rev = version;
sha256 = "17hyq6rv1xl3f70p2pfkkxm86gbfimq2pwpakv1wv3xjibmppbrf";
sha256 = "09j1y82jvi69mj7h751wg0zlyf3n8s2zgfn5p85v4659pl4jgqmf";
};

# FIXME: might be nice to put different APIs in different outputs
Expand All @@ -30,43 +24,35 @@ in stdenv.mkDerivation rec {
separateDebugInfo = stdenv.isLinux;

nativeBuildInputs = [ cmake curl ];
buildInputs = [ zlib curl openssl ]
++ lib.optionals (stdenv.isDarwin &&

buildInputs = [
curl openssl zlib
aws-c-common aws-c-event-stream aws-checksums
] ++ lib.optionals (stdenv.isDarwin &&
((builtins.elem "text-to-speech" apis) ||
(builtins.elem "*" apis)))
[ CoreAudio AudioToolbox ];

cmakeFlags =
lib.optional (!customMemoryManagement) "-DCUSTOM_MEMORY_MANAGEMENT=0"
cmakeFlags = [
"-DBUILD_DEPS=OFF"
"-DCMAKE_SKIP_BUILD_RPATH=OFF"
] ++ lib.optional (!customMemoryManagement) "-DCUSTOM_MEMORY_MANAGEMENT=0"
++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "-DENABLE_TESTING=OFF"
++ lib.optional (apis != ["*"])
"-DBUILD_ONLY=${lib.concatStringsSep ";" apis}";

enableParallelBuilding = true;

# Behold the escaping nightmare below on loaderVar o.O
preBuild =
''
# Ensure that the unit tests can find the *.so files.
for i in testing-resources aws-cpp-sdk-*; do
export ${loaderVar}=$(pwd)/$i:''${${loaderVar}}
done
'';

preConfigure =
''
rm aws-cpp-sdk-core-tests/aws/auth/AWSCredentialsProviderTest.cpp
'';

NIX_CFLAGS_COMPILE = [ "-Wno-error=noexcept-type" ];

__darwinAllowLocalNetworking = true;

meta = {
meta = with lib; {
description = "A C++ interface for Amazon Web Services";
homepage = https://github.com/awslabs/aws-sdk-cpp;
license = lib.licenses.asl20;
platforms = lib.platforms.linux ++ lib.platforms.darwin;
maintainers = [ lib.maintainers.eelco ];
license = licenses.asl20;
platforms = platforms.unix;
maintainers = with maintainers; [ eelco orivej ];
};
}
6 changes: 6 additions & 0 deletions pkgs/top-level/all-packages.nix
Expand Up @@ -9362,6 +9362,12 @@ in
inherit (darwin.apple_sdk.frameworks) AudioUnit CoreServices;
};

aws-c-common = callPackage ../development/libraries/aws-c-common { };

aws-c-event-stream = callPackage ../development/libraries/aws-c-event-stream { };

aws-checksums = callPackage ../development/libraries/aws-checksums { };

aws-sdk-cpp = callPackage ../development/libraries/aws-sdk-cpp {
inherit (darwin.apple_sdk.frameworks) CoreAudio AudioToolbox;
};
Expand Down

0 comments on commit 7b25f9c

Please sign in to comment.