aboutsummaryrefslogtreecommitdiff
path: root/pkgs/development/libraries/libjson-rpc-cpp
diff options
context:
space:
mode:
authorartuuge <artuuge@gmail.com>2016-06-28 08:41:24 +0200
committerartuuge <artuuge@gmail.com>2016-07-01 19:14:00 +0200
commit83fd63995af5447a25ae79494b7ba29cd9ff0441 (patch)
treedc056dc1a4f4c84d11887615ac35896396da50d3 /pkgs/development/libraries/libjson-rpc-cpp
parent7d67a4da99b1c83ae7c9405d8f35a9727778982e (diff)
cpp_ethereum: init at 1.2.9
jsoncpp: 1.6.5 -> 1.7.2 libjson_rpc_cpp: 0.2.1 -> 0.6.0 argtable: init at 3.0.1 libcpuid: init at 0.2.2
Diffstat (limited to 'pkgs/development/libraries/libjson-rpc-cpp')
-rw-r--r--pkgs/development/libraries/libjson-rpc-cpp/0.2.1/default.nix30
-rw-r--r--pkgs/development/libraries/libjson-rpc-cpp/default.nix77
2 files changed, 88 insertions, 19 deletions
diff --git a/pkgs/development/libraries/libjson-rpc-cpp/0.2.1/default.nix b/pkgs/development/libraries/libjson-rpc-cpp/0.2.1/default.nix
new file mode 100644
index 000000000000..5e0a8560110b
--- /dev/null
+++ b/pkgs/development/libraries/libjson-rpc-cpp/0.2.1/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, cmake, curl }:
+
+let
+ basename = "libjson-rpc-cpp";
+ version = "0.2.1";
+in
+
+stdenv.mkDerivation {
+ name = "${basename}-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/cinemast/${basename}/archive/${version}.tar.gz";
+ sha256 = "1pc9nn4968qkda8vr4f9dijn2fcldm8i0ymwmql29h4cl5ghdnpw";
+ };
+
+ buildInputs = [ cmake curl ];
+
+ NIX_LDFLAGS = "-lpthread";
+ enableParallelBuilding = true;
+ doCheck = true;
+
+ checkPhase = "LD_LIBRARY_PATH=out/ ctest";
+
+ meta = {
+ description = "C++ framework for json-rpc (json remote procedure call)";
+ homepage = https://github.com/cinemast/libjson-rpc-cpp;
+ license = stdenv.lib.licenses.mit;
+ platforms = stdenv.lib.platforms.linux;
+ };
+}
diff --git a/pkgs/development/libraries/libjson-rpc-cpp/default.nix b/pkgs/development/libraries/libjson-rpc-cpp/default.nix
index 5e0a8560110b..2cfede1eb6e3 100644
--- a/pkgs/development/libraries/libjson-rpc-cpp/default.nix
+++ b/pkgs/development/libraries/libjson-rpc-cpp/default.nix
@@ -1,30 +1,69 @@
-{ stdenv, fetchurl, cmake, curl }:
+{ stdenv
+, fetchgit
+, cmake
+, jsoncpp
+, argtable
+, curl
+, libmicrohttpd
+, doxygen
+, catch
+}:
+stdenv.mkDerivation rec {
+ name = "libjson-rpc-cpp-${version}";
+ version = "0.6.0";
-let
- basename = "libjson-rpc-cpp";
- version = "0.2.1";
-in
+ src = fetchgit {
+ url = https://github.com/cinemast/libjson-rpc-cpp.git;
+ sha256 = "00fxxisg89zgg1wq047n8r8ws48jx35x3s6bbym4kg7dkxv9vv9f";
+ rev = "c6e3d7195060774bf95afc6df9c9588922076d3e";
+ };
-stdenv.mkDerivation {
- name = "${basename}-${version}";
+ patchPhase = ''
+ for f in cmake/FindArgtable.cmake \
+ src/stubgenerator/stubgenerator.cpp \
+ src/stubgenerator/stubgeneratorfactory.cpp
+ do
+ sed -i -re 's/argtable2/argtable3/g' $f
+ done
- src = fetchurl {
- url = "https://github.com/cinemast/${basename}/archive/${version}.tar.gz";
- sha256 = "1pc9nn4968qkda8vr4f9dijn2fcldm8i0ymwmql29h4cl5ghdnpw";
- };
+ sed -i -re 's#MATCHES "jsoncpp"#MATCHES ".*/jsoncpp/json$"#g' cmake/FindJsoncpp.cmake
+ '';
+
+ configurePhase = ''
+ mkdir -p Build/Install
+ pushd Build
+
+ cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/Install \
+ -DCMAKE_BUILD_TYPE=Release
+ '';
+
+ installPhase = ''
+ mkdir -p $out
+
+ function fixRunPath {
+ p=$(patchelf --print-rpath $1)
+ q="$p:${stdenv.lib.makeLibraryPath [ stdenv.cc.cc jsoncpp argtable libmicrohttpd curl ]}:$out/lib"
+ patchelf --set-rpath $q $1
+ }
+
+ make install
- buildInputs = [ cmake curl ];
+ sed -i -re "s#-([LI]).*/Build/Install(.*)#-\1$out\2#g" Install/lib/pkgconfig/*.pc
+ for f in Install/lib/*.so* $(find Install/bin -executable -type f); do
+ fixRunPath $f
+ done
+
+ cp -r Install/* $out
+ '';
- NIX_LDFLAGS = "-lpthread";
- enableParallelBuilding = true;
- doCheck = true;
+ dontStrip = true;
- checkPhase = "LD_LIBRARY_PATH=out/ ctest";
+ buildInputs = [ cmake jsoncpp argtable curl libmicrohttpd doxygen catch ];
- meta = {
+ meta = with stdenv.lib; {
description = "C++ framework for json-rpc (json remote procedure call)";
homepage = https://github.com/cinemast/libjson-rpc-cpp;
- license = stdenv.lib.licenses.mit;
- platforms = stdenv.lib.platforms.linux;
+ license = licenses.mit;
+ platforms = platforms.linux;
};
}