summary refs log tree commit diff
path: root/pkgs/development/libraries/aws-crt-cpp
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2022-01-09 00:50:22 +0100
committerJan Tojnar <jtojnar@gmail.com>2022-01-09 02:04:37 +0100
commit051f0406cb3c6c28e19f57c8d1ae51c0a458baf9 (patch)
treefe04bb3dceb1eb91a6cac5469604ff3343783545 /pkgs/development/libraries/aws-crt-cpp
parent701f1c4c55be8ac28bf8fd5acf9d3bb6f047248b (diff)
downloadnixpkgs-051f0406cb3c6c28e19f57c8d1ae51c0a458baf9.tar
nixpkgs-051f0406cb3c6c28e19f57c8d1ae51c0a458baf9.tar.gz
nixpkgs-051f0406cb3c6c28e19f57c8d1ae51c0a458baf9.tar.bz2
nixpkgs-051f0406cb3c6c28e19f57c8d1ae51c0a458baf9.tar.lz
nixpkgs-051f0406cb3c6c28e19f57c8d1ae51c0a458baf9.tar.xz
nixpkgs-051f0406cb3c6c28e19f57c8d1ae51c0a458baf9.tar.zst
nixpkgs-051f0406cb3c6c28e19f57c8d1ae51c0a458baf9.zip
aws-crt-cpp: add dev output
This will prevent s2n-tls.dev from propagatedBuildInputs from ending in the out closure.
Diffstat (limited to 'pkgs/development/libraries/aws-crt-cpp')
-rw-r--r--pkgs/development/libraries/aws-crt-cpp/0001-build-Make-includedir-properly-overrideable.patch58
-rw-r--r--pkgs/development/libraries/aws-crt-cpp/default.nix13
2 files changed, 71 insertions, 0 deletions
diff --git a/pkgs/development/libraries/aws-crt-cpp/0001-build-Make-includedir-properly-overrideable.patch b/pkgs/development/libraries/aws-crt-cpp/0001-build-Make-includedir-properly-overrideable.patch
new file mode 100644
index 00000000000..ed08abfb48f
--- /dev/null
+++ b/pkgs/development/libraries/aws-crt-cpp/0001-build-Make-includedir-properly-overrideable.patch
@@ -0,0 +1,58 @@
+From 6be95cf45c4b5beae8b364468cef42d5c5880836 Mon Sep 17 00:00:00 2001
+From: Jan Tojnar <jtojnar@gmail.com>
+Date: Sun, 9 Jan 2022 01:57:18 +0100
+Subject: [PATCH] build: Make includedir properly overrideable
+
+This is required by some package managers like Nix.
+---
+ CMakeLists.txt | 20 ++++++++++++--------
+ 1 file changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ad50174..e0be58c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -54,6 +54,10 @@ elseif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
+     set(CMAKE_INSTALL_LIBDIR "lib")
+ endif()
+ 
++if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
++    set(CMAKE_INSTALL_INCLUDEDIR "include")
++endif()
++
+ if (${CMAKE_INSTALL_LIBDIR} STREQUAL "lib64")
+     set(FIND_LIBRARY_USE_LIB64_PATHS true)
+ endif()
+@@ -302,7 +306,7 @@ endif ()
+ 
+ target_include_directories(${PROJECT_NAME} PUBLIC
+         $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+-        $<INSTALL_INTERFACE:include>)
++        $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+ 
+ aws_use_package(aws-c-http)
+ aws_use_package(aws-c-mqtt)
+@@ -316,13 +320,13 @@ aws_use_package(aws-c-s3)
+ 
+ target_link_libraries(${PROJECT_NAME} ${DEP_AWS_LIBS})
+ 
+-install(FILES ${AWS_CRT_HEADERS} DESTINATION "include/aws/crt" COMPONENT Development)
+-install(FILES ${AWS_CRT_AUTH_HEADERS} DESTINATION "include/aws/crt/auth" COMPONENT Development)
+-install(FILES ${AWS_CRT_CRYPTO_HEADERS} DESTINATION "include/aws/crt/crypto" COMPONENT Development)
+-install(FILES ${AWS_CRT_IO_HEADERS} DESTINATION "include/aws/crt/io" COMPONENT Development)
+-install(FILES ${AWS_CRT_IOT_HEADERS} DESTINATION "include/aws/iot" COMPONENT Development)
+-install(FILES ${AWS_CRT_MQTT_HEADERS} DESTINATION "include/aws/crt/mqtt" COMPONENT Development)
+-install(FILES ${AWS_CRT_HTTP_HEADERS} DESTINATION "include/aws/crt/http" COMPONENT Development)
++install(FILES ${AWS_CRT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt" COMPONENT Development)
++install(FILES ${AWS_CRT_AUTH_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/auth" COMPONENT Development)
++install(FILES ${AWS_CRT_CRYPTO_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/crypto" COMPONENT Development)
++install(FILES ${AWS_CRT_IO_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/io" COMPONENT Development)
++install(FILES ${AWS_CRT_IOT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/iot" COMPONENT Development)
++install(FILES ${AWS_CRT_MQTT_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/mqtt" COMPONENT Development)
++install(FILES ${AWS_CRT_HTTP_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aws/crt/http" COMPONENT Development)
+ 
+ install(
+         TARGETS ${PROJECT_NAME}
+-- 
+2.34.1
+
diff --git a/pkgs/development/libraries/aws-crt-cpp/default.nix b/pkgs/development/libraries/aws-crt-cpp/default.nix
index 5d4a44ccf15..9f70be5eb8d 100644
--- a/pkgs/development/libraries/aws-crt-cpp/default.nix
+++ b/pkgs/development/libraries/aws-crt-cpp/default.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation rec {
   pname = "aws-crt-cpp";
   version = "0.17.8";
 
+  outputs = [ "out" "dev" ];
+
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-crt-cpp";
@@ -25,6 +27,12 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-eHABIg3v5ycpQzacW/8C74PT6yDOXGmJqDa9P1hN7Mo=";
   };
 
+  patches = [
+    # Correct include path for split outputs.
+    # https://github.com/awslabs/aws-crt-cpp/pull/325
+    ./0001-build-Make-includedir-properly-overrideable.patch
+  ];
+
   postPatch = ''
     substituteInPlace CMakeLists.txt --replace '-Werror' ""
   '';
@@ -53,6 +61,11 @@ stdenv.mkDerivation rec {
     "-DBUILD_SHARED_LIBS=ON"
   ];
 
+  postInstall = ''
+    # Prevent dependency cycle.
+    moveToOutput lib/aws-crt-cpp/cmake "$dev"
+  '';
+
   meta = with lib; {
     description = "C++ wrapper around the aws-c-* libraries";
     homepage = "https://github.com/awslabs/aws-crt-cpp";