diff options
author | makise-homura <akemi_homura@kurisa.ch> | 2018-03-28 21:36:10 +0300 |
---|---|---|
committer | makise-homura <akemi_homura@kurisa.ch> | 2018-03-28 21:36:10 +0300 |
commit | c8ee45cf15f1a3daefbff519fcb5cc9caa558379 (patch) | |
tree | 00e86e197c3cc2a835153e3089ed9cdc622d6fe5 | |
parent | 67f067d5b2161bb21a3d3858c295932004ffa90c (diff) | |
download | meson-c8ee45cf15f1a3daefbff519fcb5cc9caa558379.zip meson-c8ee45cf15f1a3daefbff519fcb5cc9caa558379.tar.gz meson-c8ee45cf15f1a3daefbff519fcb5cc9caa558379.tar.bz2 |
Skipping tests 22, 64, and 132 for old lcc and icc.
This is due to incorrect creation of dependency files:
both compilers do not escape spaces in paths.
As of version 1.21.22 of lcc, it is announced that
this bug will be corrected in future versions.
Test 132 was a template for such idea; it has been also
extended to react not only to icc, but to lcc too.
Further info (if I'm correct):
https://software.intel.com/en-us/forums/intel-c-compiler/topic/283156
3 files changed, 26 insertions, 4 deletions
diff --git a/test cases/common/132 dependency file generation/meson.build b/test cases/common/132 dependency file generation/meson.build index dcfdcd9..d5e1c07 100644 --- a/test cases/common/132 dependency file generation/meson.build +++ b/test cases/common/132 dependency file generation/meson.build @@ -1,11 +1,13 @@ project('dep file gen', 'c') -cc_id = meson.get_compiler('c').get_id() -if cc_id == 'intel' - # ICC does not escape spaces in paths in the dependency file, so Ninja +cc_id = meson.get_compiler('c').get_id() +cc_ver = meson.get_compiler('c').version() + +if cc_id == 'intel' or (cc_id == 'lcc' and cc_ver.version_compare('<=1.21.22') + # ICC and LCC <= 1.21.22 do not escape spaces in paths in the dependency file, so Ninja # (correctly) thinks that the rule has multiple outputs and errors out: # 'depfile has multiple output paths' - error('MESON_SKIP_TEST: Skipping test with Intel compiler because it generates broken dependency files') + error('MESON_SKIP_TEST: Skipping test because your compiler is known to generate broken dependency files') endif e = executable('main file', 'main .c') diff --git a/test cases/common/22 header in file list/meson.build b/test cases/common/22 header in file list/meson.build index cc30c71..5e478cf 100644 --- a/test cases/common/22 header in file list/meson.build +++ b/test cases/common/22 header in file list/meson.build @@ -1,4 +1,14 @@ project('header in file list', 'c') +cc_id = meson.get_compiler('c').get_id() +cc_ver = meson.get_compiler('c').version() + +if cc_id == 'intel' or (cc_id == 'lcc' and cc_ver.version_compare('<=1.21.22') + # ICC and LCC <= 1.21.22 do not escape spaces in paths in the dependency file, so Ninja + # (correctly) thinks that the rule has multiple outputs and errors out: + # 'depfile has multiple output paths' + error('MESON_SKIP_TEST: Skipping test because your compiler is known to generate broken dependency files') +endif + exe = executable('prog', 'prog.c', 'header.h') test('basic', exe) diff --git a/test cases/common/64 custom header generator/meson.build b/test cases/common/64 custom header generator/meson.build index bcc9a53..a691dbb 100644 --- a/test cases/common/64 custom header generator/meson.build +++ b/test cases/common/64 custom header generator/meson.build @@ -1,5 +1,15 @@ project('custom header generator', 'c') +cc_id = meson.get_compiler('c').get_id() +cc_ver = meson.get_compiler('c').version() + +if cc_id == 'intel' or (cc_id == 'lcc' and cc_ver.version_compare('<=1.21.22') + # ICC and LCC <= 1.21.22 do not escape spaces in paths in the dependency file, so Ninja + # (correctly) thinks that the rule has multiple outputs and errors out: + # 'depfile has multiple output paths' + error('MESON_SKIP_TEST: Skipping test because your compiler is known to generate broken dependency files') +endif + gen = find_program('makeheader.py') generated_h = custom_target('makeheader.py', |