Use relative paths for file names.
This commit is contained in:
parent
5dd4122c65
commit
8d1641d6a4
|
@ -96,5 +96,6 @@ if __name__ == '__main__':
|
||||||
builder = BuilderApp(dir1, dir2, options)
|
builder = BuilderApp(dir1, dir2, options)
|
||||||
print ('Source dir: ' + builder.source_dir)
|
print ('Source dir: ' + builder.source_dir)
|
||||||
print ('Build dir: ' + builder.build_dir)
|
print ('Build dir: ' + builder.build_dir)
|
||||||
|
os.chdir(builder.build_dir)
|
||||||
builder.generate()
|
builder.generate()
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,8 @@ class Generator():
|
||||||
self.environment = build.environment
|
self.environment = build.environment
|
||||||
self.interpreter = interp
|
self.interpreter = interp
|
||||||
self.processed_targets = {}
|
self.processed_targets = {}
|
||||||
|
self.build_to_src = os.path.relpath(self.environment.get_source_dir(),
|
||||||
|
self.environment.get_build_dir())
|
||||||
|
|
||||||
def get_compiler_for_source(self, src):
|
def get_compiler_for_source(self, src):
|
||||||
for i in self.build.compilers:
|
for i in self.build.compilers:
|
||||||
|
@ -66,13 +68,13 @@ class Generator():
|
||||||
return filename
|
return filename
|
||||||
|
|
||||||
def get_target_dir(self, target):
|
def get_target_dir(self, target):
|
||||||
dirname = os.path.join(self.environment.get_build_dir(), target.get_subdir())
|
dirname = target.get_subdir()
|
||||||
os.makedirs(dirname, exist_ok=True)
|
os.makedirs(os.path.join(self.environment.get_build_dir(), dirname), exist_ok=True)
|
||||||
return dirname
|
return dirname
|
||||||
|
|
||||||
def get_target_private_dir(self, target):
|
def get_target_private_dir(self, target):
|
||||||
dirname = os.path.join(self.get_target_dir(target), target.get_basename() + '.dir')
|
dirname = os.path.join(self.get_target_dir(target), target.get_basename() + '.dir')
|
||||||
os.makedirs(dirname, exist_ok=True)
|
os.makedirs(os.path.join(self.environment.get_build_dir(), dirname), exist_ok=True)
|
||||||
return dirname
|
return dirname
|
||||||
|
|
||||||
def generate_target(self, target, outfile):
|
def generate_target(self, target, outfile):
|
||||||
|
@ -127,7 +129,10 @@ class Generator():
|
||||||
if not isinstance(d, interpreter.StaticLibrary) and\
|
if not isinstance(d, interpreter.StaticLibrary) and\
|
||||||
not isinstance(d, interpreter.SharedLibrary):
|
not isinstance(d, interpreter.SharedLibrary):
|
||||||
raise RuntimeError('Tried to link with a non-library target "%s".' % d.get_basename())
|
raise RuntimeError('Tried to link with a non-library target "%s".' % d.get_basename())
|
||||||
args.append(self.get_target_filename(d))
|
fname = self.get_target_filename(d)
|
||||||
|
if '/' not in fname:
|
||||||
|
fname = './' + fname # Hack to make ldd find the library.
|
||||||
|
args.append(fname)
|
||||||
return args
|
return args
|
||||||
|
|
||||||
class NinjaGenerator(Generator):
|
class NinjaGenerator(Generator):
|
||||||
|
@ -197,7 +202,7 @@ class NinjaGenerator(Generator):
|
||||||
def generate_single_compile(self, target, outfile, src):
|
def generate_single_compile(self, target, outfile, src):
|
||||||
compiler = self.get_compiler_for_source(src)
|
compiler = self.get_compiler_for_source(src)
|
||||||
commands = self.generate_basic_compiler_flags(target, compiler)
|
commands = self.generate_basic_compiler_flags(target, compiler)
|
||||||
abs_src = os.path.join(self.environment.get_source_dir(), target.get_source_subdir(), src)
|
abs_src = os.path.join(self.build_to_src, target.get_source_subdir(), src)
|
||||||
abs_obj = os.path.join(self.get_target_private_dir(target), src)
|
abs_obj = os.path.join(self.get_target_private_dir(target), src)
|
||||||
abs_obj += '.' + self.environment.get_object_suffix()
|
abs_obj += '.' + self.environment.get_object_suffix()
|
||||||
for i in target.get_include_dirs():
|
for i in target.get_include_dirs():
|
||||||
|
|
Loading…
Reference in New Issue