Author: mehdi_amini Date: Wed Mar 29 23:45:33 2017 New Revision: 299053 URL: http://llvm.org/viewvc/llvm-project?rev=299053&view=rev Log: libc++ testing: allow to provide a path for `use_system_cxx_lib`
As we're trying to setup testing / bots for all shipping version of libc++ on macOS/iOS, we'll need to be able to pass a path to where to find the dylib for each previous version of the OS. Differential Revision: https://reviews.llvm.org/D31486 Modified: libcxx/trunk/utils/libcxx/test/config.py libcxx/trunk/utils/libcxx/test/target_info.py Modified: libcxx/trunk/utils/libcxx/test/config.py URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/utils/libcxx/test/config.py?rev=299053&r1=299052&r2=299053&view=diff ============================================================================== --- libcxx/trunk/utils/libcxx/test/config.py (original) +++ libcxx/trunk/utils/libcxx/test/config.py Wed Mar 29 23:45:33 2017 @@ -273,12 +273,16 @@ class Configuration(object): # the locally built one; the former mode is useful for testing ABI # compatibility between the current headers and a shipping dynamic # library. - self.use_system_cxx_lib = self.get_lit_bool('use_system_cxx_lib') - if self.use_system_cxx_lib is None: - # Default to testing against the locally built libc++ library. + # Default to testing against the locally built libc++ library. + self.use_system_cxx_lib = self.get_lit_conf('use_system_cxx_lib') + if self.use_system_cxx_lib == 'true': + self.use_system_cxx_lib = True + elif self.use_system_cxx_lib == 'false': self.use_system_cxx_lib = False - self.lit_config.note( - "inferred use_system_cxx_lib as: %r" % self.use_system_cxx_lib) + else: + assert os.path.isdir(self.use_system_cxx_lib) + self.lit_config.note( + "inferred use_system_cxx_lib as: %r" % self.use_system_cxx_lib) def configure_cxx_stdlib_under_test(self): self.cxx_stdlib_under_test = self.get_lit_conf( @@ -686,6 +690,13 @@ class Configuration(object): self.cxx_runtime_root] elif self.is_windows and self.link_shared: self.add_path(self.exec_env, self.cxx_runtime_root) + elif os.path.isdir(str(self.use_system_cxx_lib)): + self.cxx.link_flags += ['-L' + self.use_system_cxx_lib] + if not self.is_windows: + self.cxx.link_flags += ['-Wl,-rpath,' + + self.use_system_cxx_lib] + if self.is_windows and self.link_shared: + self.add_path(self.cxx.compile_env, self.use_system_cxx_lib) def configure_link_flags_abi_library_path(self): # Configure ABI library paths. Modified: libcxx/trunk/utils/libcxx/test/target_info.py URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/utils/libcxx/test/target_info.py?rev=299053&r1=299052&r2=299053&view=diff ============================================================================== --- libcxx/trunk/utils/libcxx/test/target_info.py (original) +++ libcxx/trunk/utils/libcxx/test/target_info.py Wed Mar 29 23:45:33 2017 @@ -142,6 +142,8 @@ class DarwinLocalTI(DefaultTargetInfo): library_paths = [] # Configure the library path for libc++ if self.full_config.use_system_cxx_lib: + if (os.path.isdir(str(self.full_config.use_system_cxx_lib))): + library_paths += [self.full_config.use_system_cxx_lib] pass elif self.full_config.cxx_runtime_root: library_paths += [self.full_config.cxx_runtime_root] _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits