From b8686ddd89f5ae8ac0ad1b35cb9e5d730f7a58d8 Mon Sep 17 00:00:00 2001
From: "P.Y. Laligand" <pylaligand@google.com>
Date: Thu, 2 May 2019 04:04:04 +0000
Subject: [PATCH] [sdk] Disallow direct dependencies on the contents of an SDK.

Bug: DX-1238 #done
Change-Id: I097a8dae3de136e743a5e40fd37d96a77b76e8c7
---
 build/sdk/sdk.gni          | 13 ++++++++-----
 build/sdk/sdk_molecule.gni |  1 +
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/build/sdk/sdk.gni b/build/sdk/sdk.gni
index 31f21a79a96..05f5bb91df5 100644
--- a/build/sdk/sdk.gni
+++ b/build/sdk/sdk.gni
@@ -90,19 +90,22 @@ template("sdk") {
 
   # Generates the manifest.
   sdk_molecule(generation_target_name) {
+    # Do not expose this molecule to other targets. Depending directly on the
+    # contents of an SDK foregoes API verification, which is not desirable.
+    visibility = [ ":$verify_api_target_name" ]
+
     forward_variables_from(invoker,
-                           "*",
                            [
-                             "api",
-                             "export",
+                             "assert_no_deps",
+                             "category",
+                             "deps",
+                             "testonly",
                            ])
 
     if (!defined(deps)) {
       deps = []
     }
     deps += [ "//build/sdk:schemas" ]
-
-    category = invoker.category
   }
 
   intermediate_manifest_file = "$target_gen_dir/$generation_target_name.sdk"
diff --git a/build/sdk/sdk_molecule.gni b/build/sdk/sdk_molecule.gni
index dfdeaaeee8a..3143927d018 100644
--- a/build/sdk/sdk_molecule.gni
+++ b/build/sdk/sdk_molecule.gni
@@ -39,6 +39,7 @@ template("sdk_molecule") {
                            [
                              "assert_no_deps",
                              "testonly",
+                             "visibility",
                            ])
 
     manifest = "$target_gen_dir/$target_name.sdk"
-- 
GitLab