Merge pull request #55754 from orivej/aws-sdk-cpp

aws-sdk-cpp: 1.6.52 -> 1.7.49; add aws-checksums, aws-c-common, aws-c-event-stream
This commit is contained in:
Orivej Desh (NixOS) 2019-02-19 22:20:41 +00:00 committed by GitHub
commit 7b25f9c833
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 103 additions and 31 deletions

View File

@ -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 ];
};
}

View File

@ -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 ];
};
}

View File

@ -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 ];
};
}

View File

@ -1,4 +1,5 @@
{ lib, stdenv, fetchFromGitHub, cmake, curl, openssl, zlib { lib, stdenv, fetchFromGitHub, cmake, curl, openssl, zlib
, aws-c-common, aws-c-event-stream, aws-checksums
, CoreAudio, AudioToolbox , CoreAudio, AudioToolbox
, # Allow building a limited set of APIs, e.g. ["s3" "ec2"]. , # Allow building a limited set of APIs, e.g. ["s3" "ec2"].
apis ? ["*"] apis ? ["*"]
@ -6,22 +7,15 @@
customMemoryManagement ? true customMemoryManagement ? true
}: }:
let stdenv.mkDerivation rec {
loaderVar =
if stdenv.isLinux
then "LD_LIBRARY_PATH"
else if stdenv.isDarwin
then "DYLD_LIBRARY_PATH"
else throw "Unsupported system!";
in stdenv.mkDerivation rec {
name = "aws-sdk-cpp-${version}"; name = "aws-sdk-cpp-${version}";
version = "1.6.52"; version = "1.7.49";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "awslabs"; owner = "awslabs";
repo = "aws-sdk-cpp"; repo = "aws-sdk-cpp";
rev = version; rev = version;
sha256 = "17hyq6rv1xl3f70p2pfkkxm86gbfimq2pwpakv1wv3xjibmppbrf"; sha256 = "09j1y82jvi69mj7h751wg0zlyf3n8s2zgfn5p85v4659pl4jgqmf";
}; };
# FIXME: might be nice to put different APIs in different outputs # FIXME: might be nice to put different APIs in different outputs
@ -30,43 +24,35 @@ in stdenv.mkDerivation rec {
separateDebugInfo = stdenv.isLinux; separateDebugInfo = stdenv.isLinux;
nativeBuildInputs = [ cmake curl ]; 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 "text-to-speech" apis) ||
(builtins.elem "*" apis))) (builtins.elem "*" apis)))
[ CoreAudio AudioToolbox ]; [ CoreAudio AudioToolbox ];
cmakeFlags = cmakeFlags = [
lib.optional (!customMemoryManagement) "-DCUSTOM_MEMORY_MANAGEMENT=0" "-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 (stdenv.buildPlatform != stdenv.hostPlatform) "-DENABLE_TESTING=OFF"
++ lib.optional (apis != ["*"]) ++ lib.optional (apis != ["*"])
"-DBUILD_ONLY=${lib.concatStringsSep ";" 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 = preConfigure =
'' ''
rm aws-cpp-sdk-core-tests/aws/auth/AWSCredentialsProviderTest.cpp rm aws-cpp-sdk-core-tests/aws/auth/AWSCredentialsProviderTest.cpp
''; '';
NIX_CFLAGS_COMPILE = [ "-Wno-error=noexcept-type" ];
__darwinAllowLocalNetworking = true; __darwinAllowLocalNetworking = true;
meta = { meta = with lib; {
description = "A C++ interface for Amazon Web Services"; description = "A C++ interface for Amazon Web Services";
homepage = https://github.com/awslabs/aws-sdk-cpp; homepage = https://github.com/awslabs/aws-sdk-cpp;
license = lib.licenses.asl20; license = licenses.asl20;
platforms = lib.platforms.linux ++ lib.platforms.darwin; platforms = platforms.unix;
maintainers = [ lib.maintainers.eelco ]; maintainers = with maintainers; [ eelco orivej ];
}; };
} }

View File

@ -9362,6 +9362,12 @@ in
inherit (darwin.apple_sdk.frameworks) AudioUnit CoreServices; 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 { aws-sdk-cpp = callPackage ../development/libraries/aws-sdk-cpp {
inherit (darwin.apple_sdk.frameworks) CoreAudio AudioToolbox; inherit (darwin.apple_sdk.frameworks) CoreAudio AudioToolbox;
}; };