ctest: Make the --build-makeprogram optional for --build-and-test
GenerateBuildCommand now knows how to lookup CMAKE_MAKE_PROGRAM or choose a generator-provided default build tool. Therefore the --build-makeprogram can now be optional and simply override the default selection when provided. Note that with --build-nocmake we now need to load the cache in order to make the CMAKE_MAKE_PROGRAM entry available to GenerateBuildCommand.
This commit is contained in:
parent
91a021146c
commit
96966b5c80
@ -225,8 +225,8 @@ Options
|
|||||||
and or execute a test. The configure and test steps are optional.
|
and or execute a test. The configure and test steps are optional.
|
||||||
The arguments to this command line are the source and binary
|
The arguments to this command line are the source and binary
|
||||||
directories. By default this will run CMake on the Source/Bin
|
directories. By default this will run CMake on the Source/Bin
|
||||||
directories specified unless --build-nocmake is specified. Both
|
directories specified unless --build-nocmake is specified.
|
||||||
--build-makeprogram and --build-generator MUST be provided to use
|
The --build-generator option *must* be provided to use
|
||||||
--build-and-test. If --test-command is specified then that will be
|
--build-and-test. If --test-command is specified then that will be
|
||||||
run after the build is complete. Other options that affect this
|
run after the build is complete. Other options that affect this
|
||||||
mode are --build-target --build-nocmake, --build-run-dir,
|
mode are --build-target --build-nocmake, --build-run-dir,
|
||||||
@ -265,7 +265,7 @@ Options
|
|||||||
Specify the name of the project to build.
|
Specify the name of the project to build.
|
||||||
|
|
||||||
``--build-makeprogram``
|
``--build-makeprogram``
|
||||||
Specify the make program to use.
|
Override the make program chosen by CTest with a given one.
|
||||||
|
|
||||||
``--build-noclean``
|
``--build-noclean``
|
||||||
Skip the make clean step.
|
Skip the make clean step.
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include "cmGlobalGenerator.h"
|
#include "cmGlobalGenerator.h"
|
||||||
#include <cmsys/Process.h>
|
#include <cmsys/Process.h>
|
||||||
#include "cmCTestTestHandler.h"
|
#include "cmCTestTestHandler.h"
|
||||||
|
#include "cmCacheManager.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
cmCTestBuildAndTestHandler::cmCTestBuildAndTestHandler()
|
cmCTestBuildAndTestHandler::cmCTestBuildAndTestHandler()
|
||||||
@ -184,14 +185,14 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring)
|
|||||||
cmOStringStream out;
|
cmOStringStream out;
|
||||||
|
|
||||||
// if the generator and make program are not specified then it is an error
|
// if the generator and make program are not specified then it is an error
|
||||||
if (!this->BuildGenerator.size() || !this->BuildMakeProgram.size())
|
if (!this->BuildGenerator.size())
|
||||||
{
|
{
|
||||||
if(outstring)
|
if(outstring)
|
||||||
{
|
{
|
||||||
*outstring =
|
*outstring =
|
||||||
"--build-and-test requires that both the generator and makeprogram "
|
"--build-and-test requires that the generator "
|
||||||
"be provided using the --build-generator and --build-makeprogram "
|
"be provided using the --build-generator "
|
||||||
"command line options. ";
|
"command line option. ";
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -238,9 +239,13 @@ int cmCTestBuildAndTestHandler::RunCMakeAndTest(std::string* outstring)
|
|||||||
|
|
||||||
if(this->BuildNoCMake)
|
if(this->BuildNoCMake)
|
||||||
{
|
{
|
||||||
|
// Make the generator available for the Build call below.
|
||||||
cm.SetGlobalGenerator(cm.CreateGlobalGenerator(
|
cm.SetGlobalGenerator(cm.CreateGlobalGenerator(
|
||||||
this->BuildGenerator.c_str()));
|
this->BuildGenerator.c_str()));
|
||||||
cm.SetGeneratorToolset(this->BuildGeneratorToolset);
|
cm.SetGeneratorToolset(this->BuildGeneratorToolset);
|
||||||
|
|
||||||
|
// Load the cache to make CMAKE_MAKE_PROGRAM available.
|
||||||
|
cm.GetCacheManager()->LoadCache(this->BinaryDir.c_str());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user