diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/cpp-ipfs-http-client')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/cpp-ipfs-http-client/default.nix | 37 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/cpp-ipfs-http-client/unvendor-nlohmann-json.patch | 27 |
2 files changed, 64 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/cpp-ipfs-http-client/default.nix b/nixpkgs/pkgs/development/libraries/cpp-ipfs-http-client/default.nix new file mode 100644 index 000000000000..d44eed5e76f0 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/cpp-ipfs-http-client/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchFromGitHub, curl, cmake, nlohmann_json }: + +stdenv.mkDerivation { + pname = "cpp-ipfs-http-client"; + version = "unstable-2022-01-30"; + + src = fetchFromGitHub { + owner = "vasild"; + repo = "cpp-ipfs-http-client"; + rev = "3cdfa7fc6326e49fc81b3c7ca43ce83bdccef6d9"; + sha256 = "sha256-/oyafnk4SbrvoCh90wkZXNBjknMKA6EEUoEGo/amLUo="; + }; + + patches = [ ./unvendor-nlohmann-json.patch ]; + + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace '# Fetch "JSON for Modern C++"' "include_directories(${nlohmann_json}/include)" + ''; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ curl ]; + propagatedBuildInputs = [ nlohmann_json ]; + + env.NIX_CFLAGS_COMPILE = toString [ + "-Wno-error=range-loop-construct" + # Needed with GCC 12 + "-Wno-error=deprecated-declarations" + ]; + + meta = with lib; { + description = "IPFS C++ API client library"; + homepage = "https://github.com/vasild/cpp-ipfs-http-client"; + license = licenses.mit; + platforms = [ "x86_64-linux" "x86_64-darwin" ]; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/cpp-ipfs-http-client/unvendor-nlohmann-json.patch b/nixpkgs/pkgs/development/libraries/cpp-ipfs-http-client/unvendor-nlohmann-json.patch new file mode 100644 index 000000000000..e21b4e9a7a71 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/cpp-ipfs-http-client/unvendor-nlohmann-json.patch @@ -0,0 +1,27 @@ +--- source/CMakeLists.txt ++++ source/CMakeLists.txt +@@ -56,11 +56,6 @@ target_include_directories(${IPFS_API_LIBNAME} + ) + + # Fetch "JSON for Modern C++" +-include(FetchContent) +-message(STATUS "Fetching nlohmann/JSON") +-# Retrieve Nlohmann JSON +-FetchContent_Declare(json URL https://github.com/nlohmann/json/releases/download/v3.10.5/json.tar.xz) +-FetchContent_MakeAvailable(json) + + # libcurl requires additional libs only for static Windows builds + if(WIN32) +@@ -71,12 +66,11 @@ set_target_properties(${IPFS_API_LIBNAME} PROPERTIES + SOVERSION ${PROJECT_VERSION_MAJOR} + VERSION ${PROJECT_VERSION} + ) +-target_link_libraries(${IPFS_API_LIBNAME} ${CURL_LIBRARIES} ${WINDOWS_CURL_LIBS} nlohmann_json::nlohmann_json) ++target_link_libraries(${IPFS_API_LIBNAME} ${CURL_LIBRARIES} ${WINDOWS_CURL_LIBS}) + if(NOT DISABLE_INSTALL) + install(TARGETS ${IPFS_API_LIBNAME} DESTINATION lib) + install(FILES include/ipfs/client.h DESTINATION include/ipfs) + install(FILES include/ipfs/http/transport.h DESTINATION include/ipfs/http) +- install(FILES ${json_SOURCE_DIR}/include/nlohmann/json.hpp DESTINATION include/nlohmann) + endif() + # Tests, use "CTEST_OUTPUT_ON_FAILURE=1 make test" to see output from failed tests |