summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2001-05-17 16:08:46 (GMT)
committerKen Martin <ken.martin@kitware.com>2001-05-17 16:08:46 (GMT)
commitaa72e182fe88aeacb4a812c1041499973922d3cd (patch)
tree34b6e83f91a1427718f1d68f4cbc323d76c2b8db /Source
parente093e4a4e001cd620e36d30eb05d44210117e6f9 (diff)
downloadCMake-aa72e182fe88aeacb4a812c1041499973922d3cd.zip
CMake-aa72e182fe88aeacb4a812c1041499973922d3cd.tar.gz
CMake-aa72e182fe88aeacb4a812c1041499973922d3cd.tar.bz2
half checked in changes for CMAKE_ROOT
Diffstat (limited to 'Source')
-rw-r--r--Source/CMakeBuildTargets.cxx20
-rw-r--r--Source/CMakeSetupCMD.cxx36
-rw-r--r--Source/MFCDialog/CMakeSetupDialog.cpp69
-rw-r--r--Source/cmCablePackageCommand.cxx2
-rw-r--r--Source/cmDSPMakefile.cxx10
-rw-r--r--Source/cmDSPWriter.cxx10
-rw-r--r--Source/cmMakefile.cxx12
-rw-r--r--Source/cmUnixMakefileGenerator.cxx18
8 files changed, 83 insertions, 94 deletions
diff --git a/Source/CMakeBuildTargets.cxx b/Source/CMakeBuildTargets.cxx
index d813f35..9d5bdb3 100644
--- a/Source/CMakeBuildTargets.cxx
+++ b/Source/CMakeBuildTargets.cxx
@@ -126,18 +126,14 @@ int main(int ac, char** av)
mf.MakeStartDirectoriesCurrent();
cmCacheManager::GetInstance()->LoadCache(&mf);
- // Make sure the internal "CMAKE" cache entry is set.
- const char* cacheValue = cmCacheManager::GetInstance()->GetCacheValue("CMAKE");
- if(!cacheValue)
- {
- // Find our own exectuable.
- std::string cMakeSelf = cmSystemTools::FindProgram(av[0]);
- // Save the value in the cache
- cmCacheManager::GetInstance()->AddCacheEntry("CMAKE",
- cMakeSelf.c_str(),
- "Path to CMake executable.",
- cmCacheManager::INTERNAL);
- }
+ // Find our own exectuable.
+ std::string cMakeSelf = cmSystemTools::FindProgram(av[0]);
+ // Save the value in the cache
+ cmCacheManager::GetInstance()->AddCacheEntry("CMAKE_COMMAND",
+ cMakeSelf.c_str(),
+ "Path to CMake executable.",
+ cmCacheManager::INTERNAL);
+ mf.SetCMakeInstallDirectory(cmSystemTools::FindProgram(av[0]));
// Transfer the cache into the makefile's definitions.
cmCacheManager::GetInstance()->DefineCache(&mf);
diff --git a/Source/CMakeSetupCMD.cxx b/Source/CMakeSetupCMD.cxx
index a0691f5..74f5a5d 100644
--- a/Source/CMakeSetupCMD.cxx
+++ b/Source/CMakeSetupCMD.cxx
@@ -42,7 +42,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "cmMakefile.h"
#include "cmMSProjectGenerator.h"
#include "cmCacheManager.h"
-
+#include "windows.h"
// this is the command line version of CMakeSetup.
// It is called from Visual Studio when a CMakeLists.txt
@@ -90,6 +90,20 @@ int main(int ac, char** av)
return -1;
}
std::string arg = av[2];
+
+ // set the cmake install directory
+ char fname[1024];
+ ::GetModuleFileName(NULL,fname,1023);
+ std::string root = cmSystemTools::GetProgramPath(fname);
+ std::string::size_type slashPos = root.rfind("/");
+ if(slashPos != std::string::npos)
+ {
+ root = root.substr(0, slashPos);
+ }
+ cmCacheManager::GetInstance()->AddCacheEntry
+ ("CMAKE_ROOT", root.c_str(),
+ "Path to CMake installation.", cmCacheManager::INTERNAL);
+
cmMakefile makefile;
SetArgs(makefile, ac, av);
cmMSProjectGenerator* pg = new cmMSProjectGenerator;
@@ -105,18 +119,14 @@ int main(int ac, char** av)
makefile.MakeStartDirectoriesCurrent();
cmCacheManager::GetInstance()->LoadCache(&makefile);
- // Make sure the internal "CMAKE" cache entry is set.
- const char* cacheValue = cmCacheManager::GetInstance()->GetCacheValue("CMAKE");
- if(!cacheValue)
- {
- // Find our own exectuable.
- std::string cMakeSelf = "\""+cmSystemTools::FindProgram(av[0])+"\"";
- // Save the value in the cache
- cmCacheManager::GetInstance()->AddCacheEntry("CMAKE",
- cMakeSelf.c_str(),
- "Path to CMake executable.",
- cmCacheManager::INTERNAL);
- }
+ // Make sure the internal "CMAKE_COMMAND" cache entry is set.
+ // Find our own exectuable.
+ std::string cMakeSelf = "\""+cmSystemTools::FindProgram(av[0])+"\"";
+ // Save the value in the cache
+ cmCacheManager::GetInstance()->AddCacheEntry("CMAKE_COMMAND",
+ cMakeSelf.c_str(),
+ "Path to CMake executable.",
+ cmCacheManager::INTERNAL);
cmCacheManager::GetInstance()->DefineCache(&makefile);
makefile.ReadListFile(av[1]);
diff --git a/Source/MFCDialog/CMakeSetupDialog.cpp b/Source/MFCDialog/CMakeSetupDialog.cpp
index 6ee53ae..c2de964 100644
--- a/Source/MFCDialog/CMakeSetupDialog.cpp
+++ b/Source/MFCDialog/CMakeSetupDialog.cpp
@@ -66,36 +66,14 @@ BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
CMakeSetupDialog::CMakeSetupDialog(CWnd* pParent /*=NULL*/)
: CDialog(CMakeSetupDialog::IDD, pParent)
{
- CString startPath = _pgmptr;
- startPath.Replace('\\', '_');
- startPath.Replace(':', '_');
- startPath.Replace(".EXE", "");
- startPath.Replace(".exe", "");
- m_RegistryKey = "Software\\Kitware\\CMakeSetup\\Settings\\";
- // _pgmptr should be the directory from which cmake was run from
- // use it as the unique key for the dialog
- m_RegistryKey += startPath;
+ m_RegistryKey = "Software\\Kitware\\CMakeSetup\\Settings\\StartPath";
//{{AFX_DATA_INIT(CMakeSetupDialog)
m_WhereSource = _T("");
m_WhereBuild = _T("");
- //}}AFX_DATA_INIT
+ //}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- // Guess the initial source directory based on the location
- // of this program, it should be in CMake/Source/
- startPath = _pgmptr;
- int removePos = startPath.Find("\\CMake\\Source");
- if(removePos == -1)
- {
- removePos = startPath.Find("/CMake/Source");
- }
- if(removePos != -1)
- {
- startPath = startPath.Left(removePos);
- }
- m_WhereSource = startPath;
- m_WhereBuild = startPath;
this->LoadFromRegistry();
m_BuildPathChanged = false;
}
@@ -209,7 +187,7 @@ HCURSOR CMakeSetupDialog::OnQueryDragIcon()
void CMakeSetupDialog::OnBrowseWhereSource()
{
this->UpdateData();
- Browse(m_WhereSource, "Enter Path to Insight Source");
+ Browse(m_WhereSource, "Enter Path to Source");
this->UpdateData(false);
}
@@ -241,7 +219,7 @@ bool CMakeSetupDialog::Browse(CString &result, const char *title)
void CMakeSetupDialog::OnBrowseWhereBuild()
{
this->UpdateData();
- Browse(m_WhereBuild, "Enter Path to Insight Build");
+ Browse(m_WhereBuild, "Enter Path to Build");
this->UpdateData(false);
}
@@ -265,7 +243,6 @@ void CMakeSetupDialog::SaveToRegistry()
RegSetValueEx(hKey, _T("WhereBuild"), 0, REG_SZ,
(CONST BYTE *)(const char *)m_WhereBuild,
m_WhereBuild.GetLength());
-
}
RegCloseKey(hKey);
}
@@ -307,9 +284,8 @@ void CMakeSetupDialog::LoadFromRegistry()
else
{
// save some values
- this->ReadRegistryValue(hKey, &(m_WhereSource),"WhereSource","C:\\Insight");
- this->ReadRegistryValue(hKey, &(m_WhereBuild),"WhereBuild",
- "C:\\Insight");
+ this->ReadRegistryValue(hKey, &(m_WhereSource),"WhereSource","C:\\");
+ this->ReadRegistryValue(hKey, &(m_WhereBuild),"WhereBuild","C:\\");
}
RegCloseKey(hKey);
}
@@ -341,10 +317,10 @@ void CMakeSetupDialog::OnBuildProjects()
// current GUI values to the cache
this->SaveCacheFromGUI();
}
- // Create a makefile object
- cmMakefile makefile;
// Make sure we are working from the cache on disk
this->LoadCacheFromDiskToGUI();
+ // Create a makefile object
+ cmMakefile makefile;
makefile.SetMakefileGenerator(new cmMSProjectGenerator);
makefile.SetHomeDirectory(m_WhereSource);
makefile.SetStartOutputDirectory(m_WhereBuild);
@@ -482,21 +458,26 @@ void CMakeSetupDialog::LoadCacheFromDiskToGUI()
{
cmCacheManager::GetInstance()->LoadCache(m_WhereBuild);
- // Make sure the internal "CMAKE" cache entry is set.
- const char* cacheValue = cmCacheManager::GetInstance()->GetCacheValue("CMAKE");
- if(!cacheValue)
+ // Find our own exectuable.
+ char fname[1024];
+ ::GetModuleFileName(NULL,fname,1023);
+ std::string root = cmSystemTools::GetProgramPath(fname);
+ std::string::size_type slashPos = root.rfind("/");
+ if(slashPos != std::string::npos)
{
- // Find our own exectuable.
- std::string cMakeCMD = "\""+cmSystemTools::GetProgramPath(_pgmptr);
- cMakeCMD += "/CMakeSetupCMD.exe\"";
-
- // Save the value in the cache
- cmCacheManager::GetInstance()->AddCacheEntry("CMAKE",
- cMakeCMD.c_str(),
- "Path to CMake executable.",
- cmCacheManager::INTERNAL);
+ root = root.substr(0, slashPos);
}
+ cmCacheManager::GetInstance()->AddCacheEntry
+ ("CMAKE_ROOT", root.c_str(),
+ "Path to CMake installation.", cmCacheManager::INTERNAL);
+ std::string cMakeCMD = "\""+cmSystemTools::GetProgramPath(fname);
+ cMakeCMD += "/CMakeSetupCMD.exe\"";
+ // Save the value in the cache
+ cmCacheManager::GetInstance()->AddCacheEntry("CMAKE_COMMAND",
+ cMakeCMD.c_str(),
+ "Path to CMake executable.",
+ cmCacheManager::INTERNAL);
this->FillCacheGUIFromCacheManager();
}
}
diff --git a/Source/cmCablePackageCommand.cxx b/Source/cmCablePackageCommand.cxx
index ea96fe0..e8eae7a 100644
--- a/Source/cmCablePackageCommand.cxx
+++ b/Source/cmCablePackageCommand.cxx
@@ -78,7 +78,7 @@ bool cmCablePackageCommand::Invoke(std::vector<std::string>& args)
cMakeLists += "CMakeLists.txt";
cMakeLists = cmSystemTools::EscapeSpaces(cMakeLists.c_str());
- std::string command = "${CMAKE} "+cMakeLists;
+ std::string command = "${CMAKE_COMMAND} "+cMakeLists;
#if defined(_WIN32) && !defined(__CYGWIN__)
command += " -DSP";
#endif
diff --git a/Source/cmDSPMakefile.cxx b/Source/cmDSPMakefile.cxx
index d313ae3..fe3fc98 100644
--- a/Source/cmDSPMakefile.cxx
+++ b/Source/cmDSPMakefile.cxx
@@ -137,7 +137,7 @@ void cmDSPMakefile::AddDSPBuildRule(cmSourceGroup& sourceGroup)
makefileIn += m_Makefile->GetStartDirectory();
makefileIn += "/";
makefileIn += "CMakeLists.txt\"";
- std::string dsprule = "${CMAKE} ";
+ std::string dsprule = "${CMAKE_COMMAND} ";
dsprule += makefileIn;
dsprule += " -DSP -H\"";
dsprule += m_Makefile->GetHomeDirectory();
@@ -360,18 +360,18 @@ void cmDSPMakefile::WriteDSPEndGroup(std::ostream& fout)
void cmDSPMakefile::SetBuildType(BuildType b, const char *libName)
{
- std::string root= m_Makefile->GetHomeDirectory();
+ std::string root= cmCacheManager::GetInstance()->GetCacheValue("CMAKE_ROOT");
const char *def= m_Makefile->GetDefinition( "MSPROJECT_TEMPLATE_DIRECTORY");
if( def)
{
- root = def;
+ root = def;
}
else
{
- root += "/CMake/Source";
+ root += "/Templates";
}
-
+
switch(b)
{
case STATIC_LIBRARY:
diff --git a/Source/cmDSPWriter.cxx b/Source/cmDSPWriter.cxx
index d313ae3..fe3fc98 100644
--- a/Source/cmDSPWriter.cxx
+++ b/Source/cmDSPWriter.cxx
@@ -137,7 +137,7 @@ void cmDSPMakefile::AddDSPBuildRule(cmSourceGroup& sourceGroup)
makefileIn += m_Makefile->GetStartDirectory();
makefileIn += "/";
makefileIn += "CMakeLists.txt\"";
- std::string dsprule = "${CMAKE} ";
+ std::string dsprule = "${CMAKE_COMMAND} ";
dsprule += makefileIn;
dsprule += " -DSP -H\"";
dsprule += m_Makefile->GetHomeDirectory();
@@ -360,18 +360,18 @@ void cmDSPMakefile::WriteDSPEndGroup(std::ostream& fout)
void cmDSPMakefile::SetBuildType(BuildType b, const char *libName)
{
- std::string root= m_Makefile->GetHomeDirectory();
+ std::string root= cmCacheManager::GetInstance()->GetCacheValue("CMAKE_ROOT");
const char *def= m_Makefile->GetDefinition( "MSPROJECT_TEMPLATE_DIRECTORY");
if( def)
{
- root = def;
+ root = def;
}
else
{
- root += "/CMake/Source";
+ root += "/Templates";
}
-
+
switch(b)
{
case STATIC_LIBRARY:
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 73f92a2..436146c 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -64,6 +64,13 @@ cmMakefile::cmMakefile()
this->AddDefaultCommands();
this->AddDefaultDefinitions();
cmCacheManager::GetInstance()->DefineCache(this);
+#if defined(_WIN32) && !defined(__CYGWIN__)
+ const char* cacheValue
+ = cmCacheManager::GetInstance()->GetCacheValue("CMAKE_ROOT");
+ std::string fpath = cacheValue;
+ fpath += "/Templates/CMakeWindowsSystemConfig.cmake";
+ this->ReadListFile(NULL,fpath.c_str());
+#endif
}
void cmMakefile::AddDefaultCommands()
@@ -854,11 +861,6 @@ void cmMakefile::SetHomeDirectory(const char* dir)
m_cmHomeDirectory = dir;
cmSystemTools::ConvertToUnixSlashes(m_cmHomeDirectory);
this->AddDefinition("CMAKE_SOURCE_DIR", this->GetHomeDirectory());
-#if defined(_WIN32) && !defined(__CYGWIN__)
- std::string fpath = dir;
- fpath += "/CMake/CMakeWindowsSystemConfig.cmake";
- this->ReadListFile(NULL,fpath.c_str());
-#endif
}
void cmMakefile::SetHomeOutputDirectory(const char* lib)
diff --git a/Source/cmUnixMakefileGenerator.cxx b/Source/cmUnixMakefileGenerator.cxx
index 133398d..0a6594f 100644
--- a/Source/cmUnixMakefileGenerator.cxx
+++ b/Source/cmUnixMakefileGenerator.cxx
@@ -755,7 +755,7 @@ void cmUnixMakefileGenerator::OutputMakeVariables(std::ostream& fout)
"THREAD_LIBS = @CMAKE_THREAD_LIBS@\n"
"\n"
"# set up the path to the rulesgen program\n"
- "CMAKE = ${CMAKE_BINARY_DIR}/CMake/Source/CMakeBuildTargets\n"
+ "CMAKE_COMMAND = ${CMAKE_BINARY_DIR}/CMake/Source/CMakeBuildTargets\n"
"\n"
"\n"
"\n";
@@ -791,11 +791,11 @@ void cmUnixMakefileGenerator::OutputMakeRules(std::ostream& fout)
"${CMAKE_CXX} ${CMAKE_CXXFLAGS} ${INCLUDE_FLAGS} -c $< -o $@"); this->OutputMakeRule(fout,
"Default build rule",
"all",
- "Makefile cmake.depends ${TARGETS} ${SUBDIR_BUILD} ${CMAKE}",
+ "Makefile cmake.depends ${TARGETS} ${SUBDIR_BUILD} ${CMAKE_COMMAND}",
0);
this->OutputMakeRule(fout,
"rule to build cmake from source",
- "${CMAKE}", "${CMAKE_SOURCE_DIR}/CMake/Source/*.cxx "
+ "${CMAKE_COMMAND}", "${CMAKE_SOURCE_DIR}/CMake/Source/*.cxx "
"${CMAKE_SOURCE_DIR}/CMake/Source/*.h",
"cd ${CMAKE_BINARY_DIR}/CMake/Source; "
"${MAKE} CMakeBuildTargets");
@@ -807,29 +807,29 @@ void cmUnixMakefileGenerator::OutputMakeRules(std::ostream& fout)
this->OutputMakeRule(fout,
"Rule to build the Makefile",
"Makefile",
- "${CMAKE} ${CMAKE_MAKEFILE_SOURCES} ",
- "${CMAKE} ${CMAKE_CURRENT_SOURCE}/CMakeLists.txt "
+ "${CMAKE_COMMAND} ${CMAKE_MAKEFILE_SOURCES} ",
+ "${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE}/CMakeLists.txt "
"-S${CMAKE_CURRENT_SOURCE} -O${CMAKE_CURRENT_BINARY} "
"-H${CMAKE_SOURCE_DIR} -B${CMAKE_BINARY_DIR}");
this->OutputMakeRule(fout,
"Rule to build the cmake.depends",
"cmake.depends",
- "${CMAKE} ${CMAKE_MAKEFILE_SOURCES} ",
- "${CMAKE} ${CMAKE_CURRENT_SOURCE}/CMakeLists.txt "
+ "${CMAKE_COMMAND} ${CMAKE_MAKEFILE_SOURCES} ",
+ "${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE}/CMakeLists.txt "
"-S${CMAKE_CURRENT_SOURCE} -O${CMAKE_CURRENT_BINARY} "
"-H${CMAKE_SOURCE_DIR} -B${CMAKE_BINARY_DIR}");
this->OutputMakeRule(fout,
"Rule to force the build of cmake.depends",
"depend",
"${SUBDIR_DEPEND}",
- "${CMAKE} ${CMAKE_CURRENT_SOURCE}/CMakeLists.txt "
+ "${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE}/CMakeLists.txt "
"-S${CMAKE_CURRENT_SOURCE} -O${CMAKE_CURRENT_BINARY} "
"-H${CMAKE_SOURCE_DIR} -B${CMAKE_BINARY_DIR}");
this->OutputMakeRule(fout,
"Rebuild the cache",
"rebuild_cache",
"${CMAKE_BINARY_DIR}/CMakeCache.txt",
- "${CMAKE} ${CMAKE_SOURCE_DIR}/CMakeLists.txt "
+ "${CMAKE_COMMAND} ${CMAKE_SOURCE_DIR}/CMakeLists.txt "
"-MakeCache -S${CMAKE_SOURCE_DIR} -O${CMAKE_BINARY_DIR} "
"-H${CMAKE_SOURCE_DIR} -B${CMAKE_BINARY_DIR}");