1{ lib
2, stdenv
3, fetchFromGitHub
4, cmake
5, coreutils
6}:
7
8stdenv.mkDerivation rec {
9 pname = "aws-c-common";
10 version = "0.6.14";
11
12 src = fetchFromGitHub {
13 owner = "awslabs";
14 repo = pname;
15 rev = "v${version}";
16 sha256 = "sha256-JEaRB0k6zyk5UKuB2hEZUAsnp2SuI9mrok/EvwclUJk=";
17 };
18
19 nativeBuildInputs = [ cmake ];
20
21 cmakeFlags = [
22 "-DBUILD_SHARED_LIBS=ON"
23 "-DCMAKE_SKIP_BUILD_RPATH=OFF" # for tests
24 ];
25
26 # aws-c-common misuses cmake modules, so we need
27 # to manually add a MODULE_PATH to its consumers
28 setupHook = ./setup-hook.sh;
29
30 # Prevent the execution of tests known to be flaky.
31 preCheck = let
32 ignoreTests = [
33 "promise_test_multiple_waiters"
34 ] ++ lib.optionals stdenv.hostPlatform.isMusl [
35 "sba_metrics" # https://github.com/awslabs/aws-c-common/issues/839
36 ];
37 in ''
38 cat <<EOW >CTestCustom.cmake
39 SET(CTEST_CUSTOM_TESTS_IGNORE ${toString ignoreTests})
40 EOW
41 '';
42
43 doCheck = true;
44
45 meta = with lib; {
46 description = "AWS SDK for C common core";
47 homepage = "https://github.com/awslabs/aws-c-common";
48 license = licenses.asl20;
49 platforms = platforms.unix;
50 maintainers = with maintainers; [ orivej eelco r-burns ];
51 };
52}