[CMake] Windows build inconsistency...
Eric Noulard
eric.noulard at gmail.com
Fri Jun 3 09:10:57 EDT 2011
2011/6/3 Jean-Christophe Fillion-Robin <jchris.fillionr at kitware.com>:
> Just tested it on linux and the same remark applies.
Hi,
I cannot find the answer in the ML archive but I think I already
crossed that issue in the past
and I was answered that this was the expected "legacy CMake" behavior.
1) When you specify a directory path then CMake assume this is a "source dir"
and will use the current directory as build dir.
2) When you specify a CMakeLists.txt file it will consider you want to build
in the directory where the CMakeLists.txt is.
in CMake source one read (see: Source/cmake.cxx:791):
if(argIsFile)
{
// Source CMakeLists.txt file given. It was probably dropped
// onto the executable in a GUI. Default to an in-source build.
this->SetHomeOutputDirectory(listPath.c_str());
this->SetStartOutputDirectory(listPath.c_str());
}
else
{
// Source directory given on command line. Use current working
// directory as build tree.
std::string cwd = cmSystemTools::GetCurrentWorkingDirectory();
this->SetHomeOutputDirectory(cwd.c_str());
this->SetStartOutputDirectory(cwd.c_str());
}
So I bet this is purposely done, even if this may be an unexpected
behavior in the first place.
I don't know the rational for that (beside maintaining some legacy
behavior) but may be someone
at kitware is old enough to explain that :-]
--
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
More information about the CMake
mailing list