summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2021-10-08 09:20:56 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2021-10-08 09:20:56 +0900
commit7bf65aec6825377cb70a176d71f21116f1d977df (patch)
tree8f702de450f62c070f2e85157ffc8eaf25d47764 /Source
parent0a793b9589edea1ea74c0bfcbfef46c1a37f7291 (diff)
downloadcmake-7bf65aec6825377cb70a176d71f21116f1d977df.tar.gz
cmake-7bf65aec6825377cb70a176d71f21116f1d977df.tar.bz2
cmake-7bf65aec6825377cb70a176d71f21116f1d977df.zip
Imported Upstream version 3.20.6upstream/3.20.6
Diffstat (limited to 'Source')
-rw-r--r--Source/CMakeVersion.cmake4
-rw-r--r--Source/cmDependsCompiler.cxx4
-rw-r--r--Source/cmGccDepfileReader.cxx8
-rw-r--r--Source/cmGccDepfileReader.h11
4 files changed, 19 insertions, 8 deletions
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index 7a14f55ec..61668f488 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,7 +1,7 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 20)
-set(CMake_VERSION_PATCH 5)
+set(CMake_VERSION_PATCH 6)
#set(CMake_VERSION_RC 0)
set(CMake_VERSION_IS_DIRTY 0)
@@ -21,7 +21,7 @@ endif()
if(NOT CMake_VERSION_NO_GIT)
# If this source was exported by 'git archive', use its commit info.
- set(git_info [==[efa5e1f367 CMake 3.20.5]==])
+ set(git_info [==[0d3bfda22a CMake 3.20.6]==])
# Otherwise, try to identify the current development source version.
if(NOT git_info MATCHES "^([0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]?[0-9a-f]?)[0-9a-f]* "
diff --git a/Source/cmDependsCompiler.cxx b/Source/cmDependsCompiler.cxx
index 2b48df969..09f55997b 100644
--- a/Source/cmDependsCompiler.cxx
+++ b/Source/cmDependsCompiler.cxx
@@ -131,7 +131,9 @@ bool cmDependsCompiler::CheckDependencies(
depends.emplace_back(std::move(line));
}
} else if (format == "gcc"_s) {
- auto deps = cmReadGccDepfile(depFile.c_str());
+ auto deps = cmReadGccDepfile(
+ depFile.c_str(), this->LocalGenerator->GetCurrentBinaryDirectory(),
+ GccDepfilePrependPaths::Deps);
if (!deps) {
continue;
}
diff --git a/Source/cmGccDepfileReader.cxx b/Source/cmGccDepfileReader.cxx
index 6436baac8..d30dbc309 100644
--- a/Source/cmGccDepfileReader.cxx
+++ b/Source/cmGccDepfileReader.cxx
@@ -12,8 +12,9 @@
#include "cmStringAlgorithms.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;
if (!helper.readFile(filePath)) {
@@ -23,7 +24,8 @@ cm::optional<cmGccDepfileContent> cmReadGccDepfile(const char* filePath,
for (auto& dep : *deps) {
for (auto& rule : dep.rules) {
- if (!prefix.empty() && !cmSystemTools::FileIsFullPath(rule)) {
+ if (prependPaths == GccDepfilePrependPaths::All && !prefix.empty() &&
+ !cmSystemTools::FileIsFullPath(rule)) {
rule = cmStrCat(prefix, '/', rule);
}
if (cmSystemTools::FileIsFullPath(rule)) {
diff --git a/Source/cmGccDepfileReader.h b/Source/cmGccDepfileReader.h
index c8a37485c..243349244 100644
--- a/Source/cmGccDepfileReader.h
+++ b/Source/cmGccDepfileReader.h
@@ -8,8 +8,15 @@
#include "cmGccDepfileReaderTypes.h"
+enum class GccDepfilePrependPaths
+{
+ All,
+ Deps,
+};
+
/*
- * Read dependencies file and append prefix to all relative paths
+ * Read dependencies file and prepend prefix to all relative paths
*/
cm::optional<cmGccDepfileContent> cmReadGccDepfile(
- const char* filePath, const std::string& prefix = {});
+ const char* filePath, const std::string& prefix = {},
+ GccDepfilePrependPaths prependPaths = GccDepfilePrependPaths::All);