aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormakise-homura <akemi_homura@kurisa.ch>2018-03-28 21:36:10 +0300
committermakise-homura <akemi_homura@kurisa.ch>2018-03-28 21:36:10 +0300
commitc8ee45cf15f1a3daefbff519fcb5cc9caa558379 (patch)
tree00e86e197c3cc2a835153e3089ed9cdc622d6fe5
parent67f067d5b2161bb21a3d3858c295932004ffa90c (diff)
downloadmeson-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
-rw-r--r--test cases/common/132 dependency file generation/meson.build10
-rw-r--r--test cases/common/22 header in file list/meson.build10
-rw-r--r--test cases/common/64 custom header generator/meson.build10
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',