summaryrefslogtreecommitdiff
path: root/Source/cmScanDepFormat.h
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2019-03-12 15:16:46 -0400
committerBrad King <brad.king@kitware.com>2020-11-17 13:16:05 -0500
commita02c4ccabc1736712fc90b12c63e4997ccf34284 (patch)
tree640044bc99ab554d7b4951e5be5ed795e2b0ec18 /Source/cmScanDepFormat.h
parentfa18069ebd01ecaef6d7500fcb0de29995d6b516 (diff)
downloadcmake-a02c4ccabc1736712fc90b12c63e4997ccf34284.tar.gz
cmScanDepFormat: add reader and writer for the format from P1689R2
This format is currently subject to change, but is not too far from the end goal. Some bits are currently unimplemented (see TODO comments).
Diffstat (limited to 'Source/cmScanDepFormat.h')
-rw-r--r--Source/cmScanDepFormat.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/Source/cmScanDepFormat.h b/Source/cmScanDepFormat.h
new file mode 100644
index 0000000000..1ad0ecf73e
--- /dev/null
+++ b/Source/cmScanDepFormat.h
@@ -0,0 +1,30 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#pragma once
+
+#include <string>
+#include <vector>
+
+struct cmSourceReqInfo
+{
+ std::string LogicalName;
+ std::string CompiledModulePath;
+};
+
+struct cmSourceInfo
+{
+ std::string PrimaryOutput;
+
+ // Set of provided and required modules.
+ std::vector<cmSourceReqInfo> Provides;
+ std::vector<cmSourceReqInfo> Requires;
+
+ // Set of files included in the translation unit.
+ std::vector<std::string> Includes;
+};
+
+bool cmScanDepFormat_P1689_Parse(std::string const& arg_pp,
+ cmSourceInfo* info);
+bool cmScanDepFormat_P1689_Write(std::string const& path,
+ std::string const& input,
+ cmSourceInfo const& info);