diff --git a/Makefile.pre.in b/Makefile.pre.in index 0db27b6c46fa68..10f299819cd40f 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -61,6 +61,7 @@ DSYMUTIL_PATH= @DSYMUTIL_PATH@ CARGO_HOME=@CARGO_HOME@ CARGO_TARGET_DIR=@CARGO_TARGET_DIR@ CARGO_PROFILE=@CARGO_PROFILE@ +CARGO_TARGET=@CARGO_TARGET@ GNULD= @GNULD@ @@ -3373,7 +3374,7 @@ Python/thread.o: @THREADHEADERS@ $(srcdir)/Python/condvar.h # Module dependencies and platform-specific files cpython-sys: Modules/cpython-sys/Cargo.toml Modules/cpython-sys/build.rs Modules/cpython-sys/wrapper.h Modules/cpython-sys/parser.h - CARGO_TARGET_DIR=$(abs_builddir)/target PYTHON_BUILD_DIR=$(abs_builddir) cargo build --lib --locked --package cpython-sys --profile $(CARGO_PROFILE) --manifest-path $(srcdir)/Cargo.toml + CARGO_TARGET_DIR=$(abs_builddir)/target PYTHON_BUILD_DIR=$(abs_builddir) \$(CARGO_HOME)/bin/cargo build --lib --locked --package cpython-sys --profile $(CARGO_PROFILE) $(if $(CARGO_TARGET),--target=$(CARGO_TARGET)) --manifest-path $(srcdir)/Cargo.toml # force rebuild when header file or module build flavor (static/shared) is changed MODULE_DEPS_STATIC=Modules/config.c diff --git a/Modules/makesetup b/Modules/makesetup index 0368f1d017ac87..586e26dd5891b0 100755 --- a/Modules/makesetup +++ b/Modules/makesetup @@ -287,7 +287,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' | libs= # depends on the headers through cpython-sys rule="$objs: cpython-sys \$(srcdir)/Cargo.toml \$(srcdir)/Cargo.lock \$(srcdir)/$srcdir/$manifest $prefixed_srcs \$(PYTHON_HEADERS)" - rule="$rule; CARGO_TARGET_DIR=\$(abs_builddir)/target PYTHON_BUILD_DIR=\$(abs_builddir) cargo build --lib --locked --package ${mods} --profile \$(CARGO_PROFILE) --manifest-path \$(srcdir)/Cargo.toml" + rule="$rule; CARGO_TARGET_DIR=\$(abs_builddir)/target PYTHON_BUILD_DIR=\$(abs_builddir) \$(CARGO_HOME)/bin/cargo build --lib --locked --package ${mods} --profile \$(CARGO_PROFILE) \$(if \$(CARGO_TARGET),--target=\$(CARGO_TARGET)) --manifest-path \$(srcdir)/Cargo.toml" echo "$rule" >>$rulesf for mod in $mods do diff --git a/configure b/configure index fb959ad79bf6cb..8af7ee0e042e81 100755 --- a/configure +++ b/configure @@ -887,6 +887,7 @@ TCLTK_LIBS TCLTK_CFLAGS LIBSQLITE3_LIBS LIBSQLITE3_CFLAGS +CARGO_TARGET CARGO_PROFILE CARGO_TARGET_DIR CARGO_HOME @@ -16104,6 +16105,15 @@ else CARGO_TARGET_DIR='debug' CARGO_PROFILE='dev' fi + # Set CARGO_TARGET for cross-compilation + case "$host" in + aarch64-apple-ios-simulator) + CARGO_TARGET="aarch64-apple-ios-sim" + ;; + *) + CARGO_TARGET="$host" + ;; + esac fi @@ -16113,6 +16123,7 @@ fi + if test "$ac_sys_system" = "Emscripten" -a -z "$LIBSQLITE3_CFLAGS" -a -z "$LIBSQLITE3_LIBS" then : diff --git a/configure.ac b/configure.ac index 83a4c006c4feca..a3cc99c8add8c3 100644 --- a/configure.ac +++ b/configure.ac @@ -4328,10 +4328,20 @@ else CARGO_TARGET_DIR='debug' CARGO_PROFILE='dev' fi + # Set CARGO_TARGET for cross-compilation + case "$host" in + aarch64-apple-ios-simulator) + CARGO_TARGET="aarch64-apple-ios-sim" + ;; + *) + CARGO_TARGET="$host" + ;; + esac fi AC_SUBST([CARGO_HOME]) AC_SUBST([CARGO_TARGET_DIR]) AC_SUBST([CARGO_PROFILE]) +AC_SUBST([CARGO_TARGET]) dnl detect sqlite3 from Emscripten emport