Browse Source

ENH: Added cmSourceFile::GetLocation method to get a read-only reference to the Location ivar. This partially addresses issue #6137.

Brad King 18 years ago
parent
commit
99d57b3c8c
2 changed files with 19 additions and 1 deletions
  1. 6 0
      Source/cmSourceFile.cxx
  2. 13 1
      Source/cmSourceFile.h

+ 6 - 0
Source/cmSourceFile.cxx

@@ -75,6 +75,12 @@ const char* cmSourceFile::GetLanguage() const
   return 0;
 }
 
+//----------------------------------------------------------------------------
+cmSourceFileLocation const& cmSourceFile::GetLocation() const
+{
+    return this->Location;
+}
+
 //----------------------------------------------------------------------------
 std::string const& cmSourceFile::GetFullPath()
 {

+ 13 - 1
Source/cmSourceFile.h

@@ -53,11 +53,23 @@ public:
   bool GetPropertyAsBool(const char *prop) const;
 
   /**
-   * The full path to the file.
+   * The full path to the file.  The non-const version of this method
+   * may attempt to locate the file on disk and finalize its location.
+   * The const version of this method may return an empty string if
+   * the non-const version has not yet been called (yes this is a
+   * horrible interface, but is necessary for backwards
+   * compatibility).
    */
   std::string const& GetFullPath();
   std::string const& GetFullPath() const;
 
+  /**
+   * Get the information currently known about the source file
+   * location without attempting to locate the file as GetFullPath
+   * would.  See cmSourceFileLocation documentation.
+   */
+  cmSourceFileLocation const& GetLocation() const;
+
   /**
    * Get the file extension of this source file.
    */