aboutsummaryrefslogtreecommitdiff
path: root/build2/target-key.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2019-03-07 09:06:37 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2019-03-07 09:06:37 +0200
commit1845141809aa91b03718066a6f46863885a6a887 (patch)
treea3f542ec7c1781e65aa16a9b0d5c31eae4c4d757 /build2/target-key.hxx
parente0002617846755fb5f199f40a677e16d6f69e5ec (diff)
Add support for alternative build file/directory naming scheme
Now the build/*.build, buildfile, and .buildignore filesystem entries in a project can alternatively (but consistently) be called build2/*.build2, build2file, and .build2ignore. See a note at the beginning of the Project Structure section in the manual for details (motivation, restrictions, etc).
Diffstat (limited to 'build2/target-key.hxx')
-rw-r--r--build2/target-key.hxx12
1 files changed, 10 insertions, 2 deletions
diff --git a/build2/target-key.hxx b/build2/target-key.hxx
index 4877bbd..ed9a0ed 100644
--- a/build2/target-key.hxx
+++ b/build2/target-key.hxx
@@ -50,8 +50,16 @@ namespace build2
return !x.ext || !y.ext || *x.ext == *y.ext;
else
{
- const char* xe (x.ext ? x.ext->c_str () : tt.fixed_extension (x));
- const char* ye (y.ext ? y.ext->c_str () : tt.fixed_extension (y));
+ // Note that for performance reasons here we use the specified extension
+ // without calling fixed_extension().
+ //
+ const char* xe (x.ext
+ ? x.ext->c_str ()
+ : tt.fixed_extension (x, nullptr /* root scope */));
+
+ const char* ye (y.ext
+ ? y.ext->c_str ()
+ : tt.fixed_extension (y, nullptr /* root scope */));
return strcmp (xe, ye) == 0;
}