diff options
author | Brad King <brad.king@kitware.com> | 2003-02-07 19:04:16 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2003-02-07 19:04:16 (GMT) |
commit | cde384411d1907d93369c144ec7b2f28da2628d5 (patch) | |
tree | 2b5aeb18901a5c20d408b3eff32e27e82c252be8 /Source/cmMakefile.cxx | |
parent | f2b47501694f6951c97335676b2c577cbb4fd76f (diff) | |
download | CMake-cde384411d1907d93369c144ec7b2f28da2628d5.zip CMake-cde384411d1907d93369c144ec7b2f28da2628d5.tar.gz CMake-cde384411d1907d93369c144ec7b2f28da2628d5.tar.bz2 |
Several fixes/improvements:
- Fixed CollapseFullPath to work on relative paths with base paths
not in the current working directory.
- INCLUDE command now supports relative paths (using above fix).
- Added ABSOLUTE option to GET_FILENAME_COMPONENT command to
unwind symlinks and relative paths.
- Fixed libName_EXPORTS macro definition to be valid C identifier.
- Added DEFINE_SYMBOL target propterty for customizing the export symbol.
- Implemented LINK_FLAGS target propterty for libraries in VC6 and VC7.
Several of these fixes were contributed by Gareth Jones.
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r-- | Source/cmMakefile.cxx | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index a567f83..7143f59 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -231,12 +231,34 @@ bool cmMakefile::ExecuteCommand(const cmListFileFunction& lff) // #include has been called). We DO NOT look at the parents of this // list-file, and for all other purposes, the name of this list-file // is "filename" and not "external". -bool cmMakefile::ReadListFile(const char* filename, const char* external) +bool cmMakefile::ReadListFile(const char* filename_in, const char* external_in) { // used to watch for blockers going out of scope // e.g. mismatched IF statement std::set<cmFunctionBlocker *> originalBlockers; + + const char* external = 0; + std::string external_abs; + + const char* filename = filename_in; + std::string filename_abs; + + if (external_in) + { + external_abs = + cmSystemTools::CollapseFullPath(external_in, + m_cmCurrentDirectory.c_str()); + external = external_abs.c_str(); + if (filename_in) + { + filename_abs = + cmSystemTools::CollapseFullPath(filename_in, + m_cmCurrentDirectory.c_str()); + filename = filename_abs.c_str(); + } + } + // keep track of the current file being read if (filename) { |