CMake/Source/cmCommands.cxx
2017-02-17 22:12:21 +01:00

269 lines
11 KiB
C++

/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmCommands.h"
#include "cmPolicies.h"
#include "cmState.h"
#include "cmAddCustomCommandCommand.h"
#include "cmAddCustomTargetCommand.h"
#include "cmAddDefinitionsCommand.h"
#include "cmAddDependenciesCommand.h"
#include "cmAddExecutableCommand.h"
#include "cmAddLibraryCommand.h"
#include "cmAddSubDirectoryCommand.h"
#include "cmAddTestCommand.h"
#include "cmBreakCommand.h"
#include "cmBuildCommand.h"
#include "cmCMakeMinimumRequired.h"
#include "cmCMakePolicyCommand.h"
#include "cmConfigureFileCommand.h"
#include "cmContinueCommand.h"
#include "cmCreateTestSourceList.h"
#include "cmDefinePropertyCommand.h"
#include "cmEnableLanguageCommand.h"
#include "cmEnableTestingCommand.h"
#include "cmExecProgramCommand.h"
#include "cmExecuteProcessCommand.h"
#include "cmFileCommand.h"
#include "cmFindFileCommand.h"
#include "cmFindLibraryCommand.h"
#include "cmFindPackageCommand.h"
#include "cmFindPathCommand.h"
#include "cmFindProgramCommand.h"
#include "cmForEachCommand.h"
#include "cmFunctionCommand.h"
#include "cmGetCMakePropertyCommand.h"
#include "cmGetDirectoryPropertyCommand.h"
#include "cmGetFilenameComponentCommand.h"
#include "cmGetPropertyCommand.h"
#include "cmGetSourceFilePropertyCommand.h"
#include "cmGetTargetPropertyCommand.h"
#include "cmGetTestPropertyCommand.h"
#include "cmIfCommand.h"
#include "cmIncludeCommand.h"
#include "cmIncludeDirectoryCommand.h"
#include "cmIncludeRegularExpressionCommand.h"
#include "cmInstallCommand.h"
#include "cmInstallFilesCommand.h"
#include "cmInstallTargetsCommand.h"
#include "cmLinkDirectoriesCommand.h"
#include "cmListCommand.h"
#include "cmMacroCommand.h"
#include "cmMakeDirectoryCommand.h"
#include "cmMarkAsAdvancedCommand.h"
#include "cmMathCommand.h"
#include "cmMessageCommand.h"
#include "cmOptionCommand.h"
#include "cmParseArgumentsCommand.h"
#include "cmProjectCommand.h"
#include "cmReturnCommand.h"
#include "cmSeparateArgumentsCommand.h"
#include "cmSetCommand.h"
#include "cmSetDirectoryPropertiesCommand.h"
#include "cmSetPropertyCommand.h"
#include "cmSetSourceFilesPropertiesCommand.h"
#include "cmSetTargetPropertiesCommand.h"
#include "cmSetTestsPropertiesCommand.h"
#include "cmSiteNameCommand.h"
#include "cmStringCommand.h"
#include "cmSubdirCommand.h"
#include "cmTargetLinkLibrariesCommand.h"
#include "cmTryCompileCommand.h"
#include "cmTryRunCommand.h"
#include "cmUnexpectedCommand.h"
#include "cmUnsetCommand.h"
#include "cmWhileCommand.h"
#if defined(CMAKE_BUILD_WITH_CMAKE)
#include "cmAddCompileOptionsCommand.h"
#include "cmAuxSourceDirectoryCommand.h"
#include "cmBuildNameCommand.h"
#include "cmCMakeHostSystemInformationCommand.h"
#include "cmDisallowedCommand.h"
#include "cmExportCommand.h"
#include "cmExportLibraryDependenciesCommand.h"
#include "cmFLTKWrapUICommand.h"
#include "cmIncludeExternalMSProjectCommand.h"
#include "cmInstallProgramsCommand.h"
#include "cmLinkLibrariesCommand.h"
#include "cmLoadCacheCommand.h"
#include "cmLoadCommandCommand.h"
#include "cmOutputRequiredFilesCommand.h"
#include "cmQTWrapCPPCommand.h"
#include "cmQTWrapUICommand.h"
#include "cmRemoveCommand.h"
#include "cmRemoveDefinitionsCommand.h"
#include "cmSourceGroupCommand.h"
#include "cmSubdirDependsCommand.h"
#include "cmTargetCompileDefinitionsCommand.h"
#include "cmTargetCompileFeaturesCommand.h"
#include "cmTargetCompileOptionsCommand.h"
#include "cmTargetIncludeDirectoriesCommand.h"
#include "cmTargetSourcesCommand.h"
#include "cmUseMangledMesaCommand.h"
#include "cmUtilitySourceCommand.h"
#include "cmVariableRequiresCommand.h"
#include "cmVariableWatchCommand.h"
#include "cmWriteFileCommand.h"
#endif
void GetScriptingCommands(cmState* state)
{
state->AddCommand(new cmBreakCommand);
state->AddCommand(new cmCMakeMinimumRequired);
state->AddCommand(new cmCMakePolicyCommand);
state->AddCommand(new cmConfigureFileCommand);
state->AddCommand(new cmContinueCommand);
state->AddCommand(new cmExecProgramCommand);
state->AddCommand(new cmExecuteProcessCommand);
state->AddCommand(new cmFileCommand);
state->AddCommand(new cmFindFileCommand);
state->AddCommand(new cmFindLibraryCommand);
state->AddCommand(new cmFindPackageCommand);
state->AddCommand(new cmFindPathCommand);
state->AddCommand(new cmFindProgramCommand);
state->AddCommand(new cmForEachCommand);
state->AddCommand(new cmFunctionCommand);
state->AddCommand(new cmGetCMakePropertyCommand);
state->AddCommand(new cmGetDirectoryPropertyCommand);
state->AddCommand(new cmGetFilenameComponentCommand);
state->AddCommand(new cmGetPropertyCommand);
state->AddCommand(new cmIfCommand);
state->AddCommand(new cmIncludeCommand);
state->AddCommand(new cmListCommand);
state->AddCommand(new cmMacroCommand);
state->AddCommand(new cmMakeDirectoryCommand);
state->AddCommand(new cmMarkAsAdvancedCommand);
state->AddCommand(new cmMathCommand);
state->AddCommand(new cmMessageCommand);
state->AddCommand(new cmOptionCommand);
state->AddCommand(new cmParseArgumentsCommand);
state->AddCommand(new cmReturnCommand);
state->AddCommand(new cmSeparateArgumentsCommand);
state->AddCommand(new cmSetCommand);
state->AddCommand(new cmSetDirectoryPropertiesCommand);
state->AddCommand(new cmSetPropertyCommand);
state->AddCommand(new cmSiteNameCommand);
state->AddCommand(new cmStringCommand);
state->AddCommand(new cmUnsetCommand);
state->AddCommand(new cmWhileCommand);
state->AddCommand(new cmUnexpectedCommand(
"else", "An ELSE command was found outside of a proper "
"IF ENDIF structure. Or its arguments did not match "
"the opening IF command."));
state->AddCommand(new cmUnexpectedCommand(
"elseif", "An ELSEIF command was found outside of a proper "
"IF ENDIF structure."));
state->AddCommand(new cmUnexpectedCommand(
"endforeach", "An ENDFOREACH command was found outside of a proper "
"FOREACH ENDFOREACH structure. Or its arguments did "
"not match the opening FOREACH command."));
state->AddCommand(new cmUnexpectedCommand(
"endfunction", "An ENDFUNCTION command was found outside of a proper "
"FUNCTION ENDFUNCTION structure. Or its arguments did not "
"match the opening FUNCTION command."));
state->AddCommand(new cmUnexpectedCommand(
"endif", "An ENDIF command was found outside of a proper "
"IF ENDIF structure. Or its arguments did not match "
"the opening IF command."));
state->AddCommand(new cmUnexpectedCommand(
"endmacro", "An ENDMACRO command was found outside of a proper "
"MACRO ENDMACRO structure. Or its arguments did not "
"match the opening MACRO command."));
state->AddCommand(new cmUnexpectedCommand(
"endwhile", "An ENDWHILE command was found outside of a proper "
"WHILE ENDWHILE structure. Or its arguments did not "
"match the opening WHILE command."));
#if defined(CMAKE_BUILD_WITH_CMAKE)
state->AddCommand(new cmCMakeHostSystemInformationCommand);
state->AddCommand(new cmRemoveCommand);
state->AddCommand(new cmVariableWatchCommand);
state->AddCommand(new cmWriteFileCommand);
state->AddCommand(new cmDisallowedCommand(
new cmBuildNameCommand, cmPolicies::CMP0036,
"The build_name command should not be called; see CMP0036."));
state->AddCommand(new cmDisallowedCommand(
new cmUseMangledMesaCommand, cmPolicies::CMP0030,
"The use_mangled_mesa command should not be called; see CMP0030."));
#endif
}
void GetProjectCommands(cmState* state)
{
state->AddCommand(new cmAddCustomCommandCommand);
state->AddCommand(new cmAddCustomTargetCommand);
state->AddCommand(new cmAddDefinitionsCommand);
state->AddCommand(new cmAddDependenciesCommand);
state->AddCommand(new cmAddExecutableCommand);
state->AddCommand(new cmAddLibraryCommand);
state->AddCommand(new cmAddSubDirectoryCommand);
state->AddCommand(new cmAddTestCommand);
state->AddCommand(new cmBuildCommand);
state->AddCommand(new cmCreateTestSourceList);
state->AddCommand(new cmDefinePropertyCommand);
state->AddCommand(new cmEnableLanguageCommand);
state->AddCommand(new cmEnableTestingCommand);
state->AddCommand(new cmGetSourceFilePropertyCommand);
state->AddCommand(new cmGetTargetPropertyCommand);
state->AddCommand(new cmGetTestPropertyCommand);
state->AddCommand(new cmIncludeDirectoryCommand);
state->AddCommand(new cmIncludeRegularExpressionCommand);
state->AddCommand(new cmInstallCommand);
state->AddCommand(new cmInstallFilesCommand);
state->AddCommand(new cmInstallTargetsCommand);
state->AddCommand(new cmLinkDirectoriesCommand);
state->AddCommand(new cmProjectCommand);
state->AddCommand(new cmSetSourceFilesPropertiesCommand);
state->AddCommand(new cmSetTargetPropertiesCommand);
state->AddCommand(new cmSetTestsPropertiesCommand);
state->AddCommand(new cmSubdirCommand);
state->AddCommand(new cmTargetLinkLibrariesCommand);
state->AddCommand(new cmTryCompileCommand);
state->AddCommand(new cmTryRunCommand);
#if defined(CMAKE_BUILD_WITH_CMAKE)
state->AddCommand(new cmAddCompileOptionsCommand);
state->AddCommand(new cmAuxSourceDirectoryCommand);
state->AddCommand(new cmExportCommand);
state->AddCommand(new cmFLTKWrapUICommand);
state->AddCommand(new cmIncludeExternalMSProjectCommand);
state->AddCommand(new cmInstallProgramsCommand);
state->AddCommand(new cmLinkLibrariesCommand);
state->AddCommand(new cmLoadCacheCommand);
state->AddCommand(new cmQTWrapCPPCommand);
state->AddCommand(new cmQTWrapUICommand);
state->AddCommand(new cmRemoveDefinitionsCommand);
state->AddCommand(new cmSourceGroupCommand);
state->AddCommand(new cmTargetCompileDefinitionsCommand);
state->AddCommand(new cmTargetCompileFeaturesCommand);
state->AddCommand(new cmTargetCompileOptionsCommand);
state->AddCommand(new cmTargetIncludeDirectoriesCommand);
state->AddCommand(new cmTargetSourcesCommand);
state->AddCommand(new cmDisallowedCommand(
new cmExportLibraryDependenciesCommand, cmPolicies::CMP0033,
"The export_library_dependencies command should not be called; "
"see CMP0033."));
state->AddCommand(new cmDisallowedCommand(
new cmLoadCommandCommand, cmPolicies::CMP0031,
"The load_command command should not be called; see CMP0031."));
state->AddCommand(new cmDisallowedCommand(
new cmOutputRequiredFilesCommand, cmPolicies::CMP0032,
"The output_required_files command should not be called; "
"see CMP0032."));
state->AddCommand(new cmDisallowedCommand(
new cmSubdirDependsCommand, cmPolicies::CMP0029,
"The subdir_depends command should not be called; see CMP0029."));
state->AddCommand(new cmDisallowedCommand(
new cmUtilitySourceCommand, cmPolicies::CMP0034,
"The utility_source command should not be called; see CMP0034."));
state->AddCommand(new cmDisallowedCommand(
new cmVariableRequiresCommand, cmPolicies::CMP0035,
"The variable_requires command should not be called; see CMP0035."));
#endif
}