diff options
Diffstat (limited to 'test cases/unit/60 identity cross')
-rwxr-xr-x | test cases/unit/60 identity cross/build_wrapper.py | 11 | ||||
-rwxr-xr-x | test cases/unit/60 identity cross/host_wrapper.py | 11 | ||||
-rw-r--r-- | test cases/unit/60 identity cross/meson.build | 15 | ||||
-rw-r--r-- | test cases/unit/60 identity cross/stuff.h | 27 |
4 files changed, 64 insertions, 0 deletions
diff --git a/test cases/unit/60 identity cross/build_wrapper.py b/test cases/unit/60 identity cross/build_wrapper.py new file mode 100755 index 0000000..15d5c07 --- /dev/null +++ b/test cases/unit/60 identity cross/build_wrapper.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python3 + +import subprocess, sys, platform + +# Meson does not yet support Studio cc on Solaris, only gcc or clang +if platform.system() == 'SunOS': + cc = 'gcc' +else: + cc = 'cc' + +subprocess.call([cc, "-DEXTERNAL_BUILD"] + sys.argv[1:]) diff --git a/test cases/unit/60 identity cross/host_wrapper.py b/test cases/unit/60 identity cross/host_wrapper.py new file mode 100755 index 0000000..a3a694a --- /dev/null +++ b/test cases/unit/60 identity cross/host_wrapper.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python3 + +import subprocess, sys, platform + +# Meson does not yet support Studio cc on Solaris, only gcc or clang +if platform.system() == 'SunOS': + cc = 'gcc' +else: + cc = 'cc' + +subprocess.call([cc, "-DEXTERNAL_HOST"] + sys.argv[1:]) diff --git a/test cases/unit/60 identity cross/meson.build b/test cases/unit/60 identity cross/meson.build new file mode 100644 index 0000000..950137a --- /dev/null +++ b/test cases/unit/60 identity cross/meson.build @@ -0,0 +1,15 @@ +project('identity cross test', 'c') + +assert(meson.get_compiler('c', native: true).get_define( + 'GOT', + args : [ '-DARG_BUILD' ], + prefix : '#include "stuff.h"', + include_directories: include_directories('.'), +) == 'BUILD', 'did not get BUILD from native: true compiler') + +assert(meson.get_compiler('c', native: false).get_define( + 'GOT', + args : [ '-DARG_HOST' ], + prefix : '#include "stuff.h"', + include_directories: include_directories('.'), +) == 'HOST', 'did not get HOST from native: false compiler') diff --git a/test cases/unit/60 identity cross/stuff.h b/test cases/unit/60 identity cross/stuff.h new file mode 100644 index 0000000..62f1cc9 --- /dev/null +++ b/test cases/unit/60 identity cross/stuff.h @@ -0,0 +1,27 @@ +#ifdef EXTERNAL_BUILD + #ifndef ARG_BUILD + #error "External is build but arg_build is not set." + #elif defined(ARG_HOST) + #error "External is build but arg_host is set." + #else + #define GOT BUILD + #endif +#endif + +#ifdef EXTERNAL_HOST + #ifndef ARG_HOST + #error "External is host but arg_host is not set." + #elif defined(ARG_BUILD) + #error "External is host but arg_build is set." + #else + #define GOT HOST + #endif +#endif + +#if defined(EXTERNAL_BUILD) && defined(EXTERNAL_HOST) + #error "Both external build and external host set." +#endif + +#if !defined(EXTERNAL_BUILD) && !defined(EXTERNAL_HOST) + #error "Neither external build nor external host is set." +#endif |