#
# == Optional Rust support ==
#
-# Define WITH_RUST if you want to include features and subsystems written in
-# Rust into Git. For now, Rust is still an optional feature of the build
-# process. With Git 3.0 though, Rust will always be enabled.
+# Define NO_RUST if you want to disable features and subsystems written in Rust
+# from being compiled into Git. For now, Rust is still an optional feature of
+# the build process. With Git 3.0 though, Rust will always be enabled.
#
# Building Rust code requires Cargo.
#
LIB_OBJS += usage.o
LIB_OBJS += userdiff.o
LIB_OBJS += utf8.o
-ifndef WITH_RUST
+ifdef NO_RUST
LIB_OBJS += varint.o
endif
LIB_OBJS += version.o
ALL_CFLAGS = $(DEVELOPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_APPEND)
ALL_LDFLAGS = $(LDFLAGS) $(LDFLAGS_APPEND)
-ifdef WITH_RUST
+ifndef NO_RUST
BASIC_CFLAGS += -DWITH_RUST
GITLIBS += $(RUST_LIB)
ifeq ($(uname_S),Windows)
osx-meson)
MESONFLAGS="$MESONFLAGS -Dcredential_helpers=osxkeychain"
;;
+windows-*)
+ export NO_RUST=UnfortunatelyYes
+ ;;
esac
MAKEFLAGS="$MAKEFLAGS CC=${CC:-cc}"
export TEST_CONTRIB_TOO=yes
case "$jobname" in
+linux-musl-meson)
+ MESONFLAGS="$MESONFLAGS -Drust=disabled"
+ ;;
fedora-breaking-changes-musl|linux-breaking-changes)
export WITH_BREAKING_CHANGES=YesPlease
- export WITH_RUST=YesPlease
MESONFLAGS="$MESONFLAGS -Dbreaking_changes=true"
- MESONFLAGS="$MESONFLAGS -Drust=enabled"
;;
linux-TEST-vars)
export OPENSSL_SHA1_UNSAFE=YesPlease
export GIT_TEST_PACK_USE_BITMAP_BOUNDARY_TRAVERSAL=1
;;
linux-clang)
+ export NO_RUST=UnfortunatelyYes
export GIT_TEST_DEFAULT_HASH=sha1
;;
linux-sha256)
)
libgit_sources += version_def_h
-cargo = find_program('cargo', dirs: program_path, native: true, required: get_option('rust'))
-rust_option = get_option('rust').disable_auto_if(not cargo.found())
+rust_option = get_option('rust')
if rust_option.allowed()
subdir('src')
libgit_c_args += '-DWITH_RUST'
# Build tweaks.
option('breaking_changes', type: 'boolean', value: false,
description: 'Enable upcoming breaking changes.')
-option('rust', type: 'feature', value: 'auto',
+option('rust', type: 'feature', value: 'enabled',
description: 'Enable building with Rust.')
option('macos_use_homebrew_gettext', type: 'boolean', value: true,
description: 'Use gettext from Homebrew instead of the slightly-broken system-provided one.')
)
libgit_dependencies += declare_dependency(link_with: libgit_rs)
+cargo = find_program('cargo', dirs: program_path, native: true, required: get_option('rust'))
if get_option('tests')
test('rust', cargo,
args: [