diff options
author | Stephen Kelly <steveire@gmail.com> | 2014-02-09 21:55:17 +0100 |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2014-02-09 22:02:37 +0100 |
commit | 23d3d38a312ee09a30d28a7ea80c1540397d08bc (patch) | |
tree | 8be7d5384eed05244f1945c7f194f39527469d48 /Source | |
parent | 1cc3e9f2e73b96370257b55f9c96586a898fe9a4 (diff) | |
download | cmake-23d3d38a312ee09a30d28a7ea80c1540397d08bc.tar.gz |
CMakeLists: Generate the cmCommands.cxx file.
Define the list of commands in the CMakeLists.txt file. List the
sources in the CMakeLib target, but mark them as HEADER_FILE_ONLY.
This has the effect that IDEs will show the files, though they
will not be built again.
Add a cmCommandsForBootstrap.cxx file for bootstrapping purposes.
Rename the cmExportLibraryDependencies file to match the common
pattern.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CMakeLists.txt | 46 | ||||
-rw-r--r-- | Source/cmCommands.cxx | 86 | ||||
-rw-r--r-- | Source/cmCommands.cxx.in | 19 | ||||
-rw-r--r-- | Source/cmCommandsForBootstrap.cxx | 16 | ||||
-rw-r--r-- | Source/cmExportLibraryDependenciesCommand.cxx (renamed from Source/cmExportLibraryDependencies.cxx) | 2 | ||||
-rw-r--r-- | Source/cmExportLibraryDependenciesCommand.h (renamed from Source/cmExportLibraryDependencies.h) | 0 |
6 files changed, 81 insertions, 88 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index dbb922d70b..175a034ba2 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 1e2a85cfb1..0000000000 --- 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<cmCommand*>& -#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 0000000000..f0745d780e --- /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<cmCommand*>& commands) +{ +@NEW_COMMANDS@ +} diff --git a/Source/cmCommandsForBootstrap.cxx b/Source/cmCommandsForBootstrap.cxx new file mode 100644 index 0000000000..15b664eeed --- /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<cmCommand*>&) +{ +} diff --git a/Source/cmExportLibraryDependencies.cxx b/Source/cmExportLibraryDependenciesCommand.cxx index 4624e92f2b..5d6f094708 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 index 29b568fc80..29b568fc80 100644 --- a/Source/cmExportLibraryDependencies.h +++ b/Source/cmExportLibraryDependenciesCommand.h |