diff options
author | Brad King <brad.king@kitware.com> | 2015-09-17 20:05:04 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-09-18 20:12:28 (GMT) |
commit | 48a1d8e17359a65977cd8b3a6d535ad26ceaf9ea (patch) | |
tree | 045373d10f52d502784bccbdf673c77129b16399 /test | |
parent | 926ea9574ef8adc7d81db6b57b0ad83707b90fcd (diff) | |
download | CastXML-48a1d8e17359a65977cd8b3a6d535ad26ceaf9ea.zip CastXML-48a1d8e17359a65977cd8b3a6d535ad26ceaf9ea.tar.gz CastXML-48a1d8e17359a65977cd8b3a6d535ad26ceaf9ea.tar.bz2 |
castxml: Allow --castxml-cc-<id> to detect C language settings
If the "<id>" is "gnu-c" or "msvc-c" then run the given compiler command
line on a C source file instead of C++. This allows C language settings
of the given compiler to be detected.
Diffstat (limited to 'test')
-rw-r--r-- | test/CMakeLists.txt | 6 | ||||
-rw-r--r-- | test/cc-gnu.c | 9 | ||||
-rw-r--r-- | test/cc-msvc.c | 11 | ||||
-rw-r--r-- | test/expect/cmd.cc-gnu-c-bad-cmd.result.txt | 1 | ||||
-rw-r--r-- | test/expect/cmd.cc-gnu-c-bad-cmd.stderr.txt | 3 | ||||
-rw-r--r-- | test/expect/cmd.cc-gnu-c-src-c-E.stdout.txt | 2 | ||||
-rw-r--r-- | test/expect/cmd.cc-gnu-c-src-c-cmd.stderr.txt | 1 | ||||
-rw-r--r-- | test/expect/cmd.cc-msvc-c-bad-cmd.result.txt | 1 | ||||
-rw-r--r-- | test/expect/cmd.cc-msvc-c-bad-cmd.stderr.txt | 3 | ||||
-rw-r--r-- | test/expect/cmd.cc-msvc-c-src-c-E.stdout.txt | 2 | ||||
-rw-r--r-- | test/expect/cmd.cc-msvc-c-src-c-cmd.stderr.txt | 1 |
11 files changed, 38 insertions, 2 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 29fcecf..9744919 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -160,6 +160,9 @@ castxml_test_cmd(cc-gnu-tgt-i386 --castxml-cc-gnu "(" $<TARGET_FILE:cc-gnu> --cc castxml_test_cmd(cc-gnu-tgt-mingw --castxml-cc-gnu "(" $<TARGET_FILE:cc-gnu> --cc-define=_WIN32 --cc-define=__MINGW32__ ")" ${empty_cxx} "-###") castxml_test_cmd(cc-gnu-tgt-win --castxml-cc-gnu "(" $<TARGET_FILE:cc-gnu> --cc-define=_WIN32 ")" ${empty_cxx} "-###") castxml_test_cmd(cc-gnu-tgt-x86_64 --castxml-cc-gnu "(" $<TARGET_FILE:cc-gnu> --cc-define=__x86_64__ ")" ${empty_cxx} "-###") +castxml_test_cmd(cc-gnu-c-bad-cmd --castxml-cc-gnu-c "(" cc-gnu-c-bad-cmd ")" ${empty_c}) +castxml_test_cmd(cc-gnu-c-src-c-E --castxml-cc-gnu-c $<TARGET_FILE:cc-gnu> ${empty_c} -E -dM) +castxml_test_cmd(cc-gnu-c-src-c-cmd --castxml-cc-gnu-c $<TARGET_FILE:cc-gnu> ${empty_c} "-###") # Test --castxml-cc-msvc detection. add_executable(cc-msvc cc-msvc.c) @@ -174,6 +177,9 @@ castxml_test_cmd(cc-msvc-tgt-explicit --castxml-cc-msvc "(" $<TARGET_FILE:cc-msv castxml_test_cmd(cc-msvc-tgt-i386 --castxml-cc-msvc "(" $<TARGET_FILE:cc-msvc> --cc-define=_M_IX86 ")" ${empty_cxx} "-###") castxml_test_cmd(cc-msvc-tgt-win --castxml-cc-msvc "(" $<TARGET_FILE:cc-msvc> --cc-define=_WIN32 ")" ${empty_cxx} "-###") castxml_test_cmd(cc-msvc-tgt-x86_64 --castxml-cc-msvc "(" $<TARGET_FILE:cc-msvc> --cc-define=_M_X64 ")" ${empty_cxx} "-###") +castxml_test_cmd(cc-msvc-c-bad-cmd --castxml-cc-msvc-c "(" cc-msvc-c-bad-cmd ")" ${empty_c}) +castxml_test_cmd(cc-msvc-c-src-c-E --castxml-cc-msvc-c $<TARGET_FILE:cc-msvc> ${empty_c} -E -dM) +castxml_test_cmd(cc-msvc-c-src-c-cmd --castxml-cc-msvc-c $<TARGET_FILE:cc-msvc> ${empty_c} "-###") unset(castxml_test_cmd_extra_arguments) castxml_test_gccxml(ArrayType) diff --git a/test/cc-gnu.c b/test/cc-gnu.c index bd49475..b3f7400 100644 --- a/test/cc-gnu.c +++ b/test/cc-gnu.c @@ -3,14 +3,21 @@ int main(int argc, const char* argv[]) { + int cpp = 0; int i; for (i = 1; i < argc; ++i) { if (strncmp(argv[i], "--cc-define=", 12) == 0) { fprintf(stdout, "#define %s 1\n", argv[i]+12); + } else if (strstr(argv[i], ".cpp")) { + cpp = 1; } } + if (cpp) { + fprintf(stdout, + "#define __cplusplus 199711L\n" + ); + } fprintf(stdout, - "#define __cplusplus 199711L\n" "#define __GNUC__ 1\n" "#define __has_include(x) x\n" "#define __has_include_next(x) x\n" diff --git a/test/cc-msvc.c b/test/cc-msvc.c index 3d2cd58..9838a5e 100644 --- a/test/cc-msvc.c +++ b/test/cc-msvc.c @@ -3,15 +3,24 @@ int main(int argc, const char* argv[]) { + int cpp = 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 (strstr(argv[i], ".cpp")) { + cpp = 1; } } fprintf(stdout, "\n" - "#define __cplusplus 199711L\n" + ); + if (cpp) { + fprintf(stdout, + "#define __cplusplus 199711L\n" + ); + } + fprintf(stdout, "#define _MSC_VER 1600\n" "#define __has_include(x) x\n" "#define __has_include_next(x) x\n" diff --git a/test/expect/cmd.cc-gnu-c-bad-cmd.result.txt b/test/expect/cmd.cc-gnu-c-bad-cmd.result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/test/expect/cmd.cc-gnu-c-bad-cmd.result.txt @@ -0,0 +1 @@ +1 diff --git a/test/expect/cmd.cc-gnu-c-bad-cmd.stderr.txt b/test/expect/cmd.cc-gnu-c-bad-cmd.stderr.txt new file mode 100644 index 0000000..117a4c5 --- /dev/null +++ b/test/expect/cmd.cc-gnu-c-bad-cmd.stderr.txt @@ -0,0 +1,3 @@ +^error: '--castxml-cc-gnu-c' compiler command failed: + + 'cc-gnu-c-bad-cmd' '-E' '-dM' '-v' '.*/share/castxml/empty.c' diff --git a/test/expect/cmd.cc-gnu-c-src-c-E.stdout.txt b/test/expect/cmd.cc-gnu-c-src-c-E.stdout.txt new file mode 100644 index 0000000..0a0cc7e --- /dev/null +++ b/test/expect/cmd.cc-gnu-c-src-c-E.stdout.txt @@ -0,0 +1,2 @@ +^#define __GNUC_MINOR__ 1 +#define __GNUC__ 1$ diff --git a/test/expect/cmd.cc-gnu-c-src-c-cmd.stderr.txt b/test/expect/cmd.cc-gnu-c-src-c-cmd.stderr.txt new file mode 100644 index 0000000..175c3bd --- /dev/null +++ b/test/expect/cmd.cc-gnu-c-src-c-cmd.stderr.txt @@ -0,0 +1 @@ +"clang" .* "-[^i][^"]*" "[^-"][^"]*" "-isystem" "/some/include" "-isystem" "[^"]*/include" "-iframework" "/some/Frameworks" "-iframework" "/some/CustomFW" "-[^i] diff --git a/test/expect/cmd.cc-msvc-c-bad-cmd.result.txt b/test/expect/cmd.cc-msvc-c-bad-cmd.result.txt new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/test/expect/cmd.cc-msvc-c-bad-cmd.result.txt @@ -0,0 +1 @@ +1 diff --git a/test/expect/cmd.cc-msvc-c-bad-cmd.stderr.txt b/test/expect/cmd.cc-msvc-c-bad-cmd.stderr.txt new file mode 100644 index 0000000..fca19b3 --- /dev/null +++ b/test/expect/cmd.cc-msvc-c-bad-cmd.stderr.txt @@ -0,0 +1,3 @@ +^error: '--castxml-cc-msvc-c' compiler command failed: + + 'cc-msvc-c-bad-cmd' '-c' '-FoNUL' '.*/share/castxml/detect_vs.c diff --git a/test/expect/cmd.cc-msvc-c-src-c-E.stdout.txt b/test/expect/cmd.cc-msvc-c-src-c-E.stdout.txt new file mode 100644 index 0000000..04ac327 --- /dev/null +++ b/test/expect/cmd.cc-msvc-c-src-c-E.stdout.txt @@ -0,0 +1,2 @@ +^#define _MSC_VER 1600 +#define _WIN32 1$ diff --git a/test/expect/cmd.cc-msvc-c-src-c-cmd.stderr.txt b/test/expect/cmd.cc-msvc-c-src-c-cmd.stderr.txt new file mode 100644 index 0000000..fb9ae02 --- /dev/null +++ b/test/expect/cmd.cc-msvc-c-src-c-cmd.stderr.txt @@ -0,0 +1 @@ +"clang" .* "-[^i][^"]*" "[^-"][^"]*" "-isystem" "/some/include" "-isystem" "/some/other/include" "-[^i] |