mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
Vendor the rust sources for CI tests
Signed-off-by: David Mulder <dmulder@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org>
This commit is contained in:
parent
5a8b8a7799
commit
43971bbada
@ -7,6 +7,36 @@ def SAMBA_CHECK_RUST(conf):
|
|||||||
conf.find_program('cargo', var='CARGO',
|
conf.find_program('cargo', var='CARGO',
|
||||||
mandatory=not conf.env.disable_rust)
|
mandatory=not conf.env.disable_rust)
|
||||||
|
|
||||||
|
def vendor_sources(bld, 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:
|
||||||
|
enabled = False
|
||||||
|
|
||||||
|
# Save time, no need to build rust when fuzzing
|
||||||
|
if bld.env.enable_fuzzing:
|
||||||
|
enabled = False
|
||||||
|
|
||||||
|
# Determine the vendor directory
|
||||||
|
vendor = bld.path.find_or_declare('./vendor')
|
||||||
|
# WAF dependencies can only be explicit files, not directories, so we touch
|
||||||
|
# a file to indicate vendoring has been completed.
|
||||||
|
vendor_exists = '%s.exists' % vendor
|
||||||
|
# Locate the source manifest file
|
||||||
|
source_manifest = bld.path.find_or_declare('../../../rust/Cargo.toml')
|
||||||
|
|
||||||
|
rule = ['${CARGO}', 'vendor',
|
||||||
|
'--manifest-path=${SRC[0].abspath(env)}',
|
||||||
|
'%s' % vendor,
|
||||||
|
'&& touch %s' % vendor_exists]
|
||||||
|
bld.SAMBA_GENERATOR('vendor.exists',
|
||||||
|
' '.join(rule),
|
||||||
|
source=source_manifest,
|
||||||
|
target=vendor_exists,
|
||||||
|
group='final',
|
||||||
|
enabled=enabled)
|
||||||
|
Build.BuildContext.vendor_sources = vendor_sources
|
||||||
|
|
||||||
def find_sources(source_dir, dep_crate):
|
def find_sources(source_dir, dep_crate):
|
||||||
sources = []
|
sources = []
|
||||||
for root, dirs, files in os.walk(os.path.join(source_dir, dep_crate)):
|
for root, dirs, files in os.walk(os.path.join(source_dir, dep_crate)):
|
||||||
@ -50,7 +80,8 @@ def SAMBA_RUST(bld, rust_subdir, target_name, dep_crates=[], enabled=True):
|
|||||||
release_flag]
|
release_flag]
|
||||||
bld.SAMBA_GENERATOR(target_name,
|
bld.SAMBA_GENERATOR(target_name,
|
||||||
' '.join(rule),
|
' '.join(rule),
|
||||||
source='%s/Cargo.toml %s' % (rust_subdir, ' '.join(sources)),
|
source='%s/Cargo.toml vendor.exists %s' % \
|
||||||
|
(rust_subdir, ' '.join(sources)),
|
||||||
target=target,
|
target=target,
|
||||||
group='final',
|
group='final',
|
||||||
enabled=enabled)
|
enabled=enabled)
|
||||||
|
5
rust/.cargo/config.toml
Normal file
5
rust/.cargo/config.toml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[source.crates-io]
|
||||||
|
replace-with = "vendored-sources"
|
||||||
|
|
||||||
|
[source.vendored-sources]
|
||||||
|
directory = "../bin/default/rust/vendor"
|
@ -1,5 +1,7 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
bld.vendor_sources()
|
||||||
|
|
||||||
if conf.env.enable_himmelblau:
|
if conf.env.enable_himmelblau:
|
||||||
bld.SAMBA_RUST_BINARY('himmelblaud', 'himmelblaud',
|
bld.SAMBA_RUST_BINARY('himmelblaud', 'himmelblaud',
|
||||||
['param',
|
['param',
|
||||||
|
Loading…
Reference in New Issue
Block a user