cleanup dead nanomsg and build_overrides

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2287013003
TBR=

Review-Url: https://codereview.chromium.org/2287013003
diff --git a/DEPS b/DEPS
index 0be68eb..4f1afc1 100644
--- a/DEPS
+++ b/DEPS
@@ -17,7 +17,6 @@
   "third_party/externals/harfbuzz": "https://skia.googlesource.com/third_party/harfbuzz.git@1.3.0",
   "third_party/externals/jsoncpp" : "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git@1.0.0",
   "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@v0.5.0",
-  "third_party/externals/nanomsg" : "https://skia.googlesource.com/third_party/nanomsg.git@0.4-beta",
   "third_party/externals/zlib"    : "https://chromium.googlesource.com/chromium/src/third_party/zlib@4576304a4b9835aa8646c9735b079e1d96858633",
   "third_party/externals/giflib"  : "https://android.googlesource.com/platform/external/giflib.git@ab10e256df4f684260ca239905b1cec727181f6c",
 
diff --git a/bin/sync-and-gyp b/bin/sync-and-gyp
index 11905ed..469c84e 100755
--- a/bin/sync-and-gyp
+++ b/bin/sync-and-gyp
@@ -77,7 +77,6 @@
     'gm',
     'tests',
     'third_party/externals/icu/source/common',
-    'third_party/externals/nanomsg/src',
     'third_party/externals/sfntly/sfntly',
     'third_party/externals/shaderc2',
     'tools/VisualBench',
diff --git a/build_overrides/build.gni b/build_overrides/build.gni
deleted file mode 100644
index 72cf19a..0000000
--- a/build_overrides/build.gni
+++ /dev/null
@@ -1,3 +0,0 @@
-mac_sdk_min_build_override           = "10.10"
-mac_deployment_target_build_override = "10.7"
-
diff --git a/experimental/nanomsg/picture_demo.cpp b/experimental/nanomsg/picture_demo.cpp
deleted file mode 100644
index a0b83a2..0000000
--- a/experimental/nanomsg/picture_demo.cpp
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
- * Copyright 2014 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "nanomsg/src/nn.h"
-#include "nanomsg/src/pipeline.h"
-#include "nanomsg/src/reqrep.h"
-
-#include "SkCanvas.h"
-#include "SkCommandLineFlags.h"
-#include "SkData.h"
-#include "SkForceLinking.h"
-#include "SkGraphics.h"
-#include "SkImageEncoder.h"
-#include "SkOSFile.h"
-#include "SkPicture.h"
-#include "SkRandom.h"
-#include "SkStream.h"
-
-__SK_FORCE_IMAGE_DECODER_LINKING;
-
-// To keep things simple, PictureHeader is fixed-size POD.
-struct PictureHeader {
-    SkMatrix         matrix;
-    SkRect           clip;
-    SkXfermode::Mode xfermode;
-    pid_t            pid;
-    uint8_t          alpha;
-
-    PictureHeader()
-        : matrix(SkMatrix::I())
-        , clip(SkRect::MakeLargest())
-        , xfermode(SkXfermode::kSrcOver_Mode)
-        , pid(getpid())
-        , alpha(0xFF) {}
-};
-
-// A little adaptor: nn_iovec wants a non-const pointer for no obvious reason.
-static struct nn_iovec create_iov(const void* ptr, size_t size) {
-    struct nn_iovec iov = { const_cast<void*>(ptr), size };
-    return iov;
-}
-
-static void send_picture(int socket, const PictureHeader& header, const SkData& skp) {
-    // Vectored IO lets us send header and skp contiguously without first
-    // copying them to a contiguous buffer.
-    struct nn_iovec iov[] = {
-        create_iov(&header, sizeof(header)),
-        create_iov(skp.data(), skp.size()),
-    };
-
-    struct nn_msghdr msg;
-    sk_bzero(&msg, sizeof(msg));
-    msg.msg_iov    = iov;
-    msg.msg_iovlen = SK_ARRAY_COUNT(iov);
-
-    nn_sendmsg(socket, &msg, 0/*flags*/);
-}
-
-static sk_sp<SkPicture> recv_picture(int socket, PictureHeader* header) {
-    static const size_t hSize = sizeof(*header);  // It's easy to slip up and use sizeof(header).
-
-    void* msg;
-    int size = nn_recv(socket, &msg, NN_MSG, 0/*flags*/);
-    SkDebugf("%d bytes", size);
-
-    // msg is first a fixed-size header, then an .skp.
-    memcpy(header, msg, hSize);
-    SkMemoryStream stream((uint8_t*)msg + hSize, size - hSize);
-    sk_sp<SkPicture> pic = SkPicture::MakeFromStream(&stream);
-
-    SkDebugf(" from proccess %d:", header->pid);
-
-    nn_freemsg(msg);
-    return pic;
-}
-
-static void client(const char* skpPath, const char* dataEndpoint) {
-    // Read the .skp.
-    sk_sp<SkData> skp(SkData::MakeFromFileName(skpPath));
-    if (!skp) {
-        SkDebugf("Couldn't read %s\n", skpPath);
-        exit(1);
-    }
-    SkMemoryStream stream(skp->data(), skp->size());
-    sk_sp<SkPicture> picture(SkPicture::MakeFromStream(&stream));
-
-    PictureHeader header;
-    SkRandom rand(picture->cullRect().width() * picture->cullRect().height());
-    SkScalar r = rand.nextRangeScalar(0, picture->cullRect().width()),
-             b = rand.nextRangeScalar(0, picture->cullRect().height()),
-             l = rand.nextRangeScalar(0, r),
-             t = rand.nextRangeScalar(0, b);
-    header.clip.setLTRB(l,t,r,b);
-    header.matrix.setTranslate(-l, -t);
-    header.matrix.postRotate(rand.nextRangeScalar(-25, 25));
-    header.alpha = 0x7F;
-
-    //Clients use NN_REQ (request) type sockets.
-    int socket = nn_socket(AF_SP, NN_REQ);
-
-    // Clients connect a socket to an endpoint.
-    nn_connect(socket, dataEndpoint);
-
-    // Send the picture and its header.
-    SkDebugf("Sending %s (%d bytes)...", skpPath, skp->size());
-    send_picture(socket, header, *skp);
-
-    // Wait for ack.
-    uint8_t ack;
-    nn_recv(socket, &ack, sizeof(ack), 0/*flags*/);
-    SkDebugf(" ok.\n");
-}
-
-// Wait until socketA or socketB has something to tell us, and return which one.
-static int poll_in(int socketA, int socketB) {
-    struct nn_pollfd polls[] = {
-        { socketA, NN_POLLIN, 0 },
-        { socketB, NN_POLLIN, 0 },
-    };
-
-    nn_poll(polls, SK_ARRAY_COUNT(polls), -1/*no timeout*/);
-
-    if (polls[0].revents & NN_POLLIN) { return socketA; }
-    if (polls[1].revents & NN_POLLIN) { return socketB; }
-
-    SkFAIL("unreachable");
-    return 0;
-}
-
-static void server(const char* dataEndpoint, const char* controlEndpoint, SkCanvas* canvas) {
-    // NN_REP sockets receive a request then make a reply.  NN_PULL sockets just receive a request.
-    int data    = nn_socket(AF_SP, NN_REP);
-    int control = nn_socket(AF_SP, NN_PULL);
-
-    // Servers bind a socket to an endpoint.
-    nn_bind(data,    dataEndpoint);
-    nn_bind(control, controlEndpoint);
-
-    while (true) {
-        int ready = poll_in(data, control);
-
-        // If we got any message on the control socket, we can stop.
-        if (ready == control) {
-            break;
-        }
-
-        // We should have an .skp waiting for us on data socket.
-        PictureHeader header;
-        sk_sp<SkPicture> picture(recv_picture(data, &header));
-
-        SkPaint paint;
-        paint.setAlpha(header.alpha);
-        paint.setXfermodeMode(header.xfermode);
-
-        canvas->saveLayer(NULL, &paint);
-            canvas->concat(header.matrix);
-            canvas->clipRect(header.clip);
-            picture->playback(canvas);
-        canvas->restore();
-        SkDebugf(" drew");
-
-        // Send back an ack.
-        uint8_t ack = 42;
-        nn_send(data, &ack, sizeof(ack), 0/*flags*/);
-        SkDebugf(" and acked.\n");
-    }
-}
-
-static void stop(const char* controlEndpoint) {
-    // An NN_PUSH socket can send messages but not receive them.
-    int control = nn_socket(AF_SP, NN_PUSH);
-    nn_connect(control, controlEndpoint);
-
-    // Sending anything (including this 0-byte message) will tell server() to stop.
-    nn_send(control, NULL, 0, 0/*flags*/);
-}
-
-DEFINE_string2(skp, r, "", ".skp to send (as client)");
-DEFINE_string2(png, w, "", ".png to write (as server)");
-DEFINE_bool(stop, false, "If true, tell server to stop and write its canvas out as a .png.");
-DEFINE_string(data,    "ipc://nanomsg-picture-data",    "Endpoint for sending pictures.");
-DEFINE_string(control, "ipc://nanomsg-picture-control", "Endpoint for control channel.");
-
-int main(int argc, char** argv) {
-    SkAutoGraphics ag;
-    SkCommandLineFlags::Parse(argc, argv);
-
-    if (FLAGS_stop) {
-        stop(FLAGS_control[0]);
-    }
-
-    if (!FLAGS_skp.isEmpty()) {
-        client(FLAGS_skp[0], FLAGS_data[0]);
-    }
-
-    if (!FLAGS_png.isEmpty()) {
-        SkBitmap bitmap;
-        bitmap.allocN32Pixels(1000, 1000);
-        SkCanvas canvas(bitmap);
-        canvas.clear(0xFFFFFFFF);
-
-        server(FLAGS_data[0], FLAGS_control[0], &canvas);
-        canvas.flush();
-
-        SkImageEncoder::EncodeFile(FLAGS_png[0], bitmap, SkImageEncoder::kPNG_Type, 100);
-        SkDebugf("Wrote %s.\n", FLAGS_png[0]);
-    }
-
-    return 0;
-}
diff --git a/gyp/most.gyp b/gyp/most.gyp
index 5b53926..cece581 100644
--- a/gyp/most.gyp
+++ b/gyp/most.gyp
@@ -57,11 +57,6 @@
           ],
           'dependencies': ['iOSShell.gyp:iOSShell' ],
         }],
-        ['skia_os == "mac" or skia_os == "linux"', {
-          'dependencies': [ 
-            'nanomsg.gyp:*' ,
-          ],
-        }],
         ['skia_os in ["linux", "mac", "win"]', {
           'dependencies': [
             'skiaserve.gyp:skiaserve',
diff --git a/gyp/nanomsg.gyp b/gyp/nanomsg.gyp
deleted file mode 100644
index b09bd42..0000000
--- a/gyp/nanomsg.gyp
+++ /dev/null
@@ -1,129 +0,0 @@
-# Copyright 2015 Google Inc.
-#
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-{
-  'variables': {
-    'skia_warnings_as_errors': 0,
-  },
-  'targets': [{
-    # Draws pictures cross-process.
-    'target_name': 'nanomsg_picture_demo',
-    'type': 'executable',
-    'dependencies': [
-      'skia_lib.gyp:skia_lib',
-      'flags.gyp:flags',
-      'libnanomsg',
-    ],
-    'sources': [ '../experimental/nanomsg/picture_demo.cpp' ],
-  },{
-    'target_name': 'libnanomsg',
-    'type': 'static_library',
-
-    # Clients can include nanomsg public header foo.h with #include "nanomsg/src/foo.h"
-    'direct_dependent_settings': {
-      'include_dirs': [ '../third_party/externals' ]
-    },
-
-    'sources': [
-      '<!@(python find.py "*.c" ../third_party/externals/nanomsg/src)'
-    ],
-
-    # TODO(mtklein): Support Windows?
-    # To refresh: cd third_party/externals/nanomsg; ./autogen.sh; ./configure; copy from Makefile.
-    'conditions': [
-      ['skia_os == "linux"', {
-        'cflags': [ '-w' ],
-        'libraries': [
-            '-lpthread',
-            '-lanl',  # Provides getaddrinfo_a and co.
-        ],
-        'direct_dependent_settings': {
-            'libraries': [ '-lpthread', '-lanl' ],
-        },
-        'defines=': [             # equals sign throws away most Skia defines (just noise)
-          'HAVE_ACCEPT4',
-          'HAVE_ARPA_INET_H',
-          'HAVE_CLOCK_GETTIME',
-          'HAVE_DLFCN_H',
-          'HAVE_EPOLL_CREATE',
-          'HAVE_EVENTFD',
-          'HAVE_GETIFADDRS',
-          'HAVE_INTTYPES_H',
-          'HAVE_MEMORY_H',
-          'HAVE_NETDB_H',
-          'HAVE_NETINET_IN_H',
-          'HAVE_PIPE',
-          'HAVE_PIPE2',
-          'HAVE_POLL',
-          'HAVE_PTHREAD_PRIO_INHERIT',
-          'HAVE_STDINT_H',
-          'HAVE_STDLIB_H',
-          'HAVE_STRINGS_H',
-          'HAVE_STRING_H',
-          'HAVE_SYS_IOCTL_H',
-          'HAVE_SYS_SOCKET_H',
-          'HAVE_SYS_STAT_H',
-          'HAVE_SYS_TYPES_H',
-          'HAVE_UNISTD_H',
-          'HAVE_UNISTD_H',
-          'NN_HAVE_ACCEPT4',
-          'NN_HAVE_CLANG',
-          'NN_HAVE_EVENTFD',
-          'NN_HAVE_GCC',
-          'NN_HAVE_GETADDRINFO_A',
-          'NN_HAVE_LINUX',
-          'NN_HAVE_PIPE',
-          'NN_HAVE_PIPE2',
-          'NN_HAVE_POLL',
-          'NN_HAVE_SEMAPHORE',
-          'NN_HAVE_SOCKETPAIR',
-          'NN_USE_EPOLL',
-          'NN_USE_EVENTFD',
-          'NN_USE_IFADDRS',
-          'STDC_HEADERS',
-          '_GNU_SOURCE',
-        ],
-      }],
-      ['skia_os == "mac"', {
-        'xcode_settings': {
-            'WARNING_CFLAGS': [ '-w' ],
-        },
-        'defines=': [             # equals sign throws away most Skia defines (just noise)
-          'HAVE_ARPA_INET_H',
-          'HAVE_DLFCN_H',
-          'HAVE_GETIFADDRS',
-          'HAVE_INTTYPES_H',
-          'HAVE_KQUEUE',
-          'HAVE_MEMORY_H',
-          'HAVE_NETDB_H',
-          'HAVE_NETINET_IN_H',
-          'HAVE_PIPE',
-          'HAVE_POLL',
-          'HAVE_PTHREAD_PRIO_INHERIT',
-          'HAVE_STDINT_H',
-          'HAVE_STDLIB_H',
-          'HAVE_STRINGS_H',
-          'HAVE_STRING_H',
-          'HAVE_SYS_IOCTL_H',
-          'HAVE_SYS_SOCKET_H',
-          'HAVE_SYS_STAT_H',
-          'HAVE_SYS_TYPES_H',
-          'HAVE_UNISTD_H',
-          'NN_HAVE_CLANG',
-          'NN_HAVE_GCC',
-          'NN_HAVE_OSX',
-          'NN_HAVE_PIPE',
-          'NN_HAVE_POLL',
-          'NN_HAVE_SEMAPHORE',
-          'NN_HAVE_SOCKETPAIR',
-          'NN_USE_IFADDRS',
-          'NN_USE_KQUEUE',
-          'NN_USE_PIPE',
-          'STDC_HEADERS',
-          '_THREAD_SAFE',
-        ],
-      }],
-    ]
-  }]
-}