ENH: add cache manager class, move all commands into cmCommands.cxx to speed up compile times, share a .lib with the command line and mfc versions.

This commit is contained in:
Bill Hoffman 2001-02-12 14:26:25 -05:00
parent 452a127004
commit d195c01a90
15 changed files with 725 additions and 687 deletions

280
Source/CMakeLib.dsp Normal file
View File

@ -0,0 +1,280 @@
# Microsoft Developer Studio Project File - Name="CMakeLib" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=CMakeLib - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "CMakeLib.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "CMakeLib.mak" CFG="CMakeLib - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "CMakeLib - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "CMakeLib - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "CMakeLib - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "CMakeLib - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "CMakeLib - Win32 Release"
# Name "CMakeLib - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\cmCacheManager.cxx
# End Source File
# Begin Source File
SOURCE=..\cmClassFile.cxx
# End Source File
# Begin Source File
SOURCE=..\cmCommands.cxx
# End Source File
# Begin Source File
SOURCE=..\cmDirectory.cxx
# End Source File
# Begin Source File
SOURCE=..\cmDSPMakefile.cxx
# End Source File
# Begin Source File
SOURCE=..\cmDSWMakefile.cxx
# End Source File
# Begin Source File
SOURCE=..\cmMakefile.cxx
# End Source File
# Begin Source File
SOURCE=..\cmMakefileGenerator.cxx
# End Source File
# Begin Source File
SOURCE=..\cmMSProjectGenerator.cxx
# End Source File
# Begin Source File
SOURCE=..\cmRegularExpression.cxx
# End Source File
# Begin Source File
SOURCE=..\cmSystemTools.cxx
# End Source File
# Begin Source File
SOURCE=..\cmWindowsConfigure.cxx
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\cmAbstractFilesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmAddTargetCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmAuxSourceDirectoryCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmCacheManager.h
# End Source File
# Begin Source File
SOURCE=..\cmClassFile.h
# End Source File
# Begin Source File
SOURCE=..\cmCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmDirectory.h
# End Source File
# Begin Source File
SOURCE=..\cmDSPMakefile.h
# End Source File
# Begin Source File
SOURCE=..\cmDSWMakefile.h
# End Source File
# Begin Source File
SOURCE=..\cmExecutablesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmFindIncludeCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmFindLibraryCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmFindProgramCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmIncludeDirectoryCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmLibraryCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmLinkDirectoriesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmLinkLibrariesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmMakeDepend.h
# End Source File
# Begin Source File
SOURCE=..\cmMakefile.h
# End Source File
# Begin Source File
SOURCE=..\cmMakefileGenerator.h
# End Source File
# Begin Source File
SOURCE=..\cmMSProjectGenerator.h
# End Source File
# Begin Source File
SOURCE=..\cmProjectCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmRegularExpression.h
# End Source File
# Begin Source File
SOURCE=..\cmSourceFilesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmSourceFilesRequireCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmStandardIncludes.h
# End Source File
# Begin Source File
SOURCE=..\cmSubdirCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmSystemTools.h
# End Source File
# Begin Source File
SOURCE=..\cmTestsCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmUnixDefinesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmUnixLibrariesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmUnixMakefileGenerator.h
# End Source File
# Begin Source File
SOURCE=..\cmWin32DefinesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmWin32LibrariesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmWindowsConfigure.h
# End Source File
# End Group
# End Target
# End Project

View File

@ -3,6 +3,18 @@ Microsoft Developer Studio Workspace File, Format Version 6.00
###############################################################################
Project: "CMakeLib"=.\CMakeLib.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "CMakeSetup"=.\MFCDialog\CMakeSetup.dsp - Package Owner=<4>
Package=<5>

View File

@ -69,7 +69,7 @@ int main(int ac, char** av)
cmMSProjectGenerator* pg = new cmMSProjectGenerator;
if(arg.find("-DSP", 0) != std::string::npos)
{
pg->BuildDSPOff();
pg->BuildDSWOff();
}
else
{

View File

@ -91,268 +91,12 @@ LINK32=link.exe
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\cmAbstractFilesCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmAddTargetCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\CMakeSetupCMD.cxx
# End Source File
# Begin Source File
SOURCE=.\cmAuxSourceDirectoryCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmClassFile.cxx
# End Source File
# Begin Source File
SOURCE=.\cmDirectory.cxx
# End Source File
# Begin Source File
SOURCE=.\cmDSPMakefile.cxx
# End Source File
# Begin Source File
SOURCE=.\cmDSWMakefile.cxx
# End Source File
# Begin Source File
SOURCE=.\cmExecutablesCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmFindIncludeCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmFindLibraryCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmFindProgramCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmIncludeDirectoryCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmLibraryCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmLinkDirectoriesCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmLinkLibrariesCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmMakeDepend.cxx
# End Source File
# Begin Source File
SOURCE=.\cmMakefile.cxx
# End Source File
# Begin Source File
SOURCE=.\cmMakefileGenerator.cxx
# End Source File
# Begin Source File
SOURCE=.\cmMSProjectGenerator.cxx
# End Source File
# Begin Source File
SOURCE=.\cmProjectCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmRegularExpression.cxx
# End Source File
# Begin Source File
SOURCE=.\cmSourceFilesRequireCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmSourceFilesCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmSubdirCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmSystemTools.cxx
# End Source File
# Begin Source File
SOURCE=.\cmTestsCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmUnixDefinesCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmUnixLibrariesCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmWin32DefinesCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmWin32LibrariesCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\cmWindowsConfigure.cxx
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\cmAbstractFilesCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmAddTargetCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmAuxSourceDirectoryCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmClassFile.h
# End Source File
# Begin Source File
SOURCE=.\cmDirectory.h
# End Source File
# Begin Source File
SOURCE=.\cmDSPMakefile.h
# End Source File
# Begin Source File
SOURCE=.\cmDSWMakefile.h
# End Source File
# Begin Source File
SOURCE=.\cmExecutablesCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmFindIncludeCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmFindLibraryCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmFindProgramCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmIncludeDirectoryCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmLibraryCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmLinkDirectoriesCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmLinkLibrariesCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmMakeDepend.h
# End Source File
# Begin Source File
SOURCE=.\cmMakefile.h
# End Source File
# Begin Source File
SOURCE=.\cmMakefile2.h
# End Source File
# Begin Source File
SOURCE=.\cmMakefileGenerator.h
# End Source File
# Begin Source File
SOURCE=.\cmMSProjectGenerator.h
# End Source File
# Begin Source File
SOURCE=.\cmProjectCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmRegularExpression.h
# End Source File
# Begin Source File
SOURCE=.\cmCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmSourceFilesCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmStandardIncludes.h
# End Source File
# Begin Source File
SOURCE=.\cmSubdirCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmSystemTools.h
# End Source File
# Begin Source File
SOURCE=.\cmTestsCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmUnixDefinesCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmUnixLibrariesCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmWin32DefinesCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmWin32LibrariesCommand.h
# End Source File
# Begin Source File
SOURCE=.\cmWindowsConfigure.h
# End Source File
# End Group
# Begin Group "Resource Files"

View File

@ -53,7 +53,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
# ADD LINK32 /nologo /subsystem:windows /machine:I386
# ADD LINK32 Release/CMakeLib.lib /nologo /subsystem:windows /machine:I386
!ELSEIF "$(CFG)" == "CMakeSetup - Win32 Debug"
@ -66,6 +66,7 @@ LINK32=link.exe
# PROP Use_Debug_Libraries 1
# PROP Output_Dir ".."
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FD /GZ /c
@ -79,7 +80,7 @@ BSC32=bscmake.exe
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 Debug/CMakeLib.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
!ENDIF
@ -92,14 +93,6 @@ LINK32=link.exe
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\cmAbstractFilesCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmAddTargetCommand.cxx
# End Source File
# Begin Source File
SOURCE=.\CMakeSetup.cpp
# End Source File
# Begin Source File
@ -108,130 +101,10 @@ SOURCE=.\CMakeSetup.rc
# End Source File
# Begin Source File
SOURCE=..\CMakeSetupCMD.cxx
# End Source File
# Begin Source File
SOURCE=.\CMakeSetupDialog.cpp
# End Source File
# Begin Source File
SOURCE=..\cmAuxSourceDirectoryCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmClassFile.cxx
# End Source File
# Begin Source File
SOURCE=..\cmDirectory.cxx
# End Source File
# Begin Source File
SOURCE=..\cmDSPMakefile.cxx
# End Source File
# Begin Source File
SOURCE=..\cmDSWMakefile.cxx
# End Source File
# Begin Source File
SOURCE=..\cmExecutablesCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmFindIncludeCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmFindLibraryCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmFindProgramCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmIncludeDirectoryCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmLibraryCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmLinkDirectoriesCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmLinkLibrariesCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmMakeDepend.cxx
# End Source File
# Begin Source File
SOURCE=..\cmMakefile.cxx
# End Source File
# Begin Source File
SOURCE=..\cmMakefileGenerator.cxx
# End Source File
# Begin Source File
SOURCE=..\cmMSProjectGenerator.cxx
# End Source File
# Begin Source File
SOURCE=..\cmProjectCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmRegularExpression.cxx
# End Source File
# Begin Source File
SOURCE=..\cmSourceFilesRequireCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmSourceFilesCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmSubdirCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmSystemTools.cxx
# End Source File
# Begin Source File
SOURCE=..\cmTestsCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmUnixDefinesCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmUnixLibrariesCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmWin32DefinesCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmWin32LibrariesCommand.cxx
# End Source File
# Begin Source File
SOURCE=..\cmWindowsConfigure.cxx
# End Source File
# Begin Source File
SOURCE=.\StdAfx.cpp
# ADD CPP /Yc"stdafx.h"
# End Source File
@ -241,18 +114,6 @@ SOURCE=.\StdAfx.cpp
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\cmAbstractFilesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmAddTargetCommand.h
# End Source File
# Begin Source File
SOURCE=..\CMakeSetup.h
# End Source File
# Begin Source File
SOURCE=.\CMakeSetup.h
# End Source File
# Begin Source File
@ -261,142 +122,6 @@ SOURCE=.\CMakeSetupDialog.h
# End Source File
# Begin Source File
SOURCE=..\cmAuxSourceDirectoryCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmClassFile.h
# End Source File
# Begin Source File
SOURCE=..\cmDirectory.h
# End Source File
# Begin Source File
SOURCE=..\cmDSPBuilder.h
# End Source File
# Begin Source File
SOURCE=..\cmDSPMakefile.h
# End Source File
# Begin Source File
SOURCE=..\cmDSWBuilder.h
# End Source File
# Begin Source File
SOURCE=..\cmDSWMakefile.h
# End Source File
# Begin Source File
SOURCE=..\cmExecutablesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmFindIncludeCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmFindLibraryCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmFindProgramCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmIncludeDirectoryCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmLibraryCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmLinkDirectoriesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmLinkLibrariesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmMakeDepend.h
# End Source File
# Begin Source File
SOURCE=..\cmMakefile.h
# End Source File
# Begin Source File
SOURCE=..\cmMakefile2.h
# End Source File
# Begin Source File
SOURCE=..\cmMakefileGenerator.h
# End Source File
# Begin Source File
SOURCE=..\cmMSProjectGenerator.h
# End Source File
# Begin Source File
SOURCE=..\cmProjectCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmRegularExpression.h
# End Source File
# Begin Source File
SOURCE=..\cmCommandMaker.h
# End Source File
# Begin Source File
SOURCE=..\cmSourceFilesRequireCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmSourceFilesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmStandardIncludes.h
# End Source File
# Begin Source File
SOURCE=..\cmSubdirCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmSystemTools.h
# End Source File
# Begin Source File
SOURCE=..\cmTestsCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmUnixDefinesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmUnixLibrariesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmWin32DefinesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmWin32LibrariesCommand.h
# End Source File
# Begin Source File
SOURCE=..\cmWindowsConfigure.h
# End Source File
# Begin Source File
SOURCE=.\Resource.h
# End Source File
# Begin Source File

View File

@ -266,7 +266,6 @@ void CMakeSetupDialog::OnOK()
::MessageBox(0, error.c_str(), "config ERROR", MB_OK);
}
cmMakefile mf;
mf.SetMakefileGenerator(new cmMSProjectGenerator);
mf.SetHomeDirectory(m_WhereSource);

View File

@ -13,64 +13,27 @@ OBJS = \
CMakeBuildTargets.o \
cmMakeDepend.o \
cmMakefile.o \
cmAbstractFilesCommand.o \
cmMakefileGenerator.o \
cmAddTargetCommand.o \
cmProjectCommand.o \
cmAuxSourceDirectoryCommand.o \
cmRegularExpression.o \
cmClassFile.o \
cmSourceFilesCommand.o \
cmSourceFilesRequireCommand.o \
cmSubdirCommand.o \
cmSystemTools.o \
cmDirectory.o \
cmUnixDefinesCommand.o \
cmExecutablesCommand.o \
cmTestsCommand.o \
cmUnixLibrariesCommand.o \
cmFindIncludeCommand.o \
cmFindLibraryCommand.o \
cmUnixMakefileGenerator.o \
cmFindProgramCommand.o \
cmIncludeDirectoryCommand.o \
cmWin32DefinesCommand.o \
cmLibraryCommand.o \
cmWin32LibrariesCommand.o \
cmLinkDirectoriesCommand.o \
cmLinkLibrariesCommand.o
cmCommands.o
cmCollectFlags.o : $(srcdir)/*.h
CMakeBuildTargets.o : $(srcdir)/*.h
cmMakeDepend.o : $(srcdir)/*.h
cmMakefile.o : $(srcdir)/*.h
cmAbstractFilesCommand.o : $(srcdir)/*.h
cmMakefileGenerator.o : $(srcdir)/*.h
cmAddTargetCommand.o : $(srcdir)/*.h
cmProjectCommand.o : $(srcdir)/*.h
cmAuxSourceDirectoryCommand.o : $(srcdir)/*.h
cmRegularExpression.o : $(srcdir)/*.h
cmClassFile.o : $(srcdir)/*.h
cmSourceFilesCommand.o : $(srcdir)/*.h
cmSourceFilesRequireCommand.o : $(srcdir)/*.h
cmSubdirCommand.o : $(srcdir)/*.h
cmSystemTools.o : $(srcdir)/*.h
cmDirectory.o : $(srcdir)/*.h
cmUnixDefinesCommand.o : $(srcdir)/*.h
cmExecutablesCommand.o : $(srcdir)/*.h
cmTestsCommand.o : $(srcdir)/*.h
cmUnixLibrariesCommand.o : $(srcdir)/*.h
cmFindIncludeCommand.o : $(srcdir)/*.h
cmFindLibraryCommand.o : $(srcdir)/*.h
cmUnixMakefileGenerator.o : $(srcdir)/*.h
cmFindProgramCommand.o : $(srcdir)/*.h
cmIncludeDirectoryCommand.o : $(srcdir)/*.h
cmWin32DefinesCommand.o : $(srcdir)/*.h
cmLibraryCommand.o : $(srcdir)/*.h
cmWin32LibrariesCommand.o : $(srcdir)/*.h
cmLinkDirectoriesCommand.o : $(srcdir)/*.h
cmLinkLibrariesCommand.o : $(srcdir)/*.h
cmCommands.o : $(srcdir)/*.h
CMakeBuildTargets: ${OBJS}

117
Source/cmCacheManager.cxx Normal file
View File

@ -0,0 +1,117 @@
/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile$
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 2000 National Library of Medicine
All rights reserved.
See COPYRIGHT.txt for copyright details.
=========================================================================*/
#include "cmCacheManager.h"
#include "cmSystemTools.h"
const char* cmCacheManagerTypes[] =
{ "BOOL",
"PATH",
"STRING",
0
};
cmCacheManager::CacheEntryType cmCacheManager::StringToType(const char* s)
{
int i = 0;
while(cmCacheManagerTypes[i])
{
if(strcmp(s, cmCacheManagerTypes[i]) == 0)
{
return static_cast<CacheEntryType>(i);
}
}
return STRING;
}
cmCacheManager* cmCacheManager::s_Instance = 0;
cmCacheManager* cmCacheManager::GetInstance()
{
if(!cmCacheManager::s_Instance)
{
cmCacheManager::s_Instance = new cmCacheManager;
}
return cmCacheManager::s_Instance;
}
bool cmCacheManager::LoadCache(const char* path)
{
std::ifstream fin(path);
if(!fin)
{
cmSystemTools::Error("Unable to open cache file for load. ", path);
return false;
}
const int bsize = 4096;
char buffer[bsize];
std::string inputLine;
while(fin)
{
CacheEntry e;
std::string key;
fin.getline(buffer, bsize, '|');
key = buffer;
fin.getline(buffer, bsize, '|');
e.m_Value = buffer;
fin.getline(buffer, bsize); // last token is separated by a newline
e.m_Type = cmCacheManager::StringToType(buffer);
if(fin)
{
m_Cache[key] = e;
}
}
}
bool cmCacheManager::SaveCache(const char* path)
{
std::ofstream fout(path);
if(!fout)
{
cmSystemTools::Error("Unable to open cache file for save. ", path);
return false;
}
for( std::map<std::string, CacheEntry>::iterator i = m_Cache.begin();
i != m_Cache.end(); ++i)
{
fout << (*i).first.c_str() << " | " << (*i).second.m_Value << " | ";
CacheEntryType t = (*i).second.m_Type;
fout << cmCacheManagerTypes[t];
}
fout << "\n";
}
void cmCacheManager::AddCacheEntry(const char* key,
const char* value,
CacheEntryType type)
{
CacheEntry e;
e.m_Value = value;
e.m_Type = type;
m_Cache[key] = e;
}
const char* cmCacheManager::GetCacheValue(const char* key)
{
if(m_Cache.count(key))
{
return m_Cache[key].m_Value.c_str();
}
return 0;
}

72
Source/cmCacheManager.h Normal file
View File

@ -0,0 +1,72 @@
/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile$
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 2000 National Library of Medicine
All rights reserved.
See COPYRIGHT.txt for copyright details.
=========================================================================*/
#ifndef cmCacheManager_h
#define cmCacheManager_h
#include "cmStandardIncludes.h"
/** \class cmCacheManager
* \brief Control class for cmake's cache
*
* Load and Save CMake cache files.
*
*/
class cmCacheManager
{
public:
/**
* Types for the cache entries. These are useful as
* hints for a cache editor program. Path should bring
* up a file chooser, BOOL a check box, and STRING a
* text entry box.
*/
enum CacheEntryType{ BOOL=0, PATH, STRING };
static CacheEntryType StringToType(const char*);
/**
* Singleton pattern get instance of the cmCacheManager.
*/
static cmCacheManager* GetInstance();
/**
* Load a cache from file
*/
bool LoadCache(const char* path);
/**
* Save the cache to a file
*/
bool SaveCache(const char* path);
/**
* Add an entry into the cache
*/
void AddCacheEntry(const char* key, const char* value, CacheEntryType type);
/**
* Get a value from the cache given a key
*/
const char* GetCacheValue(const char* key);
private:
static cmCacheManager* s_Instance;
class CacheEntry
{
public:
std::string m_Value;
CacheEntryType m_Type;
};
std::map<std::string, CacheEntry> m_Cache;
};
#endif

20
Source/cmCommands.cxx Normal file
View File

@ -0,0 +1,20 @@
#include "cmAbstractFilesCommand.cxx"
#include "cmAddTargetCommand.cxx"
#include "cmAuxSourceDirectoryCommand.cxx"
#include "cmExecutablesCommand.cxx"
#include "cmFindIncludeCommand.cxx"
#include "cmFindLibraryCommand.cxx"
#include "cmFindProgramCommand.cxx"
#include "cmIncludeDirectoryCommand.cxx"
#include "cmLibraryCommand.cxx"
#include "cmLinkDirectoriesCommand.cxx"
#include "cmLinkLibrariesCommand.cxx"
#include "cmProjectCommand.cxx"
#include "cmSourceFilesCommand.cxx"
#include "cmSourceFilesRequireCommand.cxx"
#include "cmSubdirCommand.cxx"
#include "cmTestsCommand.cxx"
#include "cmUnixDefinesCommand.cxx"
#include "cmUnixLibrariesCommand.cxx"
#include "cmWin32DefinesCommand.cxx"
#include "cmWin32LibrariesCommand.cxx"

View File

@ -0,0 +1,34 @@
/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile$
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 2000 National Library of Medicine
All rights reserved.
See COPYRIGHT.txt for copyright details.
=========================================================================*/
#include "cmConfigureHeaderCommand.h"
// cmConfigureHeaderCommand
bool cmConfigureHeaderCommand::Invoke(std::vector<std::string>& args)
{
if(args.size() != 2 )
{
this->SetError("called with incorrect number of arguments, expected 2");
return false;
}
m_InputFile = args[0];
m_OuputFile = args[1];
return true;
}
void cmConfigureHeaderCommand::FinalPass()
{
}

View File

@ -0,0 +1,69 @@
/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile$
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 2000 National Library of Medicine
All rights reserved.
See COPYRIGHT.txt for copyright details.
=========================================================================*/
#ifndef cmConfigureHeaderCommand_h
#define cmConfigureHeaderCommand_h
#include "cmStandardIncludes.h"
#include "cmCommand.h"
class cmConfigureHeaderCommand : public cmCommand
{
public:
virtual cmCommand* Clone()
{
return new cmConfigureHeaderCommand;
}
/**
* This is called when the command is first encountered in
* the input file.
*/
virtual bool Invoke(std::vector<std::string>& args);
/**
* The name of the command as specified in CMakeList.txt.
*/
virtual const char* GetName() { return "CONFIGURE_HEADER";}
/**
* Succinct documentation.
*/
virtual const char* GetTerseDocumentation()
{
return "Create a header file from an autoconf style header.h.in file.";
}
/**
* Longer documentation.
*/
virtual const char* GetFullDocumentation()
{
return
"CONFIGURE_HEADER(InputFile OutputFile)\n"
"The Input and Ouput files have to have full paths.\n"
"They can also use variables like CMAKE_BINARY_DIR, CMAKE_SOURCE_DIR\n";
}
/**
* Create the header files in this pass. This is so
* all varibles can be expaned.
*/
virtual void FinalPass();
};
#endif

View File

@ -85,7 +85,7 @@ cmDSWMakefile
{
// Create a new cmDSPMakefile to read the currentDir CMakeLists.txt file
cmMSProjectGenerator* pg = new cmMSProjectGenerator;
pg->BuildDSPOff();
pg->BuildDSWOff();
cmMakefile* mf = new cmMakefile;
mf->SetMakefileGenerator(pg);
// add it to the vector

View File

@ -85,7 +85,7 @@ cmDSWMakefile
{
// Create a new cmDSPMakefile to read the currentDir CMakeLists.txt file
cmMSProjectGenerator* pg = new cmMSProjectGenerator;
pg->BuildDSPOff();
pg->BuildDSWOff();
cmMakefile* mf = new cmMakefile;
mf->SetMakefileGenerator(pg);
// add it to the vector

View File

@ -46,9 +46,12 @@ public:
virtual void GenerateMakefile();
/**
* Turn off the generation of a Microsoft Visual C++ DSP file.
* Turn off the generation of a Microsoft Visual C++ DSW file.
* This causes only the dsp file to be created. This
* is used to run as a command line program from inside visual
* studio.
*/
void BuildDSPOff()
void BuildDSWOff()
{m_BuildDSW = false;}
/**