diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index dbb922d70..175a034ba 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -127,7 +127,7 @@ set(SRCS cmBootstrapCommands2.cxx cmCacheManager.cxx cmCacheManager.h - cmCommands.cxx + "${CMAKE_CURRENT_BINARY_DIR}/cmCommands.cxx" cmCommands.h cmCommandArgumentLexer.cxx cmCommandArgumentParser.cxx @@ -298,6 +298,50 @@ set(SRCS cm_utf8.c ) +set(COMMAND_INCLUDES "#include \"cmTargetPropCommandBase.cxx\"\n") +list(APPEND SRCS cmTargetPropCommandBase.cxx) +set_property(SOURCE cmTargetPropCommandBase.cxx PROPERTY HEADER_FILE_ONLY ON) +set(NEW_COMMANDS "") +foreach(command_file + cmAddCompileOptionsCommand + cmAuxSourceDirectoryCommand + cmBuildNameCommand + cmCMakeHostSystemInformationCommand + cmElseIfCommand + cmExportCommand + cmExportLibraryDependenciesCommand + cmFLTKWrapUICommand + cmIncludeExternalMSProjectCommand + cmInstallProgramsCommand + cmLinkLibrariesCommand + cmLoadCacheCommand + cmOutputRequiredFilesCommand + cmQTWrapCPPCommand + cmQTWrapUICommand + cmRemoveCommand + cmRemoveDefinitionsCommand + cmSourceGroupCommand + cmSubdirDependsCommand + cmTargetCompileDefinitionsCommand + cmTargetCompileOptionsCommand + cmTargetIncludeDirectoriesCommand + cmUseMangledMesaCommand + cmUtilitySourceCommand + cmVariableRequiresCommand + cmVariableWatchCommand + cmWriteFileCommand + # This one must be last because it includes windows.h and + # windows.h #defines GetCurrentDirectory which is a member + # of cmMakefile + cmLoadCommandCommand + ) + set(COMMAND_INCLUDES "${COMMAND_INCLUDES}#include \"${command_file}.cxx\"\n") + set(NEW_COMMANDS "${NEW_COMMANDS}commands.push_back(new ${command_file});\n") + list(APPEND SRCS ${command_file}.cxx) + set_property(SOURCE ${command_file}.cxx PROPERTY HEADER_FILE_ONLY ON) +endforeach() +configure_file(cmCommands.cxx.in ${CMAKE_CURRENT_BINARY_DIR}/cmCommands.cxx @ONLY) + # Kdevelop only works on UNIX and not windows if(UNIX) set(SRCS ${SRCS} cmGlobalKdevelopGenerator.cxx) diff --git a/Source/cmCommands.cxx b/Source/cmCommands.cxx deleted file mode 100644 index 1e2a85cfb..000000000 --- a/Source/cmCommands.cxx +++ /dev/null @@ -1,86 +0,0 @@ -/*============================================================================ - CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium - - Distributed under the OSI-approved BSD License (the "License"); - see accompanying file Copyright.txt for details. - - This software is distributed WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the License for more information. -============================================================================*/ -#include "cmCommands.h" -#if defined(CMAKE_BUILD_WITH_CMAKE) -#include "cmAddCompileOptionsCommand.cxx" -#include "cmAuxSourceDirectoryCommand.cxx" -#include "cmBuildNameCommand.cxx" -#include "cmCMakeHostSystemInformationCommand.cxx" -#include "cmElseIfCommand.cxx" -#include "cmExportCommand.cxx" -#include "cmExportLibraryDependencies.cxx" -#include "cmFLTKWrapUICommand.cxx" -#include "cmIncludeExternalMSProjectCommand.cxx" -#include "cmInstallProgramsCommand.cxx" -#include "cmLinkLibrariesCommand.cxx" -#include "cmLoadCacheCommand.cxx" -#include "cmOutputRequiredFilesCommand.cxx" -#include "cmQTWrapCPPCommand.cxx" -#include "cmQTWrapUICommand.cxx" -#include "cmRemoveCommand.cxx" -#include "cmRemoveDefinitionsCommand.cxx" -#include "cmSourceGroupCommand.cxx" -#include "cmSubdirDependsCommand.cxx" -#include "cmTargetCompileDefinitionsCommand.cxx" -#include "cmTargetCompileOptionsCommand.cxx" -#include "cmTargetIncludeDirectoriesCommand.cxx" -#include "cmTargetPropCommandBase.cxx" -#include "cmUseMangledMesaCommand.cxx" -#include "cmUtilitySourceCommand.cxx" -#include "cmVariableRequiresCommand.cxx" -#include "cmVariableWatchCommand.cxx" - -#include "cmWriteFileCommand.cxx" - -// This one must be last because it includes windows.h and -// windows.h #defines GetCurrentDirectory which is a member -// of cmMakefile -#include "cmLoadCommandCommand.cxx" -#endif - -void GetPredefinedCommands(std::list& -#if defined(CMAKE_BUILD_WITH_CMAKE) - commands -#endif - ) -{ -#if defined(CMAKE_BUILD_WITH_CMAKE) - commands.push_back(new cmAddCompileOptionsCommand); - commands.push_back(new cmAuxSourceDirectoryCommand); - commands.push_back(new cmBuildNameCommand); - commands.push_back(new cmCMakeHostSystemInformationCommand); - commands.push_back(new cmElseIfCommand); - commands.push_back(new cmExportCommand); - commands.push_back(new cmExportLibraryDependenciesCommand); - commands.push_back(new cmFLTKWrapUICommand); - commands.push_back(new cmIncludeExternalMSProjectCommand); - commands.push_back(new cmInstallProgramsCommand); - commands.push_back(new cmLinkLibrariesCommand); - commands.push_back(new cmLoadCacheCommand); - commands.push_back(new cmLoadCommandCommand); - commands.push_back(new cmOutputRequiredFilesCommand); - commands.push_back(new cmQTWrapCPPCommand); - commands.push_back(new cmQTWrapUICommand); - commands.push_back(new cmRemoveCommand); - commands.push_back(new cmRemoveDefinitionsCommand); - commands.push_back(new cmSourceGroupCommand); - commands.push_back(new cmSubdirDependsCommand); - commands.push_back(new cmTargetIncludeDirectoriesCommand); - commands.push_back(new cmTargetCompileDefinitionsCommand); - commands.push_back(new cmTargetCompileOptionsCommand); - commands.push_back(new cmUseMangledMesaCommand); - commands.push_back(new cmUtilitySourceCommand); - commands.push_back(new cmVariableRequiresCommand); - commands.push_back(new cmVariableWatchCommand); - commands.push_back(new cmWriteFileCommand); -#endif -} diff --git a/Source/cmCommands.cxx.in b/Source/cmCommands.cxx.in new file mode 100644 index 000000000..f0745d780 --- /dev/null +++ b/Source/cmCommands.cxx.in @@ -0,0 +1,19 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#include "cmCommands.h" + +@COMMAND_INCLUDES@ + +void GetPredefinedCommands(std::list& commands) +{ +@NEW_COMMANDS@ +} diff --git a/Source/cmCommandsForBootstrap.cxx b/Source/cmCommandsForBootstrap.cxx new file mode 100644 index 000000000..15b664eee --- /dev/null +++ b/Source/cmCommandsForBootstrap.cxx @@ -0,0 +1,16 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#include "cmCommands.h" + +void GetPredefinedCommands(std::list&) +{ +} diff --git a/Source/cmExportLibraryDependencies.cxx b/Source/cmExportLibraryDependenciesCommand.cxx similarity index 99% rename from Source/cmExportLibraryDependencies.cxx rename to Source/cmExportLibraryDependenciesCommand.cxx index 4624e92f2..5d6f09470 100644 --- a/Source/cmExportLibraryDependencies.cxx +++ b/Source/cmExportLibraryDependenciesCommand.cxx @@ -9,7 +9,7 @@ implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more information. ============================================================================*/ -#include "cmExportLibraryDependencies.h" +#include "cmExportLibraryDependenciesCommand.h" #include "cmGlobalGenerator.h" #include "cmLocalGenerator.h" #include "cmGeneratedFileStream.h" diff --git a/Source/cmExportLibraryDependencies.h b/Source/cmExportLibraryDependenciesCommand.h similarity index 100% rename from Source/cmExportLibraryDependencies.h rename to Source/cmExportLibraryDependenciesCommand.h diff --git a/bootstrap b/bootstrap index c0a3e3bc5..5c754a77f 100755 --- a/bootstrap +++ b/bootstrap @@ -284,7 +284,7 @@ CMAKE_CXX_SOURCES="\ cmNewLineStyle \ cmBootstrapCommands1 \ cmBootstrapCommands2 \ - cmCommands \ + cmCommandsForBootstrap \ cmTarget \ cmTest \ cmCustomCommand \