[Cmake-commits] CMake branch, master, updated. v3.10.2-1018-g457bcbd
Kitware Robot
kwrobot at kitware.com
Fri Feb 2 07:25:05 EST 2018
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".
The branch, master has been updated
via 457bcbd4f9e4972ed55aebf642770b79fa5e8a58 (commit)
via 62c5fc80b1a82d677b66134e00cec44ab2e6a466 (commit)
via 52ed76e46e6c295c4e6bfafd86f5b16f67606581 (commit)
via d280327713a8bfd96223bc653316d987f5b9218b (commit)
via df1693bdfc7bc0afa26b2f8673006186a822c735 (commit)
via 20676cbaca92d1b3ad486518e34e99aef75ebe11 (commit)
via 8285aa9e4e2df09b35f4faa930da6577979d4d2a (commit)
via be46f9fb6e9fc0b33198ccf5396e0188e56940e4 (commit)
via 854feacc60c5d1dcf53652a764841e1d9d602ac3 (commit)
from a53697acc76c8fa452cf083ca9f02b3f1cfd7711 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=457bcbd4f9e4972ed55aebf642770b79fa5e8a58
commit 457bcbd4f9e4972ed55aebf642770b79fa5e8a58
Merge: 62c5fc8 df1693b
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Feb 2 12:23:04 2018 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Feb 2 07:24:07 2018 -0500
Merge topic 'simplify-ccg-converter'
df1693bd cmCustomCommandGenerator: Simplify cmOutputConverter access
Acked-by: Kitware Robot <kwrobot at kitware.com>
Merge-request: !1738
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=62c5fc80b1a82d677b66134e00cec44ab2e6a466
commit 62c5fc80b1a82d677b66134e00cec44ab2e6a466
Merge: 52ed76e 8285aa9
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Feb 2 12:23:15 2018 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Feb 2 07:23:38 2018 -0500
Merge topic 'test-cuda-missing-check'
8285aa9e Tests: Add missing error check in CudaOnly.GPUDebugFlag
Acked-by: Kitware Robot <kwrobot at kitware.com>
Acked-by: Robert Maynard <robert.maynard at kitware.com>
Merge-request: !1739
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=52ed76e46e6c295c4e6bfafd86f5b16f67606581
commit 52ed76e46e6c295c4e6bfafd86f5b16f67606581
Merge: d280327 20676cb
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Feb 2 12:22:54 2018 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Feb 2 07:23:08 2018 -0500
Merge topic 'ninja-unused-device-link'
20676cba Ninja: Remove unused device link line code
Acked-by: Kitware Robot <kwrobot at kitware.com>
Merge-request: !1737
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d280327713a8bfd96223bc653316d987f5b9218b
commit d280327713a8bfd96223bc653316d987f5b9218b
Merge: a53697a be46f9f
Author: Brad King <brad.king at kitware.com>
AuthorDate: Fri Feb 2 12:22:30 2018 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Feb 2 07:22:40 2018 -0500
Merge topic 'update-kwsys'
be46f9fb Merge branch 'upstream-KWSys' into update-kwsys
854feacc KWSys 2018-02-01 (04fcc449)
Acked-by: Kitware Robot <kwrobot at kitware.com>
Merge-request: !1736
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=df1693bdfc7bc0afa26b2f8673006186a822c735
commit df1693bdfc7bc0afa26b2f8673006186a822c735
Author: Brad King <brad.king at kitware.com>
AuthorDate: Thu Feb 1 11:13:24 2018 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Thu Feb 1 14:58:25 2018 -0500
cmCustomCommandGenerator: Simplify cmOutputConverter access
In commit v3.4.0-rc1~480^2~3 (cmCustomCommandGenerator: Port to
cmOutputConverter, 2015-06-04), cmCustomCommandGenerator's access to the
local generator was removed so it needed to construct its own
cmOutputConverter instance. Access to the local generator was then
restored by commit v3.4.0-rc1~285^2~21 (cmCustomCommandGenerator:
Require cmLocalGenerator in API, 2015-07-25), so now we can use its
cmOutputConverter base class methods directly.
diff --git a/Source/cmCustomCommandGenerator.cxx b/Source/cmCustomCommandGenerator.cxx
index 0f5119e..136cf39 100644
--- a/Source/cmCustomCommandGenerator.cxx
+++ b/Source/cmCustomCommandGenerator.cxx
@@ -8,7 +8,6 @@
#include "cmGeneratorTarget.h"
#include "cmLocalGenerator.h"
#include "cmMakefile.h"
-#include "cmOutputConverter.h"
#include "cmStateTypes.h"
#include "cmSystemTools.h"
@@ -167,8 +166,7 @@ void cmCustomCommandGenerator::AppendArguments(unsigned int c,
if (this->OldStyle) {
cmd += escapeForShellOldStyle(arg);
} else {
- cmOutputConverter converter(this->LG->GetStateSnapshot());
- cmd += converter.EscapeForShell(arg, this->MakeVars);
+ cmd += this->LG->EscapeForShell(arg, this->MakeVars);
}
}
}
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=20676cbaca92d1b3ad486518e34e99aef75ebe11
commit 20676cbaca92d1b3ad486518e34e99aef75ebe11
Author: Brad King <brad.king at kitware.com>
AuthorDate: Thu Feb 1 14:26:25 2018 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Thu Feb 1 14:36:09 2018 -0500
Ninja: Remove unused device link line code
Remove the `PRE_LINK` and `POST_BUILD` variables. They are not
referenced by `WriteDeviceLinkRule`.
Remove the `byproducts` local variable from `WriteDeviceLinkStatement`
and all the code populating it. We never used the result.
diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx
index eb595ba..ddbc772 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -685,16 +685,11 @@ void cmNinjaNormalTargetGenerator::WriteDeviceLinkStatement()
}
}
- cmNinjaDeps byproducts;
-
if (!this->TargetNameImport.empty()) {
const std::string impLibPath = localGen.ConvertToOutputFormat(
targetOutputImplib, cmOutputConverter::SHELL);
vars["TARGET_IMPLIB"] = impLibPath;
EnsureParentDirectoryExists(impLibPath);
- if (genTarget.HasImportLibrary()) {
- byproducts.push_back(targetOutputImplib);
- }
}
const std::string objPath = GetGeneratorTarget()->GetSupportDirectory();
@@ -712,29 +707,6 @@ void cmNinjaNormalTargetGenerator::WriteDeviceLinkStatement()
std::replace(link_path.begin(), link_path.end(), '\\', '/');
}
- const std::vector<cmCustomCommand>* cmdLists[3] = {
- &genTarget.GetPreBuildCommands(), &genTarget.GetPreLinkCommands(),
- &genTarget.GetPostBuildCommands()
- };
-
- std::vector<std::string> preLinkCmdLines, postBuildCmdLines;
- vars["PRE_LINK"] = localGen.BuildCommandLine(preLinkCmdLines);
- vars["POST_BUILD"] = localGen.BuildCommandLine(postBuildCmdLines);
-
- std::vector<std::string>* cmdLineLists[3] = { &preLinkCmdLines,
- &preLinkCmdLines,
- &postBuildCmdLines };
-
- for (unsigned i = 0; i != 3; ++i) {
- for (cmCustomCommand const& cc : *cmdLists[i]) {
- cmCustomCommandGenerator ccg(cc, cfgName, this->GetLocalGenerator());
- localGen.AppendCustomCommandLines(ccg, *cmdLineLists[i]);
- std::vector<std::string> const& ccByproducts = ccg.GetByproducts();
- std::transform(ccByproducts.begin(), ccByproducts.end(),
- std::back_inserter(byproducts), MapToNinjaPath());
- }
- }
-
cmGlobalNinjaGenerator& globalGen = *this->GetGlobalGenerator();
// Device linking currently doesn't support response files so
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8285aa9e4e2df09b35f4faa930da6577979d4d2a
commit 8285aa9e4e2df09b35f4faa930da6577979d4d2a
Author: Brad King <brad.king at kitware.com>
AuthorDate: Thu Feb 1 09:07:50 2018 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Thu Feb 1 09:07:50 2018 -0500
Tests: Add missing error check in CudaOnly.GPUDebugFlag
If `cudaMallocManaged` fails then later use of `has_debug` is not valid.
diff --git a/Tests/CudaOnly/GPUDebugFlag/main.cu b/Tests/CudaOnly/GPUDebugFlag/main.cu
index 8b97a3f..1f3fc12 100644
--- a/Tests/CudaOnly/GPUDebugFlag/main.cu
+++ b/Tests/CudaOnly/GPUDebugFlag/main.cu
@@ -49,6 +49,11 @@ int main(int argc, char** argv)
{
bool* has_debug;
cudaError_t err = cudaMallocManaged(&has_debug, sizeof(bool));
+ if (err != cudaSuccess) {
+ std::cerr << "cudaMallocManaged failed:\n"
+ << " " << cudaGetErrorString(err) << std::endl;
+ return 1;
+ }
debug_kernel<<<1, 1>>>(has_debug);
err = cudaDeviceSynchronize();
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=be46f9fb6e9fc0b33198ccf5396e0188e56940e4
commit be46f9fb6e9fc0b33198ccf5396e0188e56940e4
Merge: 5a16e76 854feac
Author: Brad King <brad.king at kitware.com>
AuthorDate: Thu Feb 1 08:15:44 2018 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Thu Feb 1 08:15:44 2018 -0500
Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
KWSys 2018-02-01 (04fcc449)
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=854feacc60c5d1dcf53652a764841e1d9d602ac3
commit 854feacc60c5d1dcf53652a764841e1d9d602ac3
Author: KWSys Upstream <kwrobot at kitware.com>
AuthorDate: Thu Feb 1 07:44:45 2018 -0500
Commit: Brad King <brad.king at kitware.com>
CommitDate: Thu Feb 1 08:15:44 2018 -0500
KWSys 2018-02-01 (04fcc449)
Code extracted from:
https://gitlab.kitware.com/utils/kwsys.git
at commit 04fcc449646eb2ff3d701986946a1db60b2161b7 (master).
Upstream Shortlog
-----------------
Ben Boeckel (11):
ba270398 SystemToolsAppendComponents: move strings when building components
cfd0f1e6 JoinPath: push back as a character
6770cb3e GetFilenameName: optionally don't search for \ on non-Windows
22b189b0 ConvertToUnixSlashes: remove escaped space logic
342d69a4 ConvertToUnixSlashes: short-circuit on hasDoubleSlash
5dd87350 ConvertToUnixSlashes: remove pos1
3b46b7c0 ConvertToUnixSlashes: bail early on empty paths
55d1d6ab CollapseFullPath: reserve space for components
68807138 CollapseFullPath: prefer .empty() to .length() == 0
71a6de42 CollapseFullPath: refactor the overloads to share implementations
318550c7 CheckCollapsePath: add more test cases
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2570e5b..c0154c8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -496,6 +496,16 @@ IF(KWSYS_USE_SystemTools)
KWSYS_CXX_STAT_HAS_ST_MTIM=${KWSYS_CXX_STAT_HAS_ST_MTIM}
KWSYS_CXX_STAT_HAS_ST_MTIMESPEC=${KWSYS_CXX_STAT_HAS_ST_MTIMESPEC}
)
+ IF(NOT WIN32)
+ IF(KWSYS_STANDALONE)
+ OPTION(KWSYS_SYSTEMTOOLS_SUPPORT_WINDOWS_SLASHES "If true, Windows paths will be supported on Unix as well" ON)
+ ENDIF()
+ IF(KWSYS_SYSTEMTOOLS_SUPPORT_WINDOWS_SLASHES)
+ SET_PROPERTY(SOURCE SystemTools.cxx testSystemTools.cxx APPEND PROPERTY COMPILE_DEFINITIONS
+ KWSYS_SYSTEMTOOLS_SUPPORT_WINDOWS_SLASHES
+ )
+ ENDIF()
+ ENDIF()
# Disable getpwnam for static linux builds since it depends on shared glibc
GET_PROPERTY(SHARED_LIBS_SUPPORTED GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS)
diff --git a/SystemTools.cxx b/SystemTools.cxx
index 999beb3..38910c8 100644
--- a/SystemTools.cxx
+++ b/SystemTools.cxx
@@ -1884,21 +1884,23 @@ static void ConvertVMSToUnix(std::string& path)
// convert windows slashes to unix slashes
void SystemTools::ConvertToUnixSlashes(std::string& path)
{
+ if (path.empty()) {
+ return;
+ }
+
const char* pathCString = path.c_str();
bool hasDoubleSlash = false;
#ifdef __VMS
ConvertVMSToUnix(path);
#else
const char* pos0 = pathCString;
- const char* pos1 = pathCString + 1;
for (std::string::size_type pos = 0; *pos0; ++pos) {
- // make sure we don't convert an escaped space to a unix slash
- if (*pos0 == '\\' && *pos1 != ' ') {
+ if (*pos0 == '\\') {
path[pos] = '/';
}
// Also, reuse the loop to check for slash followed by another slash
- if (*pos1 == '/' && *(pos1 + 1) == '/' && !hasDoubleSlash) {
+ if (!hasDoubleSlash && *(pos0 + 1) == '/' && *(pos0 + 2) == '/') {
#ifdef _WIN32
// However, on windows if the first characters are both slashes,
// then keep them that way, so that network paths can be handled.
@@ -1911,43 +1913,41 @@ void SystemTools::ConvertToUnixSlashes(std::string& path)
}
pos0++;
- pos1++;
}
if (hasDoubleSlash) {
SystemTools::ReplaceString(path, "//", "/");
}
#endif
+
// remove any trailing slash
- if (!path.empty()) {
- // if there is a tilda ~ then replace it with HOME
- pathCString = path.c_str();
- if (pathCString[0] == '~' &&
- (pathCString[1] == '/' || pathCString[1] == '\0')) {
- std::string homeEnv;
- if (SystemTools::GetEnv("HOME", homeEnv)) {
- path.replace(0, 1, homeEnv);
- }
+ // if there is a tilda ~ then replace it with HOME
+ pathCString = path.c_str();
+ if (pathCString[0] == '~' &&
+ (pathCString[1] == '/' || pathCString[1] == '\0')) {
+ std::string homeEnv;
+ if (SystemTools::GetEnv("HOME", homeEnv)) {
+ path.replace(0, 1, homeEnv);
}
+ }
#ifdef HAVE_GETPWNAM
- else if (pathCString[0] == '~') {
- std::string::size_type idx = path.find_first_of("/\0");
- std::string user = path.substr(1, idx - 1);
- passwd* pw = getpwnam(user.c_str());
- if (pw) {
- path.replace(0, idx, pw->pw_dir);
- }
+ else if (pathCString[0] == '~') {
+ std::string::size_type idx = path.find_first_of("/\0");
+ std::string user = path.substr(1, idx - 1);
+ passwd* pw = getpwnam(user.c_str());
+ if (pw) {
+ path.replace(0, idx, pw->pw_dir);
}
+ }
#endif
- // remove trailing slash if the path is more than
- // a single /
- pathCString = path.c_str();
- size_t size = path.size();
- if (size > 1 && *path.rbegin() == '/') {
- // if it is c:/ then do not remove the trailing slash
- if (!((size == 3 && pathCString[1] == ':'))) {
- path.resize(size - 1);
- }
+ // remove trailing slash if the path is more than
+ // a single /
+ pathCString = path.c_str();
+ size_t size = path.size();
+ if (size > 1 && *path.rbegin() == '/') {
+ // if it is c:/ then do not remove the trailing slash
+ if (!((size == 3 && pathCString[1] == ':'))) {
+ path.resize(size - 1);
}
}
}
@@ -3171,8 +3171,8 @@ void SystemTools::CheckTranslationPath(std::string& path)
static void SystemToolsAppendComponents(
std::vector<std::string>& out_components,
- std::vector<std::string>::const_iterator first,
- std::vector<std::string>::const_iterator last)
+ std::vector<std::string>::iterator first,
+ std::vector<std::string>::iterator last)
{
static const std::string up = "..";
static const std::string cur = ".";
@@ -3182,7 +3182,11 @@ static void SystemToolsAppendComponents(
out_components.resize(out_components.size() - 1);
}
} else if (!i->empty() && *i != cur) {
+#if __cplusplus >= 201103L || (defined(_MSVC_LANG) && _MSVC_LANG >= 201103L)
+ out_components.push_back(std::move(*i));
+#else
out_components.push_back(*i);
+#endif
}
}
}
@@ -3190,63 +3194,18 @@ static void SystemToolsAppendComponents(
std::string SystemTools::CollapseFullPath(const std::string& in_path,
const char* in_base)
{
- // Collect the output path components.
- std::vector<std::string> out_components;
-
- // Split the input path components.
- std::vector<std::string> path_components;
- SystemTools::SplitPath(in_path, path_components);
-
- // If the input path is relative, start with a base path.
- if (path_components[0].empty()) {
- std::vector<std::string> base_components;
- if (in_base) {
- // Use the given base path.
- SystemTools::SplitPath(in_base, base_components);
+ // Use the current working directory as a base path.
+ char buf[2048];
+ const char* res_in_base = in_base;
+ if (!res_in_base) {
+ if (const char* cwd = Getcwd(buf, 2048)) {
+ res_in_base = cwd;
} else {
- // Use the current working directory as a base path.
- char buf[2048];
- if (const char* cwd = Getcwd(buf, 2048)) {
- SystemTools::SplitPath(cwd, base_components);
- } else {
- base_components.push_back("");
- }
+ res_in_base = "";
}
-
- // Append base path components to the output path.
- out_components.push_back(base_components[0]);
- SystemToolsAppendComponents(out_components, base_components.begin() + 1,
- base_components.end());
}
- // Append input path components to the output path.
- SystemToolsAppendComponents(out_components, path_components.begin(),
- path_components.end());
-
- // Transform the path back to a string.
- std::string newPath = SystemTools::JoinPath(out_components);
-
- // Update the translation table with this potentially new path. I am not
- // sure why this line is here, it seems really questionable, but yet I
- // would put good money that if I remove it something will break, basically
- // from what I can see it created a mapping from the collapsed path, to be
- // replaced by the input path, which almost completely does the opposite of
- // this function, the only thing preventing this from happening a lot is
- // that if the in_path has a .. in it, then it is not added to the
- // translation table. So for most calls this either does nothing due to the
- // .. or it adds a translation between identical paths as nothing was
- // collapsed, so I am going to try to comment it out, and see what hits the
- // fan, hopefully quickly.
- // Commented out line below:
- // SystemTools::AddTranslationPath(newPath, in_path);
-
- SystemTools::CheckTranslationPath(newPath);
-#ifdef _WIN32
- newPath = SystemTools::GetActualCaseForPath(newPath);
- SystemTools::ConvertToUnixSlashes(newPath);
-#endif
- // Return the reconstructed path.
- return newPath;
+ return SystemTools::CollapseFullPath(in_path, std::string(res_in_base));
}
std::string SystemTools::CollapseFullPath(const std::string& in_path,
@@ -3258,9 +3217,10 @@ std::string SystemTools::CollapseFullPath(const std::string& in_path,
// Split the input path components.
std::vector<std::string> path_components;
SystemTools::SplitPath(in_path, path_components);
+ out_components.reserve(path_components.size());
// If the input path is relative, start with a base path.
- if (path_components[0].length() == 0) {
+ if (path_components[0].empty()) {
std::vector<std::string> base_components;
// Use the given base path.
SystemTools::SplitPath(in_base, base_components);
@@ -3619,7 +3579,7 @@ std::string SystemTools::JoinPath(
// All remaining components are always separated with a slash.
while (first != last) {
- result.append("/");
+ result.push_back('/');
result.append((*first++));
}
@@ -3715,7 +3675,12 @@ std::string SystemTools::GetFilenamePath(const std::string& filename)
*/
std::string SystemTools::GetFilenameName(const std::string& filename)
{
- std::string::size_type slash_pos = filename.find_last_of("/\\");
+#if defined(_WIN32) || defined(KWSYS_SYSTEMTOOLS_SUPPORT_WINDOWS_SLASHES)
+ const char* separators = "/\\";
+#else
+ char separators = '/';
+#endif
+ std::string::size_type slash_pos = filename.find_last_of(separators);
if (slash_pos != std::string::npos) {
return filename.substr(slash_pos + 1);
} else {
diff --git a/testSystemTools.cxx b/testSystemTools.cxx
index f1321e5..e436a2b 100644
--- a/testSystemTools.cxx
+++ b/testSystemTools.cxx
@@ -39,19 +39,19 @@ typedef unsigned short mode_t;
static const char* toUnixPaths[][2] = {
{ "/usr/local/bin/passwd", "/usr/local/bin/passwd" },
{ "/usr/lo cal/bin/pa sswd", "/usr/lo cal/bin/pa sswd" },
- { "/usr/lo\\ cal/bin/pa\\ sswd", "/usr/lo\\ cal/bin/pa\\ sswd" },
+ { "/usr/lo\\ cal/bin/pa\\ sswd", "/usr/lo/ cal/bin/pa/ sswd" },
{ "c:/usr/local/bin/passwd", "c:/usr/local/bin/passwd" },
{ "c:/usr/lo cal/bin/pa sswd", "c:/usr/lo cal/bin/pa sswd" },
- { "c:/usr/lo\\ cal/bin/pa\\ sswd", "c:/usr/lo\\ cal/bin/pa\\ sswd" },
+ { "c:/usr/lo\\ cal/bin/pa\\ sswd", "c:/usr/lo/ cal/bin/pa/ sswd" },
{ "\\usr\\local\\bin\\passwd", "/usr/local/bin/passwd" },
{ "\\usr\\lo cal\\bin\\pa sswd", "/usr/lo cal/bin/pa sswd" },
- { "\\usr\\lo\\ cal\\bin\\pa\\ sswd", "/usr/lo\\ cal/bin/pa\\ sswd" },
+ { "\\usr\\lo\\ cal\\bin\\pa\\ sswd", "/usr/lo/ cal/bin/pa/ sswd" },
{ "c:\\usr\\local\\bin\\passwd", "c:/usr/local/bin/passwd" },
{ "c:\\usr\\lo cal\\bin\\pa sswd", "c:/usr/lo cal/bin/pa sswd" },
- { "c:\\usr\\lo\\ cal\\bin\\pa\\ sswd", "c:/usr/lo\\ cal/bin/pa\\ sswd" },
+ { "c:\\usr\\lo\\ cal\\bin\\pa\\ sswd", "c:/usr/lo/ cal/bin/pa/ sswd" },
{ "\\\\usr\\local\\bin\\passwd", "//usr/local/bin/passwd" },
{ "\\\\usr\\lo cal\\bin\\pa sswd", "//usr/lo cal/bin/pa sswd" },
- { "\\\\usr\\lo\\ cal\\bin\\pa\\ sswd", "//usr/lo\\ cal/bin/pa\\ sswd" },
+ { "\\\\usr\\lo\\ cal\\bin\\pa\\ sswd", "//usr/lo/ cal/bin/pa/ sswd" },
{ KWSYS_NULLPTR, KWSYS_NULLPTR }
};
@@ -700,6 +700,16 @@ static bool CheckCollapsePath()
bool res = true;
res &= CheckCollapsePath("/usr/share/*", "/usr/share/*");
res &= CheckCollapsePath("C:/Windows/*", "C:/Windows/*");
+ res &= CheckCollapsePath("/usr/share/../lib", "/usr/lib");
+ res &= CheckCollapsePath("/usr/share/./lib", "/usr/share/lib");
+ res &= CheckCollapsePath("/usr/share/../../lib", "/lib");
+ res &= CheckCollapsePath("/usr/share/.././../lib", "/lib");
+ res &= CheckCollapsePath("/../lib", "/lib");
+ res &= CheckCollapsePath("/../lib/", "/lib");
+ res &= CheckCollapsePath("/", "/");
+ res &= CheckCollapsePath("C:/", "C:/");
+ res &= CheckCollapsePath("C:/../", "C:/");
+ res &= CheckCollapsePath("C:/../../", "C:/");
return res;
}
@@ -764,20 +774,26 @@ static bool CheckGetFilenameName()
const char* windowsFilepath = "C:\\somewhere\\something";
const char* unixFilepath = "/somewhere/something";
- std::string expectedFilename = "something";
+#if defined(_WIN32) || defined(KWSYS_SYSTEMTOOLS_SUPPORT_WINDOWS_SLASHES)
+ std::string expectedWindowsFilename = "something";
+#else
+ std::string expectedWindowsFilename = "C:\\somewhere\\something";
+#endif
+ std::string expectedUnixFilename = "something";
bool res = true;
std::string filename = kwsys::SystemTools::GetFilenameName(windowsFilepath);
- if (filename != expectedFilename) {
+ if (filename != expectedWindowsFilename) {
std::cerr << "GetFilenameName(" << windowsFilepath << ") yielded "
- << filename << " instead of " << expectedFilename << std::endl;
+ << filename << " instead of " << expectedWindowsFilename
+ << std::endl;
res = false;
}
filename = kwsys::SystemTools::GetFilenameName(unixFilepath);
- if (filename != expectedFilename) {
+ if (filename != expectedUnixFilename) {
std::cerr << "GetFilenameName(" << unixFilepath << ") yielded " << filename
- << " instead of " << expectedFilename << std::endl;
+ << " instead of " << expectedUnixFilename << std::endl;
res = false;
}
return res;
-----------------------------------------------------------------------
Summary of changes:
Source/cmCustomCommandGenerator.cxx | 4 +-
Source/cmNinjaNormalTargetGenerator.cxx | 28 ------
Source/kwsys/CMakeLists.txt | 10 +++
Source/kwsys/SystemTools.cxx | 141 ++++++++++++-------------------
Source/kwsys/testSystemTools.cxx | 36 +++++---
Tests/CudaOnly/GPUDebugFlag/main.cu | 5 ++
6 files changed, 95 insertions(+), 129 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list