Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / tools / gn / secondary / tools / grit / grit_rule.gni
index d658cbc..789e40e 100644 (file)
@@ -38,15 +38,21 @@ template("grit") {
     [ "--inputs", source_path, "-f", resource_ids] + grit_flags, "list lines")
   # The inputs are relative to the current (build) directory, rebase to
   # the current one.
-  grit_inputs = rebase_path(grit_inputs_build_rel, root_build_dir)
+  grit_inputs = rebase_path(grit_inputs_build_rel, ".", root_build_dir)
 
   grit_outputs_build_rel = exec_script(grit_info_script,
     [ "--outputs", "$output_dir", source_path, "-f", resource_ids ] +
     grit_flags,
     "list lines")
+
   # The inputs are relative to the current (build) directory, rebase to
   # the current one.
-  grit_outputs = rebase_path(grit_outputs_build_rel, root_build_dir)
+  grit_outputs = rebase_path(grit_outputs_build_rel, ".", root_build_dir)
+
+  # The config and the action below get this visibility son only the generated
+  # source set can depend on them. The variable "target_name" will get
+  # overwritten inside the innter classes so we need to compute it here.
+  target_visibility = ":$target_name"
 
   # The current grit setup makes an file in $target_gen_dir/grit/foo.h that
   # the source code expects to include via "grit/foo.h". It would be nice to
@@ -55,11 +61,13 @@ template("grit") {
   grit_config = target_name + "_grit_config"
   config(grit_config) {
     include_dirs = [ target_gen_dir ]
+    visibility = target_visibility
   }
 
   grit_custom_target = target_name + "_grit"
   action(grit_custom_target) {
     script = "//tools/grit/grit.py"
+    hard_dep = true
     source_prereqs = grit_inputs
     outputs = grit_outputs
 
@@ -70,12 +78,12 @@ template("grit") {
       "-o", output_dir,
     ] + grit_flags
 
-    # Inherit deps from template invocation if any.
+    visibility = target_visibility
   }
 
   # This is the thing that people actually link with, it must be named the
   # same as the argument the template was invoked with.
-  static_library(target_name) {
+  source_set(target_name) {
     # Since we generate a file, we need to be run before the targets that
     # depend on us.
     hard_dep = true
@@ -83,8 +91,14 @@ template("grit") {
 
     # Deps set on the template invocation will go on the grit script running
     # target rather than this library.
-    deps = []
     deps = [ ":$grit_custom_target" ]
     direct_dependent_configs = [ ":$grit_config" ]
+
+    if (defined(invoker.visibility)) {
+      visibility = invoker.visibility
+    }
+    if (defined(invoker.output_name)) {
+      output_name = invoker.output_name
+    }
   }
 }