From 1d56df94097678fbdf05fa9ca04e0b90ff65cf2c Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Thu, 13 Oct 2022 14:20:06 -0400 Subject: Add unit test for cc.preprocess() --- test cases/common/255 preprocess/bar.c | 3 +++ test cases/common/255 preprocess/foo.c | 1 + test cases/common/255 preprocess/foo.h | 2 ++ test cases/common/255 preprocess/meson.build | 15 +++++++++++++++ test cases/common/255 preprocess/src/file.map.in | 3 +++ test cases/common/255 preprocess/src/meson.build | 4 ++++ 6 files changed, 28 insertions(+) create mode 100644 test cases/common/255 preprocess/bar.c create mode 100644 test cases/common/255 preprocess/foo.c create mode 100644 test cases/common/255 preprocess/foo.h create mode 100644 test cases/common/255 preprocess/meson.build create mode 100644 test cases/common/255 preprocess/src/file.map.in create mode 100644 test cases/common/255 preprocess/src/meson.build (limited to 'test cases') diff --git a/test cases/common/255 preprocess/bar.c b/test cases/common/255 preprocess/bar.c new file mode 100644 index 000000000..43737b940 --- /dev/null +++ b/test cases/common/255 preprocess/bar.c @@ -0,0 +1,3 @@ +int bar(void) { + return BAR; +} diff --git a/test cases/common/255 preprocess/foo.c b/test cases/common/255 preprocess/foo.c new file mode 100644 index 000000000..c9d16c5eb --- /dev/null +++ b/test cases/common/255 preprocess/foo.c @@ -0,0 +1 @@ +#include diff --git a/test cases/common/255 preprocess/foo.h b/test cases/common/255 preprocess/foo.h new file mode 100644 index 000000000..ba60bf396 --- /dev/null +++ b/test cases/common/255 preprocess/foo.h @@ -0,0 +1,2 @@ +int bar(void); +int main(void) { return FOO + bar(); } diff --git a/test cases/common/255 preprocess/meson.build b/test cases/common/255 preprocess/meson.build new file mode 100644 index 000000000..4824598e7 --- /dev/null +++ b/test cases/common/255 preprocess/meson.build @@ -0,0 +1,15 @@ +project('preprocess', 'c') + +cc = meson.get_compiler('c') + +add_project_arguments(['-DFOO=0', '-DBAR=0'], language: 'c') + +pp_files = cc.preprocess('foo.c', 'bar.c', output: '@PLAINNAME@') + +foreach f : pp_files + message(f.full_path()) +endforeach + +subdir('src') + +test('test-foo', executable('app', pp_files, link_depends: file_map)) diff --git a/test cases/common/255 preprocess/src/file.map.in b/test cases/common/255 preprocess/src/file.map.in new file mode 100644 index 000000000..152fb6561 --- /dev/null +++ b/test cases/common/255 preprocess/src/file.map.in @@ -0,0 +1,3 @@ +#if 1 +Hello World +#endif diff --git a/test cases/common/255 preprocess/src/meson.build b/test cases/common/255 preprocess/src/meson.build new file mode 100644 index 000000000..3169bb5ca --- /dev/null +++ b/test cases/common/255 preprocess/src/meson.build @@ -0,0 +1,4 @@ +file_map = cc.preprocess('file.map.in', + output: '@BASENAME@', + compile_args: ['-x', 'assembler-with-cpp'], +) -- cgit v1.2.3 From ebbaeec51b5c5c8177fe6583a2a5bd6b7f929684 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Sun, 23 Oct 2022 11:28:42 +0200 Subject: gnulike: Fix preprocessing files with any extension --- mesonbuild/compilers/mixins/gnu.py | 6 ++++++ test cases/common/255 preprocess/src/meson.build | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'test cases') diff --git a/mesonbuild/compilers/mixins/gnu.py b/mesonbuild/compilers/mixins/gnu.py index 11efcc9fe..eb1c534e6 100644 --- a/mesonbuild/compilers/mixins/gnu.py +++ b/mesonbuild/compilers/mixins/gnu.py @@ -318,6 +318,12 @@ class GnuLikeCompiler(Compiler, metaclass=abc.ABCMeta): def get_coverage_args(self) -> T.List[str]: return ['--coverage'] + def get_preprocess_to_file_args(self) -> T.List[str]: + # We want to allow preprocessing files with any extension, such as + # foo.c.in. In that case we need to tell GCC/CLANG to treat them as + # assembly file. + return self.get_preprocess_only_args() + ['-x', 'assembler-with-cpp'] + class GnuCompiler(GnuLikeCompiler): """ diff --git a/test cases/common/255 preprocess/src/meson.build b/test cases/common/255 preprocess/src/meson.build index 3169bb5ca..4cd955444 100644 --- a/test cases/common/255 preprocess/src/meson.build +++ b/test cases/common/255 preprocess/src/meson.build @@ -1,4 +1,3 @@ file_map = cc.preprocess('file.map.in', output: '@BASENAME@', - compile_args: ['-x', 'assembler-with-cpp'], ) -- cgit v1.2.3