cmTry{Compile,Run}Command: Port away from legacy cmCommand

Convert the command entry points to free functions.
This commit is contained in:
Brad King
2022-06-15 15:07:06 -04:00
parent 7ba3a3290f
commit e73c8eaff2
6 changed files with 89 additions and 116 deletions
+2 -48
View File
@@ -7,53 +7,7 @@
#include <string>
#include <vector>
#include <cm/memory>
#include "cmCommand.h"
#include "cmCoreTryCompile.h"
class cmExecutionStatus;
/** \class cmTryRunCommand
* \brief Specifies where to install some files
*
* cmTryRunCommand is used to test if source code can be compiled
*/
class cmTryRunCommand : public cmCoreTryCompile
{
public:
/**
* This is a virtual constructor for the command.
*/
std::unique_ptr<cmCommand> Clone() override
{
return cm::make_unique<cmTryRunCommand>();
}
/**
* This is called when the command is first encountered in
* the CMakeLists.txt file.
*/
bool InitialPass(std::vector<std::string> const& args,
cmExecutionStatus& status) override;
private:
void RunExecutable(const std::string& runArgs,
std::string* runOutputContents,
std::string* runOutputStdOutContents,
std::string* runOutputStdErrContents);
void DoNotRunExecutable(const std::string& runArgs,
const std::string& srcFile,
std::string* runOutputContents,
std::string* runOutputStdOutContents,
std::string* runOutputStdErrContents);
std::string CompileResultVariable;
std::string RunResultVariable;
std::string OutputVariable;
std::string RunOutputVariable;
std::string RunOutputStdOutVariable;
std::string RunOutputStdErrVariable;
std::string CompileOutputVariable;
std::string WorkingDirectory;
};
bool cmTryRunCommand(std::vector<std::string> const& args,
cmExecutionStatus& status);