cmake: Split -E command implementation into separate source file
Move the cmake::ExecuteCMakeCommand static method and all the static methods it calls out of the 'cmake' class to a separate 'cmcmd' class. Build the latter as part of the main cmake executable with cmakemain.cxx and not in CMakeLib. Drop unused header includes from "cmake.cxx". By moving this implementation out of cmake.cxx we avoid carrying it around in all the executables that use class 'cmake'. It is needed only for the main "cmake -E" functionality.
This commit is contained in:
parent
e27523a834
commit
c04995b46e
|
@ -545,7 +545,7 @@ if(APPLE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Build CMake executable
|
# Build CMake executable
|
||||||
add_executable(cmake cmakemain.cxx)
|
add_executable(cmake cmakemain.cxx cmcmd.cxx cmcmd.h)
|
||||||
target_link_libraries(cmake CMakeLib)
|
target_link_libraries(cmake CMakeLib)
|
||||||
|
|
||||||
# Build special executable for running programs on Windows 98.
|
# Build special executable for running programs on Windows 98.
|
||||||
|
|
1355
Source/cmake.cxx
1355
Source/cmake.cxx
File diff suppressed because it is too large
Load Diff
|
@ -209,11 +209,6 @@ class cmake
|
||||||
void AddCacheEntry(const char* key, const char* value,
|
void AddCacheEntry(const char* key, const char* value,
|
||||||
const char* helpString,
|
const char* helpString,
|
||||||
int type);
|
int type);
|
||||||
/**
|
|
||||||
* Execute commands during the build process. Supports options such
|
|
||||||
* as echo, remove file etc.
|
|
||||||
*/
|
|
||||||
static int ExecuteCMakeCommand(std::vector<std::string>&);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the system information and write it to the file specified
|
* Get the system information and write it to the file specified
|
||||||
|
@ -450,29 +445,6 @@ protected:
|
||||||
|
|
||||||
void GenerateGraphViz(const char* fileName) const;
|
void GenerateGraphViz(const char* fileName) const;
|
||||||
|
|
||||||
static int SymlinkLibrary(std::vector<std::string>& args);
|
|
||||||
static int SymlinkExecutable(std::vector<std::string>& args);
|
|
||||||
static bool SymlinkInternal(std::string const& file,
|
|
||||||
std::string const& link);
|
|
||||||
static int ExecuteEchoColor(std::vector<std::string>& args);
|
|
||||||
static int ExecuteLinkScript(std::vector<std::string>& args);
|
|
||||||
static int WindowsCEEnvironment(const char* version,
|
|
||||||
const std::string& name);
|
|
||||||
static int VisualStudioLink(std::vector<std::string>& args, int type);
|
|
||||||
static int VisualStudioLinkIncremental(std::vector<std::string>& args,
|
|
||||||
int type,
|
|
||||||
bool verbose);
|
|
||||||
static int VisualStudioLinkNonIncremental(std::vector<std::string>& args,
|
|
||||||
int type,
|
|
||||||
bool hasManifest,
|
|
||||||
bool verbose);
|
|
||||||
static int ParseVisualStudioLinkCommand(std::vector<std::string>& args,
|
|
||||||
std::vector<cmStdString>& command,
|
|
||||||
std::string& targetName);
|
|
||||||
static bool RunCommand(const char* comment,
|
|
||||||
std::vector<cmStdString>& command,
|
|
||||||
bool verbose,
|
|
||||||
int* retCodeOut = 0);
|
|
||||||
cmVariableWatch* VariableWatch;
|
cmVariableWatch* VariableWatch;
|
||||||
|
|
||||||
///! Find the full path to one of the cmake programs like ctest, cpack, etc.
|
///! Find the full path to one of the cmake programs like ctest, cpack, etc.
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "cmake.h"
|
#include "cmake.h"
|
||||||
|
#include "cmcmd.h"
|
||||||
#include "cmCacheManager.h"
|
#include "cmCacheManager.h"
|
||||||
#include "cmListFileCache.h"
|
#include "cmListFileCache.h"
|
||||||
#include "cmakewizard.h"
|
#include "cmakewizard.h"
|
||||||
|
@ -510,7 +511,7 @@ int do_cmake(int ac, char** av)
|
||||||
}
|
}
|
||||||
if(command)
|
if(command)
|
||||||
{
|
{
|
||||||
int ret = cmake::ExecuteCMakeCommand(args);
|
int ret = cmcmd::ExecuteCMakeCommand(args);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
if (wiz)
|
if (wiz)
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,54 @@
|
||||||
|
/*============================================================================
|
||||||
|
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.
|
||||||
|
============================================================================*/
|
||||||
|
|
||||||
|
#ifndef cmcmd_h
|
||||||
|
#define cmcmd_h
|
||||||
|
|
||||||
|
#include "cmStandardIncludes.h"
|
||||||
|
|
||||||
|
class cmcmd
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute commands during the build process. Supports options such
|
||||||
|
* as echo, remove file etc.
|
||||||
|
*/
|
||||||
|
static int ExecuteCMakeCommand(std::vector<std::string>&);
|
||||||
|
protected:
|
||||||
|
|
||||||
|
static int SymlinkLibrary(std::vector<std::string>& args);
|
||||||
|
static int SymlinkExecutable(std::vector<std::string>& args);
|
||||||
|
static bool SymlinkInternal(std::string const& file,
|
||||||
|
std::string const& link);
|
||||||
|
static int ExecuteEchoColor(std::vector<std::string>& args);
|
||||||
|
static int ExecuteLinkScript(std::vector<std::string>& args);
|
||||||
|
static int WindowsCEEnvironment(const char* version,
|
||||||
|
const std::string& name);
|
||||||
|
static int VisualStudioLink(std::vector<std::string>& args, int type);
|
||||||
|
static int VisualStudioLinkIncremental(std::vector<std::string>& args,
|
||||||
|
int type,
|
||||||
|
bool verbose);
|
||||||
|
static int VisualStudioLinkNonIncremental(std::vector<std::string>& args,
|
||||||
|
int type,
|
||||||
|
bool hasManifest,
|
||||||
|
bool verbose);
|
||||||
|
static int ParseVisualStudioLinkCommand(std::vector<std::string>& args,
|
||||||
|
std::vector<cmStdString>& command,
|
||||||
|
std::string& targetName);
|
||||||
|
static bool RunCommand(const char* comment,
|
||||||
|
std::vector<cmStdString>& command,
|
||||||
|
bool verbose,
|
||||||
|
int* retCodeOut = 0);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -197,6 +197,7 @@ CMAKE_CXX_SOURCES="\
|
||||||
cmake \
|
cmake \
|
||||||
cmakemain \
|
cmakemain \
|
||||||
cmakewizard \
|
cmakewizard \
|
||||||
|
cmcmd \
|
||||||
cmCommandArgumentLexer \
|
cmCommandArgumentLexer \
|
||||||
cmCommandArgumentParser \
|
cmCommandArgumentParser \
|
||||||
cmCommandArgumentParserHelper \
|
cmCommandArgumentParserHelper \
|
||||||
|
|
Loading…
Reference in New Issue