summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2014-02-09 21:55:17 +0100
committerStephen Kelly <steveire@gmail.com>2014-02-09 22:02:37 +0100
commit23d3d38a312ee09a30d28a7ea80c1540397d08bc (patch)
tree8be7d5384eed05244f1945c7f194f39527469d48 /Source
parent1cc3e9f2e73b96370257b55f9c96586a898fe9a4 (diff)
downloadcmake-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.txt46
-rw-r--r--Source/cmCommands.cxx86
-rw-r--r--Source/cmCommands.cxx.in19
-rw-r--r--Source/cmCommandsForBootstrap.cxx16
-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