Refactor the lit config's linker flag discovery code. NFC
authorJonathan Roelofs <jonathan@codesourcery.com>
Wed, 14 Jan 2015 01:29:04 +0000 (01:29 +0000)
committerJonathan Roelofs <jonathan@codesourcery.com>
Wed, 14 Jan 2015 01:29:04 +0000 (01:29 +0000)
llvm-svn: 225920

libcxx/test/libcxx/test/config.py

index 9899d94..a821b8f 100644 (file)
@@ -337,11 +337,23 @@ class Configuration(object):
         if abi_library_path:
             self.link_flags += ['-L' + abi_library_path,
                                 '-Wl,-rpath,' + abi_library_path]
+
         # Configure libraries
+        self.configure_link_flags_cxx_library()
+        self.configure_link_flags_abi_library()
+        self.configure_extra_library_flags()
+
+        link_flags_str = self.get_lit_conf('link_flags', '')
+        self.link_flags += shlex.split(link_flags_str)
+
+    def configure_link_flags_cxx_library(self):
+        libcxx_library = self.get_lit_conf('libcxx_library')
         if libcxx_library:
             self.link_flags += [libcxx_library]
         else:
             self.link_flags += ['-lc++']
+
+    def configure_link_flags_abi_library(self):
         cxx_abi = self.get_lit_conf('cxx_abi', 'libcxxabi')
         if cxx_abi == 'libstdc++':
             self.link_flags += ['-lstdc++']
@@ -356,7 +368,8 @@ class Configuration(object):
         else:
             self.lit_config.fatal(
                 'C++ ABI setting %s unsupported for tests' % cxx_abi)
-        # Configure extra libraries.
+
+    def configure_extra_library_flags(self):
         if sys.platform == 'darwin':
             self.link_flags += ['-lSystem']
         elif sys.platform.startswith('linux'):
@@ -367,9 +380,6 @@ class Configuration(object):
         else:
             self.lit_config.fatal("unrecognized system: %r" % sys.platform)
 
-        link_flags_str = self.get_lit_conf('link_flags', '')
-        self.link_flags += shlex.split(link_flags_str)
-
     def configure_sanitizer(self):
         san = self.get_lit_conf('use_sanitizer', '').strip()
         if san: