diff options
author | Brad King <brad.king@kitware.com> | 2009-12-17 15:14:47 -0500 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-12-17 15:14:47 -0500 |
commit | c9b726c314c9c399975fbea3c673852310ee45e6 (patch) | |
tree | 7b2b02c917d8bcb846f179b1a05043c3c017a1e5 /Modules/CheckTypeSize.c.in | |
parent | 6c9f678098ff40a994529d81ab81936bff891ee1 (diff) | |
download | cmake-c9b726c314c9c399975fbea3c673852310ee45e6.tar.gz |
New CheckTypeSize for OS X Universal Binaries
We re-implement this module to support architecture-dependent type
sizes. In the mixed-size case we generate C preprocessor code to select
the detected type size for each architecture.
Diffstat (limited to 'Modules/CheckTypeSize.c.in')
-rw-r--r-- | Modules/CheckTypeSize.c.in | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Modules/CheckTypeSize.c.in b/Modules/CheckTypeSize.c.in new file mode 100644 index 0000000000..b6c3688011 --- /dev/null +++ b/Modules/CheckTypeSize.c.in @@ -0,0 +1,37 @@ +@headers@ + +#undef KEY +#if defined(__i386) +# define KEY '_','_','i','3','8','6' +#elif defined(__x86_64) +# define KEY '_','_','x','8','6','_','6','4' +#elif defined(__ppc__) +# define KEY '_','_','p','p','c','_','_' +#elif defined(__ppc64__) +# define KEY '_','_','p','p','c','6','4','_','_' +#endif + +#define SIZE (sizeof(@type@)) +char info_size[] = {'I', 'N', 'F', 'O', ':', 's','i','z','e','[', + ('0' + ((SIZE / 10000)%10)), + ('0' + ((SIZE / 1000)%10)), + ('0' + ((SIZE / 100)%10)), + ('0' + ((SIZE / 10)%10)), + ('0' + (SIZE % 10)), + ']', +#ifdef KEY + ' ','k','e','y','[', KEY, ']', +#endif + '\0'}; + +#ifdef __CLASSIC_C__ +int main(argc, argv) int argc; char *argv[]; +#else +int main(int argc, char *argv[]) +#endif +{ + int require = 0; + require += info_size[argc]; + (void)argv; + return require; +} |