diff options
author | Brad King <brad.king@kitware.com> | 2017-12-05 17:49:52 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-12-05 18:06:37 (GMT) |
commit | f74e7761a5281b54a517f1b975a33528eeaf056d (patch) | |
tree | 2084f2267c0078f6f148a9220f9605ef29277781 /test/cc-msvc.c | |
parent | 3a81f3cc3060be86064ba2e666d30b0c358cc847 (diff) | |
download | CastXML-f74e7761a5281b54a517f1b975a33528eeaf056d.zip CastXML-f74e7761a5281b54a517f1b975a33528eeaf056d.tar.gz CastXML-f74e7761a5281b54a517f1b975a33528eeaf056d.tar.bz2 |
RunClang: Detect -std=c++17 from --castxml-cc-msvc
Updates to VS 2015 and VS 2017 added support for `-std:` flags
specifying the language standard level for MSVC. The level is reported
in the `_MSVC_LANG` preprocessor definition instead of `__cplusplus`.
Detect MSVC standard C++ level from `_MSVC_LANG`.
Diffstat (limited to 'test/cc-msvc.c')
-rw-r--r-- | test/cc-msvc.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/test/cc-msvc.c b/test/cc-msvc.c index 10afc63..45feff8 100644 --- a/test/cc-msvc.c +++ b/test/cc-msvc.c @@ -5,12 +5,15 @@ int main(int argc, const char* argv[]) { int cpp = 0; const char* msc_ver = "1600"; + const char* msvc_lang = 0; int i; for (i = 1; i < argc; ++i) { if (strncmp(argv[i], "--cc-define=", 12) == 0) { fprintf(stdout, "\n#define %s 1", argv[i]+12); } else if (strncmp(argv[i], "-msc=", 5) == 0) { msc_ver = argv[i]+5; + } else if (strncmp(argv[i], "-msvc_lang=", 8) == 0) { + msvc_lang = argv[i]+11; } else if (strstr(argv[i], ".cpp")) { cpp = 1; } @@ -26,6 +29,11 @@ int main(int argc, const char* argv[]) fprintf(stdout, "#define _MSC_VER %s\n", msc_ver ); + if(msvc_lang) { + fprintf(stdout, + "#define _MSVC_LANG %s\n", msvc_lang + ); + } fprintf(stdout, "#define __has_include(x) x\n" "#define __has_include_next(x) x\n" |