blob: 85ccd8492b92416b8c90c019fa2e1053d03cd854 [file] [log] [blame]
import os
import libcxx.test.config
import libcxx.android.build
import libcxx.android.test.format
class Configuration(libcxx.test.config.Configuration):
def __init__(self, lit_config, config):
super(Configuration, self).__init__(lit_config, config)
self.cxx_under_test = None
self.build_cmds_dir = None
self.cxx_template = None
self.link_template = None
def configure(self):
self.configure_cxx()
self.configure_triple()
self.configure_src_root()
self.configure_obj_root()
self.configure_cxx_library_root()
self.configure_compile_flags()
self.configure_link_flags()
self.configure_features()
def configure_link_flags(self):
self.link_flags.append('-nodefaultlibs')
# Configure libc++ library paths.
self.link_flags.append('-L' + self.cxx_library_root)
# Add libc_ndk's output path to the library search paths.
libdir = '{}/obj/STATIC_LIBRARIES/libc_ndk_intermediates'.format(
os.getenv('ANDROID_PRODUCT_OUT'))
self.link_flags.append('-L' + libdir)
self.link_flags.append('-lc++_ndk')
self.link_flags.append('-lc_ndk')
self.link_flags.append('-lc')
def configure_features(self):
self.config.available_features.add('long_tests')
def get_test_format(self):
cxx_template = ' '.join(
self.compile_flags + ['-c', '-o', '%OUT%', '%SOURCE%'])
link_template = ' '.join(
['-o', '%OUT%', '%SOURCE%'] + self.compile_flags + self.link_flags)
tmp_dir = getattr(self.config, 'device_dir', '/data/local/tmp/')
return libcxx.android.test.format.TestFormat(
self.cxx,
self.libcxx_src_root,
self.obj_root,
cxx_template,
link_template,
tmp_dir,
getattr(self.config, 'timeout', '300'),
exec_env={'LD_LIBRARY_PATH': tmp_dir})