From: Ezekiel Newren via GitGitGadget Date: Thu, 27 Nov 2025 01:10:24 GMT Subject: [PATCH 02/13] meson: undo Patrick's changes concerning Rust Message-ID: In-Reply-To: From: Ezekiel Newren Signed-off-by: Ezekiel Newren --- meson.build | 19 ++----------------- meson_options.txt | 4 ++-- src/cargo-meson.sh | 39 --------------------------------------- src/meson.build | 41 ----------------------------------------- 4 files changed, 4 insertions(+), 99 deletions(-) delete mode 100755 src/cargo-meson.sh delete mode 100644 src/meson.build diff --git a/meson.build b/meson.build index 2b763f7c53..8966596ee8 100644 --- a/meson.build +++ b/meson.build @@ -220,7 +220,7 @@ project('git', 'c', # learned to define __STDC_VERSION__ with C11 and later. We thus require # GNU C99 and fall back to C11. Meson only learned to handle the fallback # with version 1.3.0, so on older versions we use GNU C99 unconditionally. - default_options: meson.version().version_compare('>=1.3.0') ? ['rust_std=2018', 'c_std=gnu99,c11'] : ['rust_std=2018', 'c_std=gnu99'], + default_options: meson.version().version_compare('>=1.3.0') ? ['c_std=gnu99,c11'] : ['c_std=gnu99'], ) fs = import('fs') @@ -1709,21 +1709,6 @@ version_def_h = custom_target( ) 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()) -if rust_option.allowed() - subdir('src') - libgit_c_args += '-DWITH_RUST' - - if host_machine.system() == 'windows' - libgit_dependencies += compiler.find_library('userenv') - endif -else - libgit_sources += [ - 'varint.c', - ] -endif - libgit = declare_dependency( link_with: static_library('git', sources: libgit_sources, @@ -2270,7 +2255,7 @@ summary({ 'pcre2': pcre2, 'perl': perl_features_enabled, 'python': target_python.found(), - 'rust': rust_option.allowed(), + 'rust': get_option('with_rust'), }, section: 'Auto-detected features', bool_yn: true) summary({ diff --git a/meson_options.txt b/meson_options.txt index 143dee9237..0059b7c7df 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -71,8 +71,8 @@ option('zlib_backend', type: 'combo', choices: ['auto', 'zlib', 'zlib-ng'], valu # Build tweaks. option('breaking_changes', type: 'boolean', value: false, description: 'Enable upcoming breaking changes.') -option('rust', type: 'feature', value: 'auto', - description: 'Enable building with Rust.') +option('with_rust', type: 'boolean', value: true, + description: 'Enable building with Rust, true by default.') option('macos_use_homebrew_gettext', type: 'boolean', value: true, description: 'Use gettext from Homebrew instead of the slightly-broken system-provided one.') diff --git a/src/cargo-meson.sh b/src/cargo-meson.sh deleted file mode 100755 index 3998db0435..0000000000 --- a/src/cargo-meson.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh - -if test "$#" -lt 2 -then - exit 1 -fi - -SOURCE_DIR="$1" -BUILD_DIR="$2" -BUILD_TYPE=debug - -shift 2 - -for arg -do - case "$arg" in - --release) - BUILD_TYPE=release;; - esac -done - -cargo build --lib --quiet --manifest-path="$SOURCE_DIR/Cargo.toml" --target-dir="$BUILD_DIR" "$@" -RET=$? -if test $RET -ne 0 -then - exit $RET -fi - -case "$(cargo -vV | sed -s 's/^host: \(.*\)$/\1/')" in - *-windows-*) - LIBNAME=gitcore.lib;; - *) - LIBNAME=libgitcore.a;; -esac - -if ! cmp "$BUILD_DIR/$BUILD_TYPE/$LIBNAME" "$BUILD_DIR/libgitcore.a" >/dev/null 2>&1 -then - cp "$BUILD_DIR/$BUILD_TYPE/$LIBNAME" "$BUILD_DIR/libgitcore.a" -fi diff --git a/src/meson.build b/src/meson.build deleted file mode 100644 index 25b9ad5a14..0000000000 --- a/src/meson.build +++ /dev/null @@ -1,41 +0,0 @@ -libgit_rs_sources = [ - 'lib.rs', - 'varint.rs', -] - -# Unfortunately we must use a wrapper command to move the output file into the -# current build directory. This can fixed once `cargo build --artifact-dir` -# stabilizes. See https://github.com/rust-lang/cargo/issues/6790 for that -# effort. -cargo_command = [ - shell, - meson.current_source_dir() / 'cargo-meson.sh', - meson.project_source_root(), - meson.current_build_dir(), -] -if get_option('buildtype') == 'release' - cargo_command += '--release' -endif - -libgit_rs = custom_target('git_rs', - input: libgit_rs_sources + [ - meson.project_source_root() / 'Cargo.toml', - ], - output: 'libgitcore.a', - command: cargo_command, -) -libgit_dependencies += declare_dependency(link_with: libgit_rs) - -if get_option('tests') - test('rust', cargo, - args: [ - 'test', - '--manifest-path', - meson.project_source_root() / 'Cargo.toml', - '--target-dir', - meson.current_build_dir() / 'target', - ], - timeout: 0, - protocol: 'rust', - ) -endif -- gitgitgadget