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:
Jussi Pakkanen 2021-01-25 18:24:28 +00:00 committed by GitHub
commit bb6385111a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 31 additions and 4 deletions

View File

@ -1593,7 +1593,7 @@ int dummy;
if isinstance(g, GeneratedList):
fname = os.path.join(self.get_target_private_dir(target), i)
else:
fname = i
fname = os.path.join(g.get_subdir(), i)
if main_rust_file is None:
main_rust_file = fname
orderdeps.append(fname)

View File

@ -6,10 +6,14 @@ import argparse
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument('out')
parser.add_argument('--mode', choices=['main', 'lib'], default='main')
args = parser.parse_args()
with open(args.out, 'w') as f:
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__":

View File

@ -0,0 +1,5 @@
extern crate static_lib_generated as lib;
fn main() {
lib::libfun();
}

View File

@ -11,6 +11,11 @@ c = custom_target(
executable('custom_target_main', c)
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
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)

View File

@ -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)