ENH: split up cmCommands into two files

This commit is contained in:
Bill Hoffman 2005-01-21 10:27:51 -05:00
parent 1bfb3194ec
commit a641ad3bba
7 changed files with 138 additions and 117 deletions

View File

@ -3,6 +3,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 1.5)
SET(SRCS
cmCacheManager.cxx
cmCacheManager.h
cmBootstrapCommands.cxx
cmCommands.cxx
cmCommands.h
cmCustomCommand.cxx

View File

@ -0,0 +1,131 @@
/*=========================================================================
Program: CMake - Cross-Platform Makefile Generator
Module: $RCSfile$
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
// This file is used to compile all the commands
// that CMake knows about at compile time.
// This is sort of a boot strapping approach since you would
// like to have CMake to build CMake.
#include "cmCommands.h"
#include "cmAddCustomCommandCommand.cxx"
#include "cmAddCustomTargetCommand.cxx"
#include "cmAddDefinitionsCommand.cxx"
#include "cmAddDependenciesCommand.cxx"
#include "cmAddExecutableCommand.cxx"
#include "cmAddLibraryCommand.cxx"
#include "cmAddTestCommand.cxx"
#include "cmBuildCommand.cxx"
#include "cmBuildNameCommand.cxx"
#include "cmCMakeMinimumRequired.cxx"
#include "cmConfigureFileCommand.cxx"
#include "cmCreateTestSourceList.cxx"
#include "cmElseCommand.cxx"
#include "cmEnableTestingCommand.cxx"
#include "cmEndForEachCommand.cxx"
#include "cmEndIfCommand.cxx"
#include "cmExecProgramCommand.cxx"
#include "cmFileCommand.cxx"
#include "cmFindFileCommand.cxx"
#include "cmFindLibraryCommand.cxx"
#include "cmFindPackageCommand.cxx"
#include "cmFindPathCommand.cxx"
#include "cmFindProgramCommand.cxx"
#include "cmForEachCommand.cxx"
#include "cmGetFilenameComponentCommand.cxx"
#include "cmGetSourceFilePropertyCommand.cxx"
#include "cmIfCommand.cxx"
#include "cmIncludeCommand.cxx"
#include "cmIncludeDirectoryCommand.cxx"
#include "cmIncludeRegularExpressionCommand.cxx"
#include "cmInstallFilesCommand.cxx"
#include "cmInstallProgramsCommand.cxx"
#include "cmInstallTargetsCommand.cxx"
#include "cmLinkDirectoriesCommand.cxx"
#include "cmMacroCommand.cxx"
#include "cmMakeDirectoryCommand.cxx"
#include "cmMarkAsAdvancedCommand.cxx"
#include "cmMessageCommand.cxx"
#include "cmOptionCommand.cxx"
#include "cmProjectCommand.cxx"
#include "cmRemoveDefinitionsCommand.cxx"
#include "cmSeparateArgumentsCommand.cxx"
#include "cmSetCommand.cxx"
#include "cmSetSourceFilesPropertiesCommand.cxx"
#include "cmSiteNameCommand.cxx"
#include "cmStringCommand.cxx"
#include "cmSubdirCommand.cxx"
#include "cmSubdirDependsCommand.cxx"
#include "cmTargetLinkLibrariesCommand.cxx"
#include "cmTryCompileCommand.cxx"
#include "cmTryRunCommand.cxx"
#include "cmVariableRequiresCommand.cxx"
#include "cmWriteFileCommand.cxx"
void GetBootstrapCommands(std::list<cmCommand*>& commands)
{
commands.push_back(new cmAddCustomCommandCommand);
commands.push_back(new cmAddCustomTargetCommand);
commands.push_back(new cmAddDefinitionsCommand);
commands.push_back(new cmAddDependenciesCommand);
commands.push_back(new cmAddExecutableCommand);
commands.push_back(new cmAddLibraryCommand);
commands.push_back(new cmAddTestCommand);
commands.push_back(new cmBuildCommand);
commands.push_back(new cmBuildNameCommand);
commands.push_back(new cmCMakeMinimumRequired);
commands.push_back(new cmConfigureFileCommand);
commands.push_back(new cmCreateTestSourceList);
commands.push_back(new cmElseCommand);
commands.push_back(new cmEnableTestingCommand);
commands.push_back(new cmEndForEachCommand);
commands.push_back(new cmEndIfCommand);
commands.push_back(new cmExecProgramCommand);
commands.push_back(new cmFileCommand);
commands.push_back(new cmFindFileCommand);
commands.push_back(new cmFindLibraryCommand);
commands.push_back(new cmFindPackageCommand);
commands.push_back(new cmFindPathCommand);
commands.push_back(new cmFindProgramCommand);
commands.push_back(new cmForEachCommand);
commands.push_back(new cmGetFilenameComponentCommand);
commands.push_back(new cmGetSourceFilePropertyCommand);
commands.push_back(new cmIfCommand);
commands.push_back(new cmIncludeCommand);
commands.push_back(new cmIncludeDirectoryCommand);
commands.push_back(new cmIncludeRegularExpressionCommand);
commands.push_back(new cmInstallFilesCommand);
commands.push_back(new cmInstallProgramsCommand);
commands.push_back(new cmInstallTargetsCommand);
commands.push_back(new cmLinkDirectoriesCommand);
commands.push_back(new cmMacroCommand);
commands.push_back(new cmMakeDirectoryCommand);
commands.push_back(new cmMarkAsAdvancedCommand);
commands.push_back(new cmMessageCommand);
commands.push_back(new cmOptionCommand);
commands.push_back(new cmProjectCommand);
commands.push_back(new cmRemoveDefinitionsCommand);
commands.push_back(new cmSeparateArgumentsCommand);
commands.push_back(new cmSetCommand);
commands.push_back(new cmSetSourceFilesPropertiesCommand);
commands.push_back(new cmSiteNameCommand);
commands.push_back(new cmStringCommand);
commands.push_back(new cmSubdirCommand);
commands.push_back(new cmSubdirDependsCommand);
commands.push_back(new cmTargetLinkLibrariesCommand);
commands.push_back(new cmTryCompileCommand);
commands.push_back(new cmTryRunCommand);
commands.push_back(new cmVariableRequiresCommand);
commands.push_back(new cmWriteFileCommand);
}

View File

@ -14,68 +14,7 @@
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
// This file is used to compile all the commands
// that CMake knows about at compile time.
// This is sort of a boot strapping approach since you would
// like to have CMake to build CMake.
#include "cmCommands.h"
#include "cmAddCustomCommandCommand.cxx"
#include "cmAddCustomTargetCommand.cxx"
#include "cmAddDefinitionsCommand.cxx"
#include "cmAddDependenciesCommand.cxx"
#include "cmAddExecutableCommand.cxx"
#include "cmAddLibraryCommand.cxx"
#include "cmAddTestCommand.cxx"
#include "cmBuildCommand.cxx"
#include "cmBuildNameCommand.cxx"
#include "cmCMakeMinimumRequired.cxx"
#include "cmConfigureFileCommand.cxx"
#include "cmCreateTestSourceList.cxx"
#include "cmElseCommand.cxx"
#include "cmEnableTestingCommand.cxx"
#include "cmEndForEachCommand.cxx"
#include "cmEndIfCommand.cxx"
#include "cmExecProgramCommand.cxx"
#include "cmFileCommand.cxx"
#include "cmFindFileCommand.cxx"
#include "cmFindLibraryCommand.cxx"
#include "cmFindPackageCommand.cxx"
#include "cmFindPathCommand.cxx"
#include "cmFindProgramCommand.cxx"
#include "cmForEachCommand.cxx"
#include "cmGetFilenameComponentCommand.cxx"
#include "cmGetSourceFilePropertyCommand.cxx"
#include "cmIfCommand.cxx"
#include "cmIncludeCommand.cxx"
#include "cmIncludeDirectoryCommand.cxx"
#include "cmIncludeRegularExpressionCommand.cxx"
#include "cmInstallFilesCommand.cxx"
#include "cmInstallProgramsCommand.cxx"
#include "cmInstallTargetsCommand.cxx"
#include "cmLinkDirectoriesCommand.cxx"
#include "cmMacroCommand.cxx"
#include "cmMakeDirectoryCommand.cxx"
#include "cmMarkAsAdvancedCommand.cxx"
#include "cmMessageCommand.cxx"
#include "cmOptionCommand.cxx"
#include "cmProjectCommand.cxx"
#include "cmRemoveDefinitionsCommand.cxx"
#include "cmSeparateArgumentsCommand.cxx"
#include "cmSetCommand.cxx"
#include "cmSetSourceFilesPropertiesCommand.cxx"
#include "cmSiteNameCommand.cxx"
#include "cmStringCommand.cxx"
#include "cmSubdirCommand.cxx"
#include "cmSubdirDependsCommand.cxx"
#include "cmTargetLinkLibrariesCommand.cxx"
#include "cmTryCompileCommand.cxx"
#include "cmTryRunCommand.cxx"
#include "cmVariableRequiresCommand.cxx"
#include "cmWriteFileCommand.cxx"
// on regular builds add in these extra commands we do not add it in on the
// bootstrap because they are not needed and may require dynaic loading
// support etc, which makes the bootstrap configure file a mess
#if defined(CMAKE_BUILD_WITH_CMAKE)
#include "cmAbstractFilesCommand.cxx"
#include "cmAuxSourceDirectoryCommand.cxx"
@ -112,65 +51,10 @@
// windows.h #defines GetCurrentDirectory which is a member
// of cmMakefile
#include "cmLoadCommandCommand.cxx"
#endif
void GetPredefinedCommands(std::list<cmCommand*>& commands)
{
commands.push_back(new cmAddCustomCommandCommand);
commands.push_back(new cmAddCustomTargetCommand);
commands.push_back(new cmAddDefinitionsCommand);
commands.push_back(new cmAddDependenciesCommand);
commands.push_back(new cmAddExecutableCommand);
commands.push_back(new cmAddLibraryCommand);
commands.push_back(new cmAddTestCommand);
commands.push_back(new cmBuildCommand);
commands.push_back(new cmBuildNameCommand);
commands.push_back(new cmCMakeMinimumRequired);
commands.push_back(new cmConfigureFileCommand);
commands.push_back(new cmCreateTestSourceList);
commands.push_back(new cmElseCommand);
commands.push_back(new cmEnableTestingCommand);
commands.push_back(new cmEndForEachCommand);
commands.push_back(new cmEndIfCommand);
commands.push_back(new cmExecProgramCommand);
commands.push_back(new cmFileCommand);
commands.push_back(new cmFindFileCommand);
commands.push_back(new cmFindLibraryCommand);
commands.push_back(new cmFindPackageCommand);
commands.push_back(new cmFindPathCommand);
commands.push_back(new cmFindProgramCommand);
commands.push_back(new cmForEachCommand);
commands.push_back(new cmGetFilenameComponentCommand);
commands.push_back(new cmGetSourceFilePropertyCommand);
commands.push_back(new cmIfCommand);
commands.push_back(new cmIncludeCommand);
commands.push_back(new cmIncludeDirectoryCommand);
commands.push_back(new cmIncludeRegularExpressionCommand);
commands.push_back(new cmInstallFilesCommand);
commands.push_back(new cmInstallProgramsCommand);
commands.push_back(new cmInstallTargetsCommand);
commands.push_back(new cmLinkDirectoriesCommand);
commands.push_back(new cmMacroCommand);
commands.push_back(new cmMakeDirectoryCommand);
commands.push_back(new cmMarkAsAdvancedCommand);
commands.push_back(new cmMessageCommand);
commands.push_back(new cmOptionCommand);
commands.push_back(new cmProjectCommand);
commands.push_back(new cmRemoveDefinitionsCommand);
commands.push_back(new cmSeparateArgumentsCommand);
commands.push_back(new cmSetCommand);
commands.push_back(new cmSetSourceFilesPropertiesCommand);
commands.push_back(new cmSiteNameCommand);
commands.push_back(new cmStringCommand);
commands.push_back(new cmSubdirCommand);
commands.push_back(new cmSubdirDependsCommand);
commands.push_back(new cmTargetLinkLibrariesCommand);
commands.push_back(new cmTryCompileCommand);
commands.push_back(new cmTryRunCommand);
commands.push_back(new cmVariableRequiresCommand);
commands.push_back(new cmWriteFileCommand);
#if defined(CMAKE_BUILD_WITH_CMAKE)
commands.push_back(new cmAbstractFilesCommand);
commands.push_back(new cmAuxSourceDirectoryCommand);

View File

@ -21,10 +21,12 @@
class cmCommand;
/**
* Global function to return all compiled in commands.
* To add a new command edit cmCommands.cxx and add your command.
* To add a new command edit cmCommands.cxx or cmBootstrapCommands.cxx
* and add your command.
* It is up to the caller to delete the commands created by this
* call.
*/
void GetBootstrapCommands(std::list<cmCommand*>& commands);
void GetPredefinedCommands(std::list<cmCommand*>& commands);

View File

@ -15,6 +15,7 @@
=========================================================================*/
#include "cmWhileCommand.h"
#include "cmIfCommand.h"
bool cmWhileFunctionBlocker::
IsFunctionBlocked(const cmListFileFunction& lff, cmMakefile &mf)

View File

@ -1409,6 +1409,7 @@ int cmake::DumpDocumentationToFile(std::ostream& f)
void cmake::AddDefaultCommands()
{
std::list<cmCommand*> commands;
GetBootstrapCommands(commands);
GetPredefinedCommands(commands);
for(std::list<cmCommand*>::iterator i = commands.begin();
i != commands.end(); ++i)

View File

@ -45,6 +45,7 @@ CMAKE_CXX_SOURCES="\
cmSystemTools \
cmGlobalUnixMakefileGenerator \
cmLocalUnixMakefileGenerator \
cmBootstrapCommands \
cmCommands \
cmTarget \
cmCustomCommand \