Przeglądaj źródła

Help: Make VALIDATOR wording clearer and more precise

Craig Scott 3 lat temu
rodzic
commit
7e1a4567fb
1 zmienionych plików z 14 dodań i 9 usunięć
  1. 14 9
      Help/command/FIND_XXX.txt

+ 14 - 9
Help/command/FIND_XXX.txt

@@ -70,23 +70,28 @@ Options include:
 ``VALIDATOR``
   .. versionadded:: 3.25
 
-  Specify a :command:`function` (a :command:`macro` is not an acceptable
-  choice) which will be called for each found item. The search ends when
-  the validation function returns a successful status.
-
-  The validation function expects two arguments: output variable name and item
-  value. By default, the output variable name already holds a ``TRUE`` value.
+  Specify a :command:`function` to be called for each candidate item found
+  (a :command:`macro` cannot be provided, that will result in an error).
+  Two arguments will be passed to the validator function: the name of a
+  result variable, and the absolute path to the candidate item.  The item
+  will be accepted and the search will end unless the function sets the
+  value in the result variable to false in the calling scope.  The result
+  variable will hold a true value when the validator function is entered.
 
   .. parsed-literal::
 
-     function (MY_CHECK output_status item)
-       if (NOT item MATCHES ...)
-         set(${output_status} FALSE PARENT_SCOPE)
+     function(my_check validator_result_var item)
+       if(NOT item MATCHES ...)
+         set(${validator_result_var} FALSE PARENT_SCOPE)
        endif()
      endfunction()
 
      |FIND_XXX| (result NAMES ... VALIDATOR my_check)
 
+  Note that if a cached result is used, the search is skipped and any
+  ``VALIDATOR`` is ignored.  The cached result is not required to pass the
+  validation function.
+
 ``DOC``
   Specify the documentation string for the ``<VAR>`` cache entry.