Revert "Enable deprecated-copy-dtor warning."

This reverts commit e990fcc4b0c7d2d7b7e5350970da538a8c7a6c20.

Reason for revert: Build-Win-Clang-x86_64-Release-Shared

Original change's description:
> Enable deprecated-copy-dtor warning.
> 
> In C++11 a user declared destructor still requires the compiler to
> implicitly default the copy constructor and copy assignment operator,
> but this is deprecated. Note that a user declared destructor suppresses
> the move constructor and move assignment operator; a user declared
> destructor exists if any '~Foo' method declaration appears inside
> 'class Foo' (even if defaulted); if the copy and move operations are the
> same then copy operations that take 'const Foo&' will do fine double
> duty as move operations.
> 
> Clang seems to have an issue with this warning, in that it does not
> appear to distinguish between compiler defaulted and user defaulted
> destructors. As a result, it does not always warn when it should.
> There may yet be places in the code where a move operation is desired
> but may be suppressed because the implicitly defaulted  moves are not
> declared because a destructor has been declared.
> 
> This wraps dawn and shaderc configs in 'third_party' so that their
> headers will be included through '-isystem' in order to avoid the
> warnings generated by including their headers.
> 
> Change-Id: I681524cd890d86305aa99b6b765a52113b4dfa4b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280406
> Reviewed-by: Mike Klein <mtklein@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Ben Wagner <bungeman@google.com>

TBR=mtklein@google.com,bsalomon@google.com,bungeman@google.com

Change-Id: Icd6a2487637d21fcf7c4c7ab7cba7a8adfda5afd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280836
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
diff --git a/gn/BUILD.gn b/gn/BUILD.gn
index 1168db9..1ad7a5a 100644
--- a/gn/BUILD.gn
+++ b/gn/BUILD.gn
@@ -463,8 +463,8 @@
       "-Wdeprecated-attributes",
       "-Wdeprecated-comma-subscript",
       "-Wdeprecated-copy",
-      "-Wdeprecated-copy-dtor",
 
+      #"-Wdeprecated-copy-dtor",
       #"-Wdeprecated-declarations",
       "-Wdeprecated-dynamic-exception-spec",
       "-Wdeprecated-enum-compare",
diff --git a/include/gpu/GrDriverBugWorkarounds.h b/include/gpu/GrDriverBugWorkarounds.h
index 1b94f76..3f37034 100644
--- a/include/gpu/GrDriverBugWorkarounds.h
+++ b/include/gpu/GrDriverBugWorkarounds.h
@@ -26,25 +26,25 @@
 
 enum GrDriverBugWorkaroundType {
 #define GPU_OP(type, name) type,
-    GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
+  GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
 #undef GPU_OP
-    NUMBER_OF_GPU_DRIVER_BUG_WORKAROUND_TYPES
+  NUMBER_OF_GPU_DRIVER_BUG_WORKAROUND_TYPES
 };
 
 class SK_API GrDriverBugWorkarounds {
-public:
-    GrDriverBugWorkarounds();
-    GrDriverBugWorkarounds(const GrDriverBugWorkarounds&);
-    GrDriverBugWorkarounds& operator=(const GrDriverBugWorkarounds&);
-    ~GrDriverBugWorkarounds();
+ public:
+  GrDriverBugWorkarounds();
+  explicit GrDriverBugWorkarounds(const std::vector<int32_t>& workarounds);
 
-    explicit GrDriverBugWorkarounds(const std::vector<int32_t>& workarounds);
+  GrDriverBugWorkarounds& operator=(const GrDriverBugWorkarounds&) = default;
 
-    // Turn on any workarounds listed in |workarounds| (but don't turn any off).
-    void applyOverrides(const GrDriverBugWorkarounds& workarounds);
+  // Turn on any workarounds listed in |workarounds| (but don't turn any off).
+  void applyOverrides(const GrDriverBugWorkarounds& workarounds);
+
+  ~GrDriverBugWorkarounds();
 
 #define GPU_OP(type, name) bool name = false;
-    GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
+  GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
 #undef GPU_OP
 };
 
diff --git a/modules/skottie/src/Layer.cpp b/modules/skottie/src/Layer.cpp
index 1bd2c29..68cd916 100644
--- a/modules/skottie/src/Layer.cpp
+++ b/modules/skottie/src/Layer.cpp
@@ -284,7 +284,6 @@
     }
 }
 
-LayerBuilder::LayerBuilder(LayerBuilder&&) = default;
 LayerBuilder::~LayerBuilder() = default;
 
 bool LayerBuilder::isCamera() const {
diff --git a/modules/skottie/src/Layer.h b/modules/skottie/src/Layer.h
index e8d94a9..3a1f6f2 100644
--- a/modules/skottie/src/Layer.h
+++ b/modules/skottie/src/Layer.h
@@ -18,10 +18,6 @@
 class LayerBuilder final {
 public:
     explicit LayerBuilder(const skjson::ObjectValue& jlayer);
-    LayerBuilder(const LayerBuilder&) = delete;
-    LayerBuilder& operator=(const LayerBuilder&) = delete;
-    LayerBuilder(LayerBuilder&&);
-    LayerBuilder& operator=(LayerBuilder&&) = delete;
     ~LayerBuilder();
 
     int index() const { return fIndex; }
diff --git a/modules/skparagraph/src/Run.h b/modules/skparagraph/src/Run.h
index 5d17684..341aac2 100644
--- a/modules/skparagraph/src/Run.h
+++ b/modules/skparagraph/src/Run.h
@@ -42,12 +42,14 @@
 class InternalLineMetrics;
 class Run {
 public:
+    Run() = default;
     Run(ParagraphImpl* master,
         const SkShaper::RunHandler::RunInfo& info,
         size_t firstChar,
         SkScalar lineHeight,
         size_t index,
         SkScalar shiftX);
+    ~Run() {}
 
     void setMaster(ParagraphImpl* master) { fMaster = master; }
 
diff --git a/src/gpu/GrClip.h b/src/gpu/GrClip.h
index cbe0eb0..cc73c64 100644
--- a/src/gpu/GrClip.h
+++ b/src/gpu/GrClip.h
@@ -21,11 +21,6 @@
  */
 class GrClip {
 public:
-    GrClip() = default;
-    GrClip(const GrClip&) = default;
-    GrClip& operator=(const GrClip&) = default;
-    virtual ~GrClip() = default;
-
     virtual bool quickContains(const SkRect&) const = 0;
     virtual bool quickContains(const SkRRect& rrect) const {
         return this->quickContains(rrect.getBounds());
@@ -43,6 +38,8 @@
     virtual bool apply(GrRecordingContext*, GrRenderTargetContext*, bool useHWAA,
                        bool hasUserStencilSettings, GrAppliedClip*, SkRect* bounds) const = 0;
 
+    virtual ~GrClip() {}
+
     /**
      * This method quickly and conservatively determines whether the entire clip is equivalent to
      * intersection with a rrect. This will only return true if the rrect does not fully contain
diff --git a/src/gpu/GrDriverBugWorkarounds.cpp b/src/gpu/GrDriverBugWorkarounds.cpp
index 6902453..e91623c 100644
--- a/src/gpu/GrDriverBugWorkarounds.cpp
+++ b/src/gpu/GrDriverBugWorkarounds.cpp
@@ -10,9 +10,6 @@
 #include "include/core/SkTypes.h"
 
 GrDriverBugWorkarounds::GrDriverBugWorkarounds() = default;
-GrDriverBugWorkarounds::GrDriverBugWorkarounds(const GrDriverBugWorkarounds&) = default;
-GrDriverBugWorkarounds& GrDriverBugWorkarounds::operator=(const GrDriverBugWorkarounds&) = default;
-GrDriverBugWorkarounds::~GrDriverBugWorkarounds() = default;
 
 GrDriverBugWorkarounds::GrDriverBugWorkarounds(
         const std::vector<int>& enabled_driver_bug_workarounds) {
@@ -40,3 +37,5 @@
     GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
 #undef GPU_OP
 }
+
+GrDriverBugWorkarounds::~GrDriverBugWorkarounds() = default;
diff --git a/src/sksl/ir/SkSLIRNode.h b/src/sksl/ir/SkSLIRNode.h
index 3c6616a..52e5d9c 100644
--- a/src/sksl/ir/SkSLIRNode.h
+++ b/src/sksl/ir/SkSLIRNode.h
@@ -18,10 +18,10 @@
  * version of the program (all types determined, everything validated), ready for code generation.
  */
 struct IRNode {
-    IRNode(int offset) : fOffset(offset) {}
-    IRNode(const IRNode&) = default;
-    IRNode& operator=(const IRNode&) = default;
-    virtual ~IRNode() = default;
+    IRNode(int offset)
+    : fOffset(offset) {}
+
+    virtual ~IRNode() {}
 
 #ifdef SK_DEBUG
     virtual String description() const = 0;
diff --git a/src/sksl/ir/SkSLSymbol.h b/src/sksl/ir/SkSLSymbol.h
index c6f6b7d..4ee4d3d 100644
--- a/src/sksl/ir/SkSLSymbol.h
+++ b/src/sksl/ir/SkSLSymbol.h
@@ -26,7 +26,11 @@
     };
 
     Symbol(int offset, Kind kind, StringFragment name)
-        : INHERITED(offset), fKind(kind), fName(name) {}
+    : INHERITED(offset)
+    , fKind(kind)
+    , fName(name) {}
+
+    virtual ~Symbol() {}
 
     Kind fKind;
     StringFragment fName;
diff --git a/third_party/dawn/BUILD.gn b/third_party/dawn/BUILD.gn
index 0197eed..f9d326d 100644
--- a/third_party/dawn/BUILD.gn
+++ b/third_party/dawn/BUILD.gn
@@ -14,7 +14,6 @@
 
 import("../externals/dawn/generator/dawn_generator.gni")
 import("../externals/dawn/scripts/dawn_features.gni")
-import("../third_party.gni")
 
 ###############################################################################
 # dawn_platform
@@ -534,7 +533,7 @@
   }
 }
 
-third_party_config("libdawn_public") {
+config("libdawn_public") {
   include_dirs = [
     "$dawn_gen_root/src/include",
     "$dawn_gen_root/src",
diff --git a/third_party/shaderc/BUILD.gn b/third_party/shaderc/BUILD.gn
index d939cd5..fb755c6 100644
--- a/third_party/shaderc/BUILD.gn
+++ b/third_party/shaderc/BUILD.gn
@@ -20,7 +20,7 @@
 
 is_msvc = is_win && !is_clang
 
-third_party_config("shaderc_util_public") {
+config("shaderc_util_public") {
   include_dirs = [ "${shaderc_root}/libshaderc_util/include" ]
 }
 
@@ -62,7 +62,7 @@
   ]
 }
 
-third_party_config("shaderc_public") {
+config("shaderc_public") {
   include_dirs = [ "${shaderc_root}/libshaderc/include" ]
   if (is_component_build) {
     defines = [ "SHADERC_SHAREDLIB" ]
diff --git a/third_party/third_party.gni b/third_party/third_party.gni
index b0d1067..e519c26 100644
--- a/third_party/third_party.gni
+++ b/third_party/third_party.gni
@@ -3,16 +3,18 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-template("third_party_config") {
+template("third_party") {
   enabled = !defined(invoker.enabled) || invoker.enabled
-  config(target_name) {
+  config(target_name + "_public") {
     if (enabled) {
-      forward_variables_from(invoker, "*", [ "include_dirs" ])
       cflags = []
+      if (defined(invoker.public_defines)) {
+        defines = invoker.public_defines
+      }
       if (is_win) {
-        include_dirs = invoker.include_dirs
+        include_dirs = invoker.public_include_dirs
         if (is_clang) {
-          foreach(dir, invoker.include_dirs) {
+          foreach(dir, invoker.public_include_dirs) {
             cflags += [
               "/imsvc",
               rebase_path(dir),
@@ -20,7 +22,7 @@
           }
         }
       } else {
-        foreach(dir, invoker.include_dirs) {
+        foreach(dir, invoker.public_include_dirs) {
           if (werror) {
             cflags += [
               "-isystem",
@@ -38,20 +40,6 @@
       not_needed(invoker, "*")
     }
   }
-}
-
-template("third_party") {
-  enabled = !defined(invoker.enabled) || invoker.enabled
-  third_party_config(target_name + "_public") {
-    if (enabled) {
-      if (defined(invoker.public_defines)) {
-        defines = invoker.public_defines
-      }
-      include_dirs = invoker.public_include_dirs
-    } else {
-      not_needed(invoker, "*")
-    }
-  }
 
   # You can't make a static_library() without object files to archive,
   # but we can treat targets without object files as a source_set().
diff --git a/tools/DDLPromiseImageHelper.h b/tools/DDLPromiseImageHelper.h
index b4e8ecf..f8e8dd6 100644
--- a/tools/DDLPromiseImageHelper.h
+++ b/tools/DDLPromiseImageHelper.h
@@ -139,6 +139,7 @@
                 , fOriginalUniqueID(originalUniqueID)
                 , fImageInfo(ii) {
         }
+        ~PromiseImageInfo() {}
 
         int index() const { return fIndex; }
         uint32_t originalUniqueID() const { return fOriginalUniqueID; }