summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/cmSystemTools.cxx2
-rw-r--r--Source/cmake.cxx4
2 files changed, 4 insertions, 2 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index d4dee28..32c7797 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -2107,6 +2107,8 @@ void cmSystemTools::FindExecutableDirectory(const char* argv0)
std::string exe;
if(cmSystemTools::FindProgramPath(argv0, exe, errorMsg))
{
+ // remove symlinks
+ exe = cmSystemTools::GetRealPath(exe.c_str());
cmSystemToolsExecutableDirectory =
cmSystemTools::GetFilenamePath(exe.c_str());
}
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 02e1770..88aed1d 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -858,8 +858,8 @@ int cmake::AddCMakePaths()
if(!cmSystemTools::FileExists(modules.c_str()))
{
// next try exe/..
- cMakeRoot = cmSystemTools::GetProgramPath(cMakeSelf.c_str());
- cMakeRoot = cmSystemTools::GetRealPath(cMakeRoot.c_str());
+ cMakeRoot = cmSystemTools::GetRealPath(cMakeSelf.c_str());
+ cMakeRoot = cmSystemTools::GetProgramPath(cMakeRoot.c_str());
std::string::size_type slashPos = cMakeRoot.rfind("/");
if(slashPos != std::string::npos)
{