Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Unified Diff: tools/gn/target.h

Issue 1606553002: Add support for Mac/iOS application bundles to GN tool. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add unit tests & support for bundle_data_filter Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/gn/target.h
diff --git a/tools/gn/target.h b/tools/gn/target.h
index 18e5fb816dd38470de6df31e409ef312f850b153..389327d7559b7a805c6b5048bd543173ff2ff33d 100644
--- a/tools/gn/target.h
+++ b/tools/gn/target.h
@@ -21,6 +21,7 @@
#include "tools/gn/lib_file.h"
#include "tools/gn/ordered_set.h"
#include "tools/gn/output_file.h"
+#include "tools/gn/pattern.h"
#include "tools/gn/source_file.h"
#include "tools/gn/toolchain.h"
#include "tools/gn/unique_vector.h"
@@ -42,6 +43,7 @@ class Target : public Item {
STATIC_LIBRARY,
SOURCE_SET,
COPY_FILES,
+ COPY_BUNDLE_DATA,
ACTION,
ACTION_FOREACH,
};
@@ -135,6 +137,17 @@ class Target : public Item {
const std::vector<std::string>& data() const { return data_; }
std::vector<std::string>& data() { return data_; }
+ // Runtime file dependency for bundled application (Mac/iOS). Those files
+ // are collected recursively (breaking at executable, shared library and
+ // loadable modules).
+ const std::set<SourceFile>& bundle_data() const { return bundle_data_; }
+ std::set<SourceFile>& bundle_data() { return bundle_data_; }
+
+ // Filter for copy_bundle_data target. All files matching this pattern
+ // will be excluded from the copy.
+ const PatternList& bundle_data_filter() const { return bundle_data_filter_; }
+ PatternList& bundle_data_filter() { return bundle_data_filter_; }
+
// Returns true if targets depending on this one should have an order
// dependency.
bool hard_dep() const {
@@ -280,6 +293,7 @@ class Target : public Item {
void PullDependentTargetLibsFrom(const Target* dep, bool is_public);
void PullDependentTargetLibs();
void PullRecursiveHardDeps();
+ void PullRecursiveBundleData();
// Fills the link and dependency output files when a target is resolved.
void FillOutputFiles();
@@ -307,7 +321,9 @@ class Target : public Item {
bool complete_static_lib_;
bool testonly_;
FileList inputs_;
+ std::set<SourceFile> bundle_data_;
std::vector<std::string> data_;
+ PatternList bundle_data_filter_;
LabelTargetVector private_deps_;
LabelTargetVector public_deps_;

Powered by Google App Engine
This is Rietveld 408576698