[Cmake-commits] [cmake-commits] hoffman committed cmCPackGenerator.cxx 1.10 1.11
cmake-commits at cmake.org
cmake-commits at cmake.org
Mon Sep 22 18:12:56 EDT 2008
Update of /cvsroot/CMake/CMake/Source/CPack
In directory public:/mounts/ram/cvs-serv29649
Modified Files:
cmCPackGenerator.cxx
Log Message:
BUG: fix 7669, cpack did not work with symlinks
Index: cmCPackGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CPack/cmCPackGenerator.cxx,v
retrieving revision 1.10
retrieving revision 1.11
diff -C 2 -d -r1.10 -r1.11
*** cmCPackGenerator.cxx 8 Jul 2008 15:52:24 -0000 1.10
--- cmCPackGenerator.cxx 22 Sep 2008 22:12:54 -0000 1.11
***************
*** 945,1105 ****
int cmCPackGenerator::FindRunningCMake(const char* arg0)
{
! int found = 0;
! // Find our own executable.
! std::vector<cmStdString> failures;
! this->CPackSelf = arg0;
! cmSystemTools::ConvertToUnixSlashes(this->CPackSelf);
! failures.push_back(this->CPackSelf);
! this->CPackSelf = cmSystemTools::FindProgram(this->CPackSelf.c_str());
! if(!cmSystemTools::FileExists(this->CPackSelf.c_str()))
! {
! failures.push_back(this->CPackSelf);
! this->CPackSelf = "/usr/local/bin/ctest";
! }
! if(!cmSystemTools::FileExists(this->CPackSelf.c_str()))
! {
! failures.push_back(this->CPackSelf);
! cmOStringStream msg;
! msg << "CPack can not find the command line program ctest.\n";
! msg << " argv[0] = \"" << arg0 << "\"\n";
! msg << " Attempted paths:\n";
! std::vector<cmStdString>::iterator i;
! for(i=failures.begin(); i != failures.end(); ++i)
! {
! msg << " \"" << i->c_str() << "\"\n";
! }
! cmCPackLogger(cmCPackLog::LOG_ERROR, msg.str().c_str()
! << std::endl);
! return 0;
! }
! std::string dir;
! std::string file;
! if(cmSystemTools::SplitProgramPath(this->CPackSelf.c_str(),
! dir, file, true))
! {
! this->CMakeSelf = dir += "/cmake";
! this->CMakeSelf += cmSystemTools::GetExecutableExtension();
! if(cmSystemTools::FileExists(this->CMakeSelf.c_str()))
! {
! found = 1;
! }
! }
! if ( !found )
! {
! failures.push_back(this->CMakeSelf);
! #ifdef CMAKE_BUILD_DIR
! std::string intdir = ".";
! #ifdef CMAKE_INTDIR
! intdir = CMAKE_INTDIR;
! #endif
! this->CMakeSelf = CMAKE_BUILD_DIR;
! this->CMakeSelf += "/bin/";
! this->CMakeSelf += intdir;
! this->CMakeSelf += "/cmake";
! this->CMakeSelf += cmSystemTools::GetExecutableExtension();
! #endif
! if(!cmSystemTools::FileExists(this->CMakeSelf.c_str()))
! {
! failures.push_back(this->CMakeSelf);
! cmOStringStream msg;
! msg << "CPack can not find the command line program cmake.\n";
! msg << " argv[0] = \"" << arg0 << "\"\n";
! msg << " Attempted paths:\n";
! std::vector<cmStdString>::iterator i;
! for(i=failures.begin(); i != failures.end(); ++i)
! {
! msg << " \"" << i->c_str() << "\"\n";
! }
! cmCPackLogger(cmCPackLog::LOG_ERROR, msg.str().c_str()
! << std::endl);
! return 0;
! }
! }
! // do CMAKE_ROOT, look for the environment variable first
! std::string cMakeRoot;
! std::string modules;
! cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT" << std::endl);
! if (getenv("CMAKE_ROOT"))
! {
! cMakeRoot = getenv("CMAKE_ROOT");
! modules = cMakeRoot + "/Modules/CMake.cmake";
! }
! if(modules.empty() || !cmSystemTools::FileExists(modules.c_str()))
! {
! // next try exe/..
! cMakeRoot = cmSystemTools::GetProgramPath(this->CMakeSelf.c_str());
! std::string::size_type slashPos = cMakeRoot.rfind("/");
! if(slashPos != std::string::npos)
! {
! cMakeRoot = cMakeRoot.substr(0, slashPos);
! }
! // is there no Modules direcory there?
! modules = cMakeRoot + "/Modules/CMake.cmake";
! cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: "
! << modules.c_str() << std::endl);
! }
! if (!cmSystemTools::FileExists(modules.c_str()))
! {
! // try exe/../share/cmake
! cMakeRoot += CMAKE_DATA_DIR;
! modules = cMakeRoot + "/Modules/CMake.cmake";
! cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: "
! << modules.c_str() << std::endl);
! }
! #ifdef CMAKE_ROOT_DIR
! if (!cmSystemTools::FileExists(modules.c_str()))
! {
! // try compiled in root directory
! cMakeRoot = CMAKE_ROOT_DIR;
! modules = cMakeRoot + "/Modules/CMake.cmake";
! cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: "
! << modules.c_str() << std::endl);
! }
! #endif
! #ifdef CMAKE_PREFIX
! if (!cmSystemTools::FileExists(modules.c_str()))
! {
! // try compiled in install prefix
! cMakeRoot = CMAKE_PREFIX CMAKE_DATA_DIR;
! modules = cMakeRoot + "/Modules/CMake.cmake";
! cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: "
! << modules.c_str() << std::endl);
! }
! #endif
! if (!cmSystemTools::FileExists(modules.c_str()))
! {
! // try
! cMakeRoot = cmSystemTools::GetProgramPath(this->CMakeSelf.c_str());
! cMakeRoot += CMAKE_DATA_DIR;
! modules = cMakeRoot + "/Modules/CMake.cmake";
! cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: "
! << modules.c_str() << std::endl);
! }
! if(!cmSystemTools::FileExists(modules.c_str()))
! {
! // next try exe
! cMakeRoot = cmSystemTools::GetProgramPath(this->CMakeSelf.c_str());
! // is there no Modules direcory there?
! modules = cMakeRoot + "/Modules/CMake.cmake";
! cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: "
! << modules.c_str() << std::endl);
! }
! if (!cmSystemTools::FileExists(modules.c_str()))
{
! // couldn't find modules
! cmCPackLogger(cmCPackLog::LOG_ERROR,
! "Could not find CMAKE_ROOT !!!" << std::endl
! << "CMake has most likely not been installed correctly." << std::endl
! <<"Modules directory not found in" << std::endl
! << cMakeRoot.c_str()
! << std::endl);
! return 0;
}
! this->CMakeRoot = cMakeRoot;
! cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: "
! << this->CMakeRoot.c_str() << std::endl);
! this->SetOption("CMAKE_ROOT", this->CMakeRoot.c_str());
! return 1;
}
--- 945,969 ----
int cmCPackGenerator::FindRunningCMake(const char* arg0)
{
! // use the CMAKE_ROOT from cmake which should have been
! // found by now
! const char* root=
! this->MakefileMap->GetDefinition("CMAKE_ROOT");
! if(root)
{
! this->CMakeRoot = root;
! cmCPackLogger(cmCPackLog::LOG_DEBUG, "Looking for CMAKE_ROOT: "
! << this->CMakeRoot.c_str() << std::endl);
! this->SetOption("CMAKE_ROOT", this->CMakeRoot.c_str());
! return 1;
}
! cmCPackLogger(cmCPackLog::LOG_ERROR,
! "Could not find CMAKE_ROOT !!!"
! << std::endl
! << "CMake has most likely not been installed correctly."
! << std::endl
! <<"Modules directory not found in"
! << std::endl);
! return 0;
}
More information about the Cmake-commits
mailing list