aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-03-07 12:31:06 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-03-07 12:31:06 +0200
commitb211edb78d90939eefd6e784c940c9a6ad9ccc2f (patch)
tree8c9a796e99f6e767d942c89e1c3c47b640b43053
parenta57637c393a1296b48fdb356b53e994e540399f5 (diff)
Recognize msvc target triplet
-rw-r--r--butl/triplet25
-rw-r--r--butl/triplet.cxx15
-rw-r--r--tests/triplet/driver.cxx4
3 files changed, 25 insertions, 19 deletions
diff --git a/butl/triplet b/butl/triplet
index 14b14c2..f61493d 100644
--- a/butl/triplet
+++ b/butl/triplet
@@ -61,18 +61,19 @@ namespace butl
//
// Some examples of canonicalization and splitting:
//
- // x86_64-apple-darwin14.5.0 x86_64 apple darwin 14.5.0
- // x86_64-unknown-freebsd10.2 x86_64 freebsd 10.2
- // i686-elf i686 elf
- // arm-eabi arm eabi
- // arm-none-eabi arm eabi
- // arm-none-linux-gnueabi arm linux-gnueabi
- // arm-softfloat-linux-gnu arm softfloat linux-gnu
- // i686-pc-mingw32 i686 mingw32
- // i686-w64-mingw32 i686 w64 mingw32
- // i686-lfs-linux-gnu i686 lfs linux-gnu
- // x86_64-unknown-linux-gnu x86_64 linux-gnu
- // x86_64-linux-gnux32 x86_64 linux-gnux32
+ // x86_64-apple-darwin14.5.0 x86_64 apple darwin 14.5.0
+ // x86_64-unknown-freebsd10.2 x86_64 freebsd 10.2
+ // i686-elf i686 elf
+ // arm-eabi arm eabi
+ // arm-none-eabi arm eabi
+ // arm-none-linux-gnueabi arm linux-gnueabi
+ // arm-softfloat-linux-gnu arm softfloat linux-gnu
+ // i686-pc-mingw32 i686 mingw32
+ // i686-w64-mingw32 i686 w64 mingw32
+ // i686-lfs-linux-gnu i686 lfs linux-gnu
+ // x86_64-unknown-linux-gnu x86_64 linux-gnu
+ // x86_64-linux-gnux32 x86_64 linux-gnux32
+ // x86_64-microsoft-win32-msvc14.0 x86_64 microsoft win32-msvc 14.0
//
// References:
//
diff --git a/butl/triplet.cxx b/butl/triplet.cxx
index 3208375..8369539 100644
--- a/butl/triplet.cxx
+++ b/butl/triplet.cxx
@@ -106,13 +106,14 @@ namespace butl
// Finally, extract VERSION for some recognized systems.
//
string::size_type v (0);
- if (system.compare (0, (v = 6), "darwin") == 0 ||
- system.compare (0, (v = 7), "freebsd") == 0 ||
- system.compare (0, (v = 7), "openbsd") == 0 ||
- system.compare (0, (v = 7), "netbsd") == 0 ||
- system.compare (0, (v = 7), "solaris") == 0 ||
- system.compare (0, (v = 7), "aix") == 0 ||
- system.compare (0, (v = 7), "hpux") == 0)
+ if (system.compare (0, (v = 6), "darwin") == 0 ||
+ system.compare (0, (v = 7), "freebsd") == 0 ||
+ system.compare (0, (v = 7), "openbsd") == 0 ||
+ system.compare (0, (v = 6), "netbsd") == 0 ||
+ system.compare (0, (v = 7), "solaris") == 0 ||
+ system.compare (0, (v = 3), "aix") == 0 ||
+ system.compare (0, (v = 4), "hpux") == 0 ||
+ system.compare (0, (v = 10), "win32-msvc") == 0)
{
version.assign (system, v, string::npos);
system.resize (system.size () - version.size ());
diff --git a/tests/triplet/driver.cxx b/tests/triplet/driver.cxx
index 9d51fed..fdd5939 100644
--- a/tests/triplet/driver.cxx
+++ b/tests/triplet/driver.cxx
@@ -102,6 +102,10 @@ main ()
assert (test ("sparc-sun-solaris2.9",
"sparc-sun-solaris2.9",
"sparc", "sun", "solaris", "2.9"));
+
+ assert (test ("x86_64-microsoft-win32-msvc14.0",
+ "x86_64-microsoft-win32-msvc14.0",
+ "x86_64", "microsoft", "win32-msvc", "14.0"));
}
static bool