Merge pull request #8236 from dcbaker/submit/rust-fix-generated-sources-in-subdir
Submit/rust fix generated sources in subdir
This commit is contained in:
commit
bb6385111a
|
@ -1593,7 +1593,7 @@ int dummy;
|
||||||
if isinstance(g, GeneratedList):
|
if isinstance(g, GeneratedList):
|
||||||
fname = os.path.join(self.get_target_private_dir(target), i)
|
fname = os.path.join(self.get_target_private_dir(target), i)
|
||||||
else:
|
else:
|
||||||
fname = i
|
fname = os.path.join(g.get_subdir(), i)
|
||||||
if main_rust_file is None:
|
if main_rust_file is None:
|
||||||
main_rust_file = fname
|
main_rust_file = fname
|
||||||
orderdeps.append(fname)
|
orderdeps.append(fname)
|
||||||
|
|
|
@ -6,10 +6,14 @@ import argparse
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument('out')
|
parser.add_argument('out')
|
||||||
|
parser.add_argument('--mode', choices=['main', 'lib'], default='main')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
with open(args.out, 'w') as f:
|
with open(args.out, 'w') as f:
|
||||||
f.write('fn main() { println!("I prefer tarnish, actually.") }')
|
if args.mode == 'main':
|
||||||
|
f.write('fn main() { println!("I prefer tarnish, actually.") }')
|
||||||
|
elif args.mode == 'lib':
|
||||||
|
f.write('pub fn libfun() { println!("I prefer tarnish, actually.") }')
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
extern crate static_lib_generated as lib;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
lib::libfun();
|
||||||
|
}
|
|
@ -11,6 +11,11 @@ c = custom_target(
|
||||||
executable('custom_target_main', c)
|
executable('custom_target_main', c)
|
||||||
executable('custom_target_index_main', c[0])
|
executable('custom_target_index_main', c[0])
|
||||||
|
|
||||||
gen = generator(gen, arguments : ['@OUTPUT@'], output : '@BASENAME@.rs')
|
gener = generator(gen, arguments : ['@OUTPUT@'], output : '@BASENAME@.rs')
|
||||||
# Doesn't actually use gen.py as input, just a limitation of generators
|
# Doesn't actually use gen.py as input, just a limitation of generators
|
||||||
executable('generator_main', gen.process(['gen.py']))
|
executable('generator_main', gener.process(['gen.py']))
|
||||||
|
|
||||||
|
subdir('sub')
|
||||||
|
executable('custom_target_subdir_main', s)
|
||||||
|
|
||||||
|
executable('link_with_generated_lib', 'generated_lib_main.rs', link_with : lib)
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
s = custom_target(
|
||||||
|
'subdir_target',
|
||||||
|
command : [gen, '@OUTPUT@'],
|
||||||
|
output : ['main.rs'],
|
||||||
|
)
|
||||||
|
|
||||||
|
l = custom_target(
|
||||||
|
'lib_target',
|
||||||
|
command : [gen, '@OUTPUT@', '--mode', 'lib'],
|
||||||
|
output : ['lib.rs'],
|
||||||
|
)
|
||||||
|
|
||||||
|
lib = static_library('static_lib_generated', l)
|
Loading…
Reference in New Issue