ENH: Add support for importing modules without specifying path
This commit is contained in:
parent
f00186f64b
commit
451522381d
@ -27,17 +27,32 @@ bool cmIncludeCommand::InitialPass(std::vector<std::string> const& args)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
bool optional = false;
|
bool optional = false;
|
||||||
|
|
||||||
|
std::string fname = args[0].c_str();
|
||||||
|
|
||||||
if(args.size() == 2)
|
if(args.size() == 2)
|
||||||
{
|
{
|
||||||
optional = args[1] == "OPTIONAL";
|
optional = args[1] == "OPTIONAL";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(fname.find("/") == fname.npos)
|
||||||
|
{
|
||||||
|
// Not a path. Maybe module.
|
||||||
|
std::string module = fname;
|
||||||
|
module += ".cmake";
|
||||||
|
std::string mfile = m_Makefile->GetModulesFile(module.c_str());
|
||||||
|
if ( mfile.size() )
|
||||||
|
{
|
||||||
|
std::cout << "Module found: " << mfile.c_str() << std::endl;
|
||||||
|
fname = mfile.c_str();
|
||||||
|
}
|
||||||
|
}
|
||||||
bool readit = m_Makefile->ReadListFile( m_Makefile->GetCurrentListFile(),
|
bool readit = m_Makefile->ReadListFile( m_Makefile->GetCurrentListFile(),
|
||||||
args[0].c_str());
|
fname.c_str() );
|
||||||
if(!optional && !readit)
|
if(!optional && !readit)
|
||||||
{
|
{
|
||||||
std::string m = "Could not find include file: ";
|
std::string m = "Could not find include file: ";
|
||||||
m += args[0];
|
m += fname;
|
||||||
this->SetError(m.c_str());
|
this->SetError(m.c_str());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -75,10 +75,13 @@ public:
|
|||||||
{
|
{
|
||||||
return
|
return
|
||||||
" INCLUDE(file1 [OPTIONAL])\n"
|
" INCLUDE(file1 [OPTIONAL])\n"
|
||||||
|
" INCLUDE(module [OPTIONAL])\n"
|
||||||
"Reads CMake listfile code from the given file. Commands in the file "
|
"Reads CMake listfile code from the given file. Commands in the file "
|
||||||
"are processed immediately as if they were written in place of the "
|
"are processed immediately as if they were written in place of the "
|
||||||
"INCLUDE command. If OPTIONAL is present, then no error "
|
"INCLUDE command. If OPTIONAL is present, then no error "
|
||||||
"is raised if the file does not exist.";
|
"is raised if the file does not exist.\n"
|
||||||
|
"If module is specified instead of file, the file with name "
|
||||||
|
"module.cmake is searched in the CMAKE_MODULE_PATH.";
|
||||||
}
|
}
|
||||||
|
|
||||||
cmTypeMacro(cmIncludeCommand, cmCommand);
|
cmTypeMacro(cmIncludeCommand, cmCommand);
|
||||||
|
@ -6,7 +6,7 @@ SET (TEST_COMMAND_TEST1 1)
|
|||||||
INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
|
INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
|
||||||
CHECK_TYPE_SIZE(char SIZEOF_CHAR)
|
CHECK_TYPE_SIZE(char SIZEOF_CHAR)
|
||||||
|
|
||||||
INCLUDE (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
|
INCLUDE (CheckFunctionExists)
|
||||||
CHECK_FUNCTION_EXISTS(printf HAVE_PRINTF)
|
CHECK_FUNCTION_EXISTS(printf HAVE_PRINTF)
|
||||||
CHECK_FUNCTION_EXISTS(vsblabla HAVE_VSBLABLA)
|
CHECK_FUNCTION_EXISTS(vsblabla HAVE_VSBLABLA)
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ SET (TEST_COMMAND_TEST1 1)
|
|||||||
INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
|
INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
|
||||||
CHECK_TYPE_SIZE(char SIZEOF_CHAR)
|
CHECK_TYPE_SIZE(char SIZEOF_CHAR)
|
||||||
|
|
||||||
INCLUDE (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
|
INCLUDE (CheckFunctionExists)
|
||||||
CHECK_FUNCTION_EXISTS(printf HAVE_PRINTF)
|
CHECK_FUNCTION_EXISTS(printf HAVE_PRINTF)
|
||||||
CHECK_FUNCTION_EXISTS(vsblabla HAVE_VSBLABLA)
|
CHECK_FUNCTION_EXISTS(vsblabla HAVE_VSBLABLA)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user