Pārlūkot izejas kodu

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.
Stephen Kelly 11 gadi atpakaļ
vecāks
revīzija
23d3d38a31

+ 45 - 1
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)

+ 0 - 86
Source/cmCommands.cxx

@@ -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
-}

+ 19 - 0
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@
+}

+ 16 - 0
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*>&)
+{
+}

+ 1 - 1
Source/cmExportLibraryDependencies.cxx → 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"

+ 0 - 0
Source/cmExportLibraryDependencies.h → Source/cmExportLibraryDependenciesCommand.h


+ 1 - 1
bootstrap

@@ -284,7 +284,7 @@ CMAKE_CXX_SOURCES="\
   cmNewLineStyle \
   cmBootstrapCommands1 \
   cmBootstrapCommands2 \
-  cmCommands \
+  cmCommandsForBootstrap \
   cmTarget \
   cmTest \
   cmCustomCommand \