diff options
Diffstat (limited to 'build2/target-type')
-rw-r--r-- | build2/target-type | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/build2/target-type b/build2/target-type index a831670..2659e3d 100644 --- a/build2/target-type +++ b/build2/target-type @@ -28,15 +28,20 @@ namespace build2 // If the extension derivation function is NULL, then it means this target // type does not use extensions. Note that this is relied upon when deciding // whether to print the extension; if the target does use extensions but the - // defaults should not or cannot (logically) be obtained, then use - // target_extension_{fail,assert}(), respectively. + // defaults could not (and its ok), could not (and its not ok), or should not + // (logically) be obtained, then use target_extension_{null,fail,assert}(), + // respectively. If the extension function returns NULL, then that means the + // default extension for this target could not be derived. + // + // The extension function is used in two places: search_existing_file() and + // in target::derive_path(); see their implementations for details. // struct target_type { const char* name; const target_type* base; target* (*factory) (const target_type&, dir_path, string, const string*); - const string& (*extension) (const target_key&, scope&); + const string* (*extension) (const target_key&, scope&); void (*print) (ostream&, const target_key&); target* (*search) (const prerequisite_key&); bool see_through; // A group with the default "see through" semantics. |