diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/zeroc-ice/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/zeroc-ice/default.nix | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/zeroc-ice/default.nix b/nixpkgs/pkgs/development/libraries/zeroc-ice/default.nix new file mode 100644 index 000000000000..ef16e381bcfd --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/zeroc-ice/default.nix @@ -0,0 +1,73 @@ +{ stdenv, lib, fetchFromGitHub, bzip2, expat, openssl, lmdb +, darwin, libiconv, Security +, cpp11 ? false +}: + +let + zeroc_mcpp = stdenv.mkDerivation rec { + pname = "zeroc-mcpp"; + version = "2.7.2.14"; + + src = fetchFromGitHub { + owner = "zeroc-ice"; + repo = "mcpp"; + rev = "v${version}"; + sha256 = "1psryc2ql1cp91xd3f8jz84mdaqvwzkdq2pr96nwn03ds4cd88wh"; + }; + + configureFlags = [ "--enable-mcpplib" ]; + installFlags = [ "PREFIX=$(out)" ]; + }; + +in stdenv.mkDerivation rec { + pname = "zeroc-ice"; + version = "3.7.2"; + + src = fetchFromGitHub { + owner = "zeroc-ice"; + repo = "ice"; + rev = "v${version}"; + sha256 = "0m9lh79dfpcwcp2jhmj0wqdcsw3rl633x2hzfw9n2i34jjv64fvg"; + }; + + buildInputs = [ zeroc_mcpp bzip2 expat openssl lmdb ] + ++ lib.optionals stdenv.isDarwin [ darwin.cctools libiconv Security ]; + + NIX_CFLAGS_COMPILE = "-Wno-error=class-memaccess -Wno-error=deprecated-copy"; + + prePatch = lib.optional stdenv.isDarwin '' + substituteInPlace Make.rules.Darwin \ + --replace xcrun "" + ''; + + preBuild = '' + makeFlagsArray+=( + "prefix=$out" + "OPTIMIZE=yes" + "USR_DIR_INSTALL=yes" + "LANGUAGES=cpp" + "CONFIGS=${if cpp11 then "cpp11-shared" else "shared"}" + "SKIP=slice2py" # provided by a separate package + ) + ''; + + buildFlags = [ "srcs" ]; # no tests; they require network + + enableParallelBuilding = true; + + outputs = [ "out" "bin" "dev" ]; + + postInstall = '' + mkdir -p $bin $dev/share + mv $out/bin $bin + mv $out/share/ice $dev/share + ''; + + meta = with lib; { + homepage = "https://www.zeroc.com/ice.html"; + description = "The internet communications engine"; + license = licenses.gpl2; + platforms = platforms.unix; + maintainers = with maintainers; [ abbradar ]; + }; +} |