summaryrefslogtreecommitdiffstats
path: root/Source/cmScanDepFormat.h
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2019-03-12 19:16:46 (GMT)
committerBrad King <brad.king@kitware.com>2020-11-17 18:16:05 (GMT)
commita02c4ccabc1736712fc90b12c63e4997ccf34284 (patch)
tree640044bc99ab554d7b4951e5be5ed795e2b0ec18 /Source/cmScanDepFormat.h
parentfa18069ebd01ecaef6d7500fcb0de29995d6b516 (diff)
downloadCMake-a02c4ccabc1736712fc90b12c63e4997ccf34284.zip
CMake-a02c4ccabc1736712fc90b12c63e4997ccf34284.tar.gz
CMake-a02c4ccabc1736712fc90b12c63e4997ccf34284.tar.bz2
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 0000000..1ad0ecf
--- /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);