aboutsummaryrefslogtreecommitdiff
path: root/libcpp/include
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2020-11-18 06:44:38 -0800
committerNathan Sidwell <nathan@acm.org>2020-11-18 08:44:49 -0800
commitdb87f19ae3cfc126fb39616515b57dea4df02e6d (patch)
treeb6ecb449034d003a05e622635f3c11b862687825 /libcpp/include
parentd4a788c7174496aca5fbe3e2b617a5a62e32c209 (diff)
downloadgcc-db87f19ae3cfc126fb39616515b57dea4df02e6d.zip
gcc-db87f19ae3cfc126fb39616515b57dea4df02e6d.tar.gz
gcc-db87f19ae3cfc126fb39616515b57dea4df02e6d.tar.bz2
preprocessor: Update mkdeps for modules
This is slightly different to the original patch I posted. This adds separate module target and dependency functions (rather than a single bi-modal function). libcpp/ * include/cpplib.h (struct cpp_options): Add modules to dep-options. * include/mkdeps.h (deps_add_module_target): Declare. (deps_add_module_dep): Declare. * mkdeps.c (class mkdeps): Add modules, module_name, cmi_name, is_header_unit fields. Adjust cdtors. (deps_add_module_target, deps_add_module_dep): New. (make_write): Write module dependencies, if enabled.
Diffstat (limited to 'libcpp/include')
-rw-r--r--libcpp/include/cpplib.h3
-rw-r--r--libcpp/include/mkdeps.h7
2 files changed, 10 insertions, 0 deletions
diff --git a/libcpp/include/cpplib.h b/libcpp/include/cpplib.h
index d232426..75d4d0a 100644
--- a/libcpp/include/cpplib.h
+++ b/libcpp/include/cpplib.h
@@ -528,6 +528,9 @@ struct cpp_options
one. */
bool phony_targets;
+ /* Generate dependency info for modules. */
+ bool modules;
+
/* If true, no dependency is generated on the main file. */
bool ignore_main_file;
diff --git a/libcpp/include/mkdeps.h b/libcpp/include/mkdeps.h
index 593b718..9f10327 100644
--- a/libcpp/include/mkdeps.h
+++ b/libcpp/include/mkdeps.h
@@ -51,6 +51,13 @@ extern void deps_add_target (class mkdeps *, const char *, int);
string as the default target is interpreted as stdin. */
extern void deps_add_default_target (class mkdeps *, const char *);
+/* Adds a module target. The module name and cmi name are copied. */
+extern void deps_add_module_target (struct mkdeps *, const char *module,
+ const char *cmi, bool is_header);
+
+/* Adds a module dependency. The module name is copied. */
+extern void deps_add_module_dep (struct mkdeps *, const char *module);
+
/* Add a dependency (appears on the right side of the colon) to the
deps list. Dependencies will be printed in the order that they
were entered with this function. By convention, the first