|
@@ -12,8 +12,9 @@
|
|
|
#include "cmStringAlgorithms.h"
|
|
#include "cmStringAlgorithms.h"
|
|
|
#include "cmSystemTools.h"
|
|
#include "cmSystemTools.h"
|
|
|
|
|
|
|
|
-cm::optional<cmGccDepfileContent> cmReadGccDepfile(const char* filePath,
|
|
|
|
|
- const std::string& prefix)
|
|
|
|
|
|
|
+cm::optional<cmGccDepfileContent> cmReadGccDepfile(
|
|
|
|
|
+ const char* filePath, const std::string& prefix,
|
|
|
|
|
+ GccDepfilePrependPaths prependPaths)
|
|
|
{
|
|
{
|
|
|
cmGccDepfileLexerHelper helper;
|
|
cmGccDepfileLexerHelper helper;
|
|
|
if (!helper.readFile(filePath)) {
|
|
if (!helper.readFile(filePath)) {
|
|
@@ -23,7 +24,8 @@ cm::optional<cmGccDepfileContent> cmReadGccDepfile(const char* filePath,
|
|
|
|
|
|
|
|
for (auto& dep : *deps) {
|
|
for (auto& dep : *deps) {
|
|
|
for (auto& rule : dep.rules) {
|
|
for (auto& rule : dep.rules) {
|
|
|
- if (!prefix.empty() && !cmSystemTools::FileIsFullPath(rule)) {
|
|
|
|
|
|
|
+ if (prependPaths == GccDepfilePrependPaths::All && !prefix.empty() &&
|
|
|
|
|
+ !cmSystemTools::FileIsFullPath(rule)) {
|
|
|
rule = cmStrCat(prefix, '/', rule);
|
|
rule = cmStrCat(prefix, '/', rule);
|
|
|
}
|
|
}
|
|
|
if (cmSystemTools::FileIsFullPath(rule)) {
|
|
if (cmSystemTools::FileIsFullPath(rule)) {
|