mirror of
https://github.com/samba-team/samba.git
synced 2025-03-11 16:58:40 +03:00
Modify rust build to share target dir w/ cargo test
The build needs to share the target directory with the cargo test command to prevent duplicate dependency downloads. Signed-off-by: David Mulder <dmulder@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org>
This commit is contained in:
parent
33bdebb7c8
commit
4a4304ecf7
@ -7,7 +7,7 @@ def SAMBA_CHECK_RUST(conf):
|
||||
conf.find_program('cargo', var='CARGO',
|
||||
mandatory=not conf.env.disable_rust)
|
||||
|
||||
def SAMBA_RUST(bld, name, source, enabled=True):
|
||||
def SAMBA_RUST(bld, rust_subdir, target_name, source, enabled=True):
|
||||
# force-disable when we can't build rust modules, so
|
||||
# every single call doesn't need to pass this in.
|
||||
if bld.env.disable_rust:
|
||||
@ -19,18 +19,21 @@ def SAMBA_RUST(bld, name, source, enabled=True):
|
||||
|
||||
release_flag = ''
|
||||
if bld.env.debug or bld.env.developer:
|
||||
target = os.path.join('debug', name)
|
||||
target = os.path.join('debug', target_name)
|
||||
else:
|
||||
release_flag = '--release'
|
||||
target = os.path.join('release', name)
|
||||
target = os.path.join('release', target_name)
|
||||
target = bld.path.find_or_declare(target)
|
||||
rust_vars = 'CARGO_TARGET_DIR=%s' % bld.path.find_or_declare('./')
|
||||
# The Rust target directory is one directory above the located target
|
||||
target_dir = os.path.join(os.path.dirname('%s' % target), '../')
|
||||
|
||||
rule = [rust_vars, '${CARGO}', 'build',
|
||||
'--manifest-path=${SRC[0].abspath(env)}', release_flag]
|
||||
bld.SAMBA_GENERATOR(name,
|
||||
rule = ['${CARGO}', 'build',
|
||||
'--manifest-path=${SRC[0].abspath(env)}',
|
||||
'--target-dir=%s' % target_dir,
|
||||
release_flag]
|
||||
bld.SAMBA_GENERATOR(target_name,
|
||||
' '.join(rule),
|
||||
source='Cargo.toml %s' % source,
|
||||
source='%s/Cargo.toml %s' % (rust_subdir, source),
|
||||
target=target,
|
||||
group='final',
|
||||
enabled=enabled)
|
||||
|
@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
import os
|
||||
|
||||
bld.SAMBA_RUST_BINARY('himmelblaud',
|
||||
source='src/main.rs ../param/src/lib.rs ../chelps/src/lib.rs ../dbg/src/lib.rs ../ntstatus_gen/src/lib.rs ../sock/src/lib.rs ../tdb/src/lib.rs ../version/src/lib.rs')
|
@ -1,4 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
bld.SAMBA_RUST_LIBRARY('libnss_himmelblau.so',
|
||||
source='src/lib.rs ../sock/src/lib.rs ../ntstatus_gen/src/lib.rs ../param/src/lib.rs ../version/src/lib.rs')
|
@ -1,4 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
bld.SAMBA_RUST_LIBRARY('libpam_himmelblau.so',
|
||||
source='src/lib.rs src/pam/constants.rs src/pam/conv.rs src/pam/items.rs src/pam/items.rs src/pam/macros.rs src/pam/mod.rs src/pam/module.rs ../sock/src/lib.rs ../ntstatus_gen/src/lib.rs ../param/src/lib.rs ../version/src/lib.rs')
|
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
if conf.env.enable_himmelblau:
|
||||
bld.RECURSE('himmelblaud')
|
||||
bld.RECURSE('nss')
|
||||
bld.RECURSE('pam')
|
||||
bld.SAMBA_RUST_BINARY('himmelblaud', 'himmelblaud', 'himmelblaud/src/main.rs param/src/lib.rs chelps/src/lib.rs dbg/src/lib.rs ntstatus_gen/src/lib.rs sock/src/lib.rs tdb/src/lib.rs version/src/lib.rs')
|
||||
bld.SAMBA_RUST_LIBRARY('nss', 'libnss_himmelblau.so', 'nss/src/lib.rs sock/src/lib.rs ntstatus_gen/src/lib.rs param/src/lib.rs version/src/lib.rs')
|
||||
bld.SAMBA_RUST_LIBRARY('pam', 'libpam_himmelblau.so', 'pam/src/lib.rs pam/src/pam/constants.rs pam/src/pam/conv.rs pam/src/pam/items.rs pam/src/pam/items.rs pam/src/pam/macros.rs pam/src/pam/mod.rs pam/src/pam/module.rs sock/src/lib.rs ntstatus_gen/src/lib.rs param/src/lib.rs version/src/lib.rs')
|
||||
|
Loading…
x
Reference in New Issue
Block a user