1
0
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:
David Mulder 2024-08-12 14:25:12 -06:00
parent 33bdebb7c8
commit 4a4304ecf7
5 changed files with 14 additions and 24 deletions

View File

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

View File

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

View File

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

View File

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

View File

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