summary refs log tree commit diff
path: root/pkgs/development/libraries/protobuf/generic-v3-cmake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/protobuf/generic-v3-cmake.nix')
-rw-r--r--pkgs/development/libraries/protobuf/generic-v3-cmake.nix118
1 files changed, 0 insertions, 118 deletions
diff --git a/pkgs/development/libraries/protobuf/generic-v3-cmake.nix b/pkgs/development/libraries/protobuf/generic-v3-cmake.nix
deleted file mode 100644
index 384d2d0decb..00000000000
--- a/pkgs/development/libraries/protobuf/generic-v3-cmake.nix
+++ /dev/null
@@ -1,118 +0,0 @@
-# The cmake version of this build is meant to enable both cmake and .pc being exported
-# this is important because grpc exports a .cmake file which also expects for protobuf
-# to have been exported through cmake as well.
-{ lib
-, stdenv
-, abseil-cpp
-, buildPackages
-, cmake
-, fetchFromGitHub
-, fetchpatch
-, gtest
-, zlib
-, version
-, sha256
-
-# downstream dependencies
-, python3
-
-, ...
-}:
-
-let
-  self = stdenv.mkDerivation {
-    pname = "protobuf";
-    inherit version;
-
-    src = fetchFromGitHub {
-      owner = "protocolbuffers";
-      repo = "protobuf";
-      rev = "v${version}";
-      inherit sha256;
-    };
-
-    # re-create submodule logic
-    postPatch = ''
-      rm -rf gmock
-      cp -r ${gtest.src}/googlemock third_party/gmock
-      cp -r ${gtest.src}/googletest third_party/
-      chmod -R a+w third_party/
-
-      ln -s ../googletest third_party/gmock/gtest
-      ln -s ../gmock third_party/googletest/googlemock
-      ln -s $(pwd)/third_party/googletest third_party/googletest/googletest
-    '' + lib.optionalString stdenv.isDarwin ''
-      substituteInPlace src/google/protobuf/testing/googletest.cc \
-        --replace 'tmpnam(b)' '"'$TMPDIR'/foo"'
-    '';
-
-    patches = lib.optionals (lib.versionOlder version "3.22") [
-      # fix protobuf-targets.cmake installation paths, and allow for CMAKE_INSTALL_LIBDIR to be absolute
-      # https://github.com/protocolbuffers/protobuf/pull/10090
-      (fetchpatch {
-        url = "https://github.com/protocolbuffers/protobuf/commit/a7324f88e92bc16b57f3683403b6c993bf68070b.patch";
-        sha256 = "sha256-SmwaUjOjjZulg/wgNmR/F5b8rhYA2wkKAjHIOxjcQdQ=";
-      })
-    ] ++ lib.optionals stdenv.hostPlatform.isStatic [
-      ./static-executables-have-no-rpath.patch
-    ];
-
-    nativeBuildInputs = let
-      protobufVersion = "${lib.versions.major version}_${lib.versions.minor version}";
-    in [
-      cmake
-    ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-      # protoc of the same version must be available for build. For non-cross builds, it's able to
-      # re-use the executable generated as part of the build
-      buildPackages."protobuf${protobufVersion}"
-    ];
-
-    buildInputs = [
-      zlib
-    ];
-
-    propagatedBuildInputs = [
-      abseil-cpp
-    ];
-
-    cmakeDir = if lib.versionOlder version "3.22" then "../cmake" else null;
-    cmakeFlags = [
-      "-Dprotobuf_ABSL_PROVIDER=package"
-    ] ++ lib.optionals (!stdenv.targetPlatform.isStatic) [
-      "-Dprotobuf_BUILD_SHARED_LIBS=ON"
-    ]
-    # Tests fail to build on 32-bit platforms; fixed in 3.22
-    # https://github.com/protocolbuffers/protobuf/issues/10418
-    ++ lib.optional
-      (stdenv.targetPlatform.is32bit && lib.versionOlder version "3.22")
-      "-Dprotobuf_BUILD_TESTS=OFF";
-
-    # unfortunately the shared libraries have yet to been patched by nix, thus tests will fail
-    doCheck = false;
-
-    passthru = {
-      tests = {
-        pythonProtobuf = python3.pkgs.protobuf.override(_: {
-          protobuf = self;
-        });
-      };
-
-      inherit abseil-cpp;
-    };
-
-    meta = {
-      description = "Google's data interchange format";
-      longDescription = ''
-        Protocol Buffers are a way of encoding structured data in an efficient
-        yet extensible format. Google uses Protocol Buffers for almost all of
-        its internal RPC protocols and file formats.
-      '';
-      license = lib.licenses.bsd3;
-      platforms = lib.platforms.unix;
-      homepage = "https://developers.google.com/protocol-buffers/";
-      maintainers = with lib.maintainers; [ jonringer ];
-      mainProgram = "protoc";
-    };
-  };
-in
-  self