diff options
author | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
---|---|---|
committer | Angelos Mouzakitis <a.mouzakitis@virtualopensystems.com> | 2023-10-10 14:33:42 +0000 |
commit | af1a266670d040d2f4083ff309d732d648afba2a (patch) | |
tree | 2fc46203448ddcc6f81546d379abfaeb323575e9 /meson/test cases/common/13 pch/withIncludeFile | |
parent | e02cda008591317b1625707ff8e115a4841aa889 (diff) |
Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec
Diffstat (limited to 'meson/test cases/common/13 pch/withIncludeFile')
3 files changed, 35 insertions, 0 deletions
diff --git a/meson/test cases/common/13 pch/withIncludeFile/meson.build b/meson/test cases/common/13 pch/withIncludeFile/meson.build new file mode 100644 index 000000000..4fd232251 --- /dev/null +++ b/meson/test cases/common/13 pch/withIncludeFile/meson.build @@ -0,0 +1,18 @@ +cc = meson.get_compiler('c') +cc_id = cc.get_id() + +if cc_id == 'lcc' + error('MESON_SKIP_TEST: Elbrus compiler does not support PCH.') +endif + +if cc.get_argument_syntax() == 'gcc' + c_args = ['-include', 'locale.h'] +elif cc.get_argument_syntax() == 'msvc' + c_args = ['/FI' + 'locale.h'] +else + subdir_done() +endif + +exe = executable('prog', 'prog.c', +c_args: c_args, +c_pch : 'pch/prog.h') diff --git a/meson/test cases/common/13 pch/withIncludeFile/pch/prog.h b/meson/test cases/common/13 pch/withIncludeFile/pch/prog.h new file mode 100644 index 000000000..c89890a77 --- /dev/null +++ b/meson/test cases/common/13 pch/withIncludeFile/pch/prog.h @@ -0,0 +1,6 @@ +#ifndef PROG_H +// Header guards for PCH confuse msvc in some situations. +// Using them here makes sure we handle this correctly. +#define PROG_H +#include<stdio.h> +#endif diff --git a/meson/test cases/common/13 pch/withIncludeFile/prog.c b/meson/test cases/common/13 pch/withIncludeFile/prog.c new file mode 100644 index 000000000..7a9a93c6a --- /dev/null +++ b/meson/test cases/common/13 pch/withIncludeFile/prog.c @@ -0,0 +1,11 @@ +// No includes here, they need to come from the PCH or explicit inclusion + +void func(void) { + fprintf(stdout, "This is a function that fails if stdio is not #included.\n"); + setlocale(LC_ALL, ""); /* This will fail if locale.h is not included */ +} + +int main(void) { + return 0; +} + |