Merge branch 'fix-2828-more-info-in-script-mode' into add-STRING-subcommand-FIND-issue-11795
Conflicts: Tests/CMakeTests/StringTestScript.cmake
This commit is contained in:
commit
8a8da3694b
|
@ -96,6 +96,14 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
||||||
"See also CMAKE_CURRENT_LIST_FILE.",false,
|
"See also CMAKE_CURRENT_LIST_FILE.",false,
|
||||||
"Variables that Provide Information");
|
"Variables that Provide Information");
|
||||||
|
|
||||||
|
cm->DefineProperty
|
||||||
|
("CMAKE_SCRIPT_MODE_FILE", cmProperty::VARIABLE,
|
||||||
|
"Full path to the -P script file currently being processed. ",
|
||||||
|
"When run in -P script mode, CMake sets this variable to the full "
|
||||||
|
"path of the script file. When run to configure a CMakeLists.txt "
|
||||||
|
"file, this variable is not set.", false,
|
||||||
|
"Variables that Provide Information");
|
||||||
|
|
||||||
cm->DefineProperty
|
cm->DefineProperty
|
||||||
("CMAKE_BUILD_TOOL", cmProperty::VARIABLE,
|
("CMAKE_BUILD_TOOL", cmProperty::VARIABLE,
|
||||||
"Tool used for the actual build process.",
|
"Tool used for the actual build process.",
|
||||||
|
|
|
@ -22,21 +22,22 @@ bool cmGetCMakePropertyCommand
|
||||||
this->SetError("called with incorrect number of arguments");
|
this->SetError("called with incorrect number of arguments");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string>::size_type cc;
|
std::vector<std::string>::size_type cc;
|
||||||
std::string variable = args[0];
|
std::string variable = args[0];
|
||||||
std::string output = "NOTFOUND";
|
std::string output = "NOTFOUND";
|
||||||
|
|
||||||
if ( args[1] == "VARIABLES")
|
if ( args[1] == "VARIABLES" )
|
||||||
{
|
{
|
||||||
int cacheonly = 0;
|
int cacheonly = 0;
|
||||||
std::vector<std::string> vars = this->Makefile->GetDefinitions(cacheonly);
|
std::vector<std::string> vars = this->Makefile->GetDefinitions(cacheonly);
|
||||||
for ( cc = 0; cc < vars.size(); cc ++ )
|
if (vars.size()>0)
|
||||||
{
|
{
|
||||||
if ( cc > 0 )
|
output = vars[0];
|
||||||
{
|
}
|
||||||
output += ";";
|
for ( cc = 1; cc < vars.size(); ++cc )
|
||||||
}
|
{
|
||||||
|
output += ";";
|
||||||
output += vars[cc];
|
output += vars[cc];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,15 +63,15 @@ bool cmGetCMakePropertyCommand
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const char *prop =
|
const char *prop =
|
||||||
this->Makefile->GetCMakeInstance()->GetProperty(args[1].c_str());
|
this->Makefile->GetCMakeInstance()->GetProperty(args[1].c_str());
|
||||||
if (prop)
|
if (prop)
|
||||||
{
|
{
|
||||||
output = prop;
|
output = prop;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this->Makefile->AddDefinition(variable.c_str(), output.c_str());
|
this->Makefile->AddDefinition(variable.c_str(), output.c_str());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2744,6 +2744,11 @@ void cmMakefile::SetHomeOutputDirectory(const char* lib)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cmMakefile::SetScriptModeFile(const char* scriptfile)
|
||||||
|
{
|
||||||
|
this->AddDefinition("CMAKE_SCRIPT_MODE_FILE", scriptfile);
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
cmSourceFile* cmMakefile::GetSource(const char* sourceName)
|
cmSourceFile* cmMakefile::GetSource(const char* sourceName)
|
||||||
{
|
{
|
||||||
|
|
|
@ -411,7 +411,12 @@ public:
|
||||||
return this->HomeOutputDirectory.c_str();
|
return this->HomeOutputDirectory.c_str();
|
||||||
}
|
}
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set CMAKE_SCRIPT_MODE_FILE variable when running a -P script.
|
||||||
|
*/
|
||||||
|
void SetScriptModeFile(const char* scriptfile);
|
||||||
|
|
||||||
//@{
|
//@{
|
||||||
/**
|
/**
|
||||||
* Set/Get the start directory (or output directory). The start directory
|
* Set/Get the start directory (or output directory). The start directory
|
||||||
|
|
|
@ -510,6 +510,12 @@ void cmake::ReadListFile(const char *path)
|
||||||
(cmSystemTools::GetCurrentWorkingDirectory().c_str());
|
(cmSystemTools::GetCurrentWorkingDirectory().c_str());
|
||||||
lg->GetMakefile()->SetStartDirectory
|
lg->GetMakefile()->SetStartDirectory
|
||||||
(cmSystemTools::GetCurrentWorkingDirectory().c_str());
|
(cmSystemTools::GetCurrentWorkingDirectory().c_str());
|
||||||
|
if (this->GetScriptMode())
|
||||||
|
{
|
||||||
|
std::string file(cmSystemTools::CollapseFullPath(path));
|
||||||
|
cmSystemTools::ConvertToUnixSlashes(file);
|
||||||
|
lg->GetMakefile()->SetScriptModeFile(file.c_str());
|
||||||
|
}
|
||||||
if (!lg->GetMakefile()->ReadListFile(0, path))
|
if (!lg->GetMakefile()->ReadListFile(0, path))
|
||||||
{
|
{
|
||||||
cmSystemTools::Error("Error processing file:", path);
|
cmSystemTools::Error("Error processing file:", path);
|
||||||
|
|
|
@ -194,6 +194,8 @@ elseif(testname STREQUAL random_with_various_alphabets) # pass
|
||||||
string(RANDOM LENGTH 78 ALPHABET "~`!@#$%^&*()_-+={}[]\\|:\\;'\",.<>/?" v)
|
string(RANDOM LENGTH 78 ALPHABET "~`!@#$%^&*()_-+={}[]\\|:\\;'\",.<>/?" v)
|
||||||
message(STATUS "v='${v}'")
|
message(STATUS "v='${v}'")
|
||||||
|
|
||||||
|
message(STATUS "CMAKE_SCRIPT_MODE_FILE='${CMAKE_SCRIPT_MODE_FILE}'")
|
||||||
|
|
||||||
elseif(testname STREQUAL string_find_with_no_parameter) # fail
|
elseif(testname STREQUAL string_find_with_no_parameter) # fail
|
||||||
string(FIND)
|
string(FIND)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue