Browse Source

ENH: Update documentation of computed directory properites.

  - Fix documentation of get_directory_property command.
  - Convert its list of computed directory properties to be
    defined/documented directory properties.
Brad King 17 years ago
parent
commit
d8e05b43a1
2 changed files with 74 additions and 13 deletions
  1. 15 12
      Source/cmGetDirectoryPropertyCommand.h
  2. 59 1
      Source/cmMakefile.cxx

+ 15 - 12
Source/cmGetDirectoryPropertyCommand.h

@@ -49,7 +49,7 @@ public:
    */
   virtual const char* GetTerseDocumentation() 
     {
-    return "Get a property of the directory.";
+    return "Get a property of DIRECTORY scope.";
     }
   
   /**
@@ -58,17 +58,20 @@ public:
   virtual const char* GetFullDocumentation()
     {
       return
-        "  get_directory_property(VAR [DIRECTORY dir] property)\n"
-        "Get a property from the Directory.  The value of the property is " 
-        "stored in the variable VAR. If the property is not found, "
-        "CMake will report an error. The properties include: VARIABLES, "
-        "CACHE_VARIABLES, COMMANDS, MACROS, INCLUDE_DIRECTORIES, "
-        "LINK_DIRECTORIES, DEFINITIONS, INCLUDE_REGULAR_EXPRESSION, "
-        "LISTFILE_STACK, PARENT_DIRECTORY, and "
-        "DEFINITION varname.  If the DIRECTORY argument is provided then "
-        "the property of the provided directory will be retrieved "
-        "instead of the current directory. You can only get properties "
-        "of a directory during or after it has been traversed by cmake.";
+        "  get_directory_property(<variable> [DIRECTORY <dir>] <prop-name>)\n"
+        "Store a property of directory scope in the named variable.  "
+        "If the property is not defined the empty-string is returned.  "
+        "The DIRECTORY argument specifies another directory from which "
+        "to retrieve the property value.  "
+        "The specified directory must have already been traversed by "
+        "CMake."
+        "\n"
+        "  get_directory_property(<variable> [DIRECTORY <dir>]\n"
+        "                         DEFINITION <var-name>)\n"
+        "Get a variable definition from a directory.  "
+        "This form is useful to get a variable definition from another "
+        "directory."
+        ;
     }
   
   cmTypeMacro(cmGetDirectoryPropertyCommand, cmCommand);

+ 59 - 1
Source/cmMakefile.cxx

@@ -3191,7 +3191,7 @@ void cmMakefile::DefineProperties(cmake *cm)
      "in your CMake scripts. It returns a list of what list files "
      "are currently being processed, in order. So if one listfile "
      "does an INCLUDE command then that is effectively pushing "
-     "the included listfile onto the stack.");
+     "the included listfile onto the stack.", false);
 
   cm->DefineProperty
     ("TEST_INCLUDE_FILE", cmProperty::DIRECTORY,
@@ -3260,6 +3260,64 @@ void cmMakefile::DefineProperties(cmake *cm)
      "for example typing make will cause the targets to be built. "
      "The same concept applies to the default build of other generators.",
      false);
+
+  cm->DefineProperty
+    ("PARENT_DIRECTORY", cmProperty::DIRECTORY,
+     "Source directory that added current subdirectory.",
+     "This read-only property specifies the source directory that "
+     "added the current source directory as a subdirectory of the build.  "
+     "In the top-level directory the value is the empty-string.", false);
+
+  cm->DefineProperty
+    ("INCLUDE_REGULAR_EXPRESSION", cmProperty::DIRECTORY,
+     "Include file scanning regular expression.",
+     "This read-only property specifies the regular expression used "
+     "during dependency scanning to match include files that should "
+     "be followed.  See the include_regular_expression command.", false);
+
+  cm->DefineProperty
+    ("VARIABLES", cmProperty::DIRECTORY,
+     "List of variables defined in the current directory.",
+     "This read-only property specifies the list of CMake variables "
+     "currently defined.  "
+     "It is intended for debugging purposes.", false);
+
+  cm->DefineProperty
+    ("CACHE_VARIABLES", cmProperty::DIRECTORY,
+     "List of cache variables available in the current directory.",
+     "This read-only property specifies the list of CMake cache "
+     "variables currently defined.  "
+     "It is intended for debugging purposes.", false);
+
+  cm->DefineProperty
+    ("MACROS", cmProperty::DIRECTORY,
+     "List of macro commands available in the current directory.",
+     "This read-only property specifies the list of CMake macros "
+     "currently defined.  "
+     "It is intended for debugging purposes.  "
+     "See the macro command.", false);
+
+  cm->DefineProperty
+    ("DEFINITIONS", cmProperty::DIRECTORY,
+     "For CMake 2.4 compatibility only.  Use COMPILE_DEFINITIONS instead.",
+     "This read-only property specifies the list of flags given so far "
+     "to the add_definitions command.  "
+     "It is intended for debugging purposes.  "
+     "Use the COMPILE_DEFINITIONS instead.", false);
+
+  cm->DefineProperty
+    ("INCLUDE_DIRECTORIES", cmProperty::DIRECTORY,
+     "List of preprocessor include file search directories.",
+     "This read-only property specifies the list of directories given "
+     "so far to the include_directories command.  "
+     "It is intended for debugging purposes.", false);
+
+  cm->DefineProperty
+    ("LINK_DIRECTORIES", cmProperty::DIRECTORY,
+     "List of linker search directories.",
+     "This read-only property specifies the list of directories given "
+     "so far to the link_directories command.  "
+     "It is intended for debugging purposes.", false);
 }
 
 //----------------------------------------------------------------------------