From 451522381d510c02185ac8bfb75c3aa93b863fb4 Mon Sep 17 00:00:00 2001 From: Andy Cedilnik Date: Sat, 27 Mar 2004 19:52:34 -0500 Subject: ENH: Add support for importing modules without specifying path --- Source/cmIncludeCommand.cxx | 19 +++++++++++++++++-- Source/cmIncludeCommand.h | 5 ++++- Tests/LoadCommand/CMakeLists.txt | 2 +- Tests/LoadCommandOneConfig/CMakeLists.txt | 2 +- 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Source/cmIncludeCommand.cxx b/Source/cmIncludeCommand.cxx index 47da8c7..d7f1389 100644 --- a/Source/cmIncludeCommand.cxx +++ b/Source/cmIncludeCommand.cxx @@ -27,17 +27,32 @@ bool cmIncludeCommand::InitialPass(std::vector const& args) return false; } bool optional = false; + + std::string fname = args[0].c_str(); + if(args.size() == 2) { 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(), - args[0].c_str()); + fname.c_str() ); if(!optional && !readit) { std::string m = "Could not find include file: "; - m += args[0]; + m += fname; this->SetError(m.c_str()); return false; } diff --git a/Source/cmIncludeCommand.h b/Source/cmIncludeCommand.h index 4f95f9c..a345959 100644 --- a/Source/cmIncludeCommand.h +++ b/Source/cmIncludeCommand.h @@ -75,10 +75,13 @@ public: { return " INCLUDE(file1 [OPTIONAL])\n" + " INCLUDE(module [OPTIONAL])\n" "Reads CMake listfile code from the given file. Commands in the file " "are processed immediately as if they were written in place of the " "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); diff --git a/Tests/LoadCommand/CMakeLists.txt b/Tests/LoadCommand/CMakeLists.txt index 1913864..1d261be 100644 --- a/Tests/LoadCommand/CMakeLists.txt +++ b/Tests/LoadCommand/CMakeLists.txt @@ -6,7 +6,7 @@ SET (TEST_COMMAND_TEST1 1) INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake) CHECK_TYPE_SIZE(char SIZEOF_CHAR) -INCLUDE (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake) +INCLUDE (CheckFunctionExists) CHECK_FUNCTION_EXISTS(printf HAVE_PRINTF) CHECK_FUNCTION_EXISTS(vsblabla HAVE_VSBLABLA) diff --git a/Tests/LoadCommandOneConfig/CMakeLists.txt b/Tests/LoadCommandOneConfig/CMakeLists.txt index 1913864..1d261be 100644 --- a/Tests/LoadCommandOneConfig/CMakeLists.txt +++ b/Tests/LoadCommandOneConfig/CMakeLists.txt @@ -6,7 +6,7 @@ SET (TEST_COMMAND_TEST1 1) INCLUDE (${CMAKE_ROOT}/Modules/CheckTypeSize.cmake) CHECK_TYPE_SIZE(char SIZEOF_CHAR) -INCLUDE (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake) +INCLUDE (CheckFunctionExists) CHECK_FUNCTION_EXISTS(printf HAVE_PRINTF) CHECK_FUNCTION_EXISTS(vsblabla HAVE_VSBLABLA) -- cgit v0.12