Author: compnerd
Date: Fri Feb 17 17:08:46 2017
New Revision: 295511

URL: http://llvm.org/viewvc/llvm-project?rev=295511&view=rev
Log:
test: prevent incorrect quoting of paths

The path would previously get an extra leading space as the arguments
would be parsed when generating the final command to run.  Pretokenise
the arguments to permit proper quoting of the paths.  This avoids a
number of ignoring non-existent path warnings from clang.

Modified:
    libcxx/trunk/utils/libcxx/test/config.py

Modified: libcxx/trunk/utils/libcxx/test/config.py
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/utils/libcxx/test/config.py?rev=295511&r1=295510&r2=295511&view=diff
==============================================================================
--- libcxx/trunk/utils/libcxx/test/config.py (original)
+++ libcxx/trunk/utils/libcxx/test/config.py Fri Feb 17 17:08:46 2017
@@ -229,21 +229,19 @@ class Configuration(object):
         self.cxx.compile_env['CCACHE_CPP2'] = '1'
 
     def _configure_clang_cl(self, clang_path):
+        def _split_env_var(var):
+            return [p.strip() for p in os.environ.get(var, '').split(';') if 
p.strip()]
+
+        def _prefixed_env_list(var, prefix):
+            from itertools import chain
+            return list(chain.from_iterable((prefix, path) for path in 
_split_env_var(var)))
+
         assert self.cxx_is_clang_cl
         flags = []
-        compile_flags = []
-        link_flags = []
-        if 'INCLUDE' in os.environ:
-            compile_flags += ['-isystem %s' % p.strip()
-                              for p in os.environ['INCLUDE'].split(';')
-                              if p.strip()]
-        if 'LIB' in os.environ:
-            for p in os.environ['LIB'].split(';'):
-                p = p.strip()
-                if not p:
-                    continue
-                link_flags += ['-L%s' % p]
-                self.add_path(self.exec_env, p)
+        compile_flags = _prefixed_env_list('INCLUDE', '-isystem')
+        link_flags = _prefixed_env_list('LIB', '-L')
+        for path in _list_env_var('LIB'):
+            self.add_path(self.exec_env, path)
         return CXXCompiler(clang_path, flags=flags,
                            compile_flags=compile_flags,
                            link_flags=link_flags)


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to