Skip to content

Commit acff180

Browse files
committed
Update test-linux.yml
1 parent 566b93a commit acff180

File tree

1 file changed

+7
-35
lines changed

1 file changed

+7
-35
lines changed

.github/workflows/test-linux.yml

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -59,63 +59,35 @@ jobs:
5959
run: |
6060
export DEBIAN_FRONTEND=noninteractive
6161
TARGET_ID="${{ matrix.target_arch }}"
62-
# Convert target triple to uppercase with underscores for Rust env var conventions
63-
# e.g., aarch64-unknown-linux-gnu -> AARCH64_UNKNOWN_LINUX_GNU
64-
RUST_TARGET_ENV_PREFIX=$(echo $TARGET_ID | tr 'a-z-' 'A-Z_')
65-
6662
echo "Setting up for target: $TARGET_ID"
67-
# This hint helps the pkg-config crate in Rust.
68-
echo "PKG_CONFIG_ALLOW_CROSS=1" >> $GITHUB_ENV
6963
7064
if [ "$TARGET_ID" == "x86_64-unknown-linux-gnu" ]; then
71-
# Native compilation: install standard dev packages
7265
echo "Installing native libraries: libpcsclite-dev libdvbv5-dev libudev-dev"
7366
sudo apt-get install -y -qq libpcsclite-dev libdvbv5-dev libudev-dev
7467
else
75-
# Cross-compilation: install :arch packages and set pkg-config env vars for the target
7668
ARCH_SUFFIX=""
77-
PKG_CONFIG_CROSS_EXECUTABLE=""
7869
PKG_CONFIG_CROSS_LIB_DIR=""
79-
8070
if [ "$TARGET_ID" == "aarch64-unknown-linux-gnu" ]; then
8171
ARCH_SUFFIX="arm64"
82-
# The gcc-aarch64-linux-gnu package (from linker_package) should provide aarch64-linux-gnu-pkg-config
83-
if command -v aarch64-linux-gnu-pkg-config &> /dev/null; then
84-
PKG_CONFIG_CROSS_EXECUTABLE=$(command -v aarch64-linux-gnu-pkg-config)
85-
fi
86-
PKG_CONFIG_CROSS_LIB_DIR="/usr/lib/aarch64-linux-gnu/pkgconfig" # Standard path for arm64 .pc files
87-
echo "CARGO_TARGET_${RUST_TARGET_ENV_PREFIX}_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
88-
72+
PKG_CONFIG_CROSS_LIB_DIR="/usr/lib/aarch64-linux-gnu/pkgconfig"
8973
elif [ "$TARGET_ID" == "i686-unknown-linux-gnu" ]; then
9074
ARCH_SUFFIX="i386"
91-
PKG_CONFIG_CROSS_LIB_DIR="/usr/lib/i386-linux-gnu/pkgconfig" # Standard path for i386 .pc files
92-
# For i386 with gcc-multilib, CFLAGS/LDFLAGS can help ensure 32-bit linkage for C parts
93-
echo "CFLAGS=-m32" >> $GITHUB_ENV
94-
echo "CXXFLAGS=-m32" >> $GITHUB_ENV
95-
echo "LDFLAGS=-m32" >> $GITHUB_ENV # Less common for LDFLAGS, but can be useful
96-
echo "CARGO_TARGET_${RUST_TARGET_ENV_PREFIX}_LINKER=gcc" >> $GITHUB_ENV # Rustc will instruct gcc to build for 32-bit
97-
fi
98-
99-
# Set environment variables for the pkg-config crate
100-
if [ ! -z "$PKG_CONFIG_CROSS_EXECUTABLE" ]; then
101-
echo "Using target-specific pkg-config: $PKG_CONFIG_CROSS_EXECUTABLE"
102-
echo "PKG_CONFIG_$RUST_TARGET_ENV_PREFIX=$PKG_CONFIG_CROSS_EXECUTABLE" >> $GITHUB_ENV
103-
elif [ ! -z "$PKG_CONFIG_CROSS_LIB_DIR" ]; then
104-
echo "Setting pkg-config library directory for target: $PKG_CONFIG_CROSS_LIB_DIR"
105-
echo "PKG_CONFIG_LIBDIR_$RUST_TARGET_ENV_PREFIX=$PKG_CONFIG_CROSS_LIB_DIR" >> $GITHUB_ENV
106-
# Also set PKG_CONFIG_PATH_<TARGET> as some build scripts might prefer that
107-
echo "PKG_CONFIG_PATH_$RUST_TARGET_ENV_PREFIX=$PKG_CONFIG_CROSS_LIB_DIR" >> $GITHUB_ENV
75+
PKG_CONFIG_CROSS_LIB_DIR="/usr/lib/i386-linux-gnu/pkgconfig"
10876
fi
10977
11078
echo "Adding architecture $ARCH_SUFFIX for apt."
11179
sudo dpkg --add-architecture $ARCH_SUFFIX
112-
echo "Updating apt package list after adding architecture."
11380
sudo apt-get update -y -qq
11481
echo "Installing libraries for $ARCH_SUFFIX: libpcsclite-dev:$ARCH_SUFFIX libdvbv5-dev:$ARCH_SUFFIX libudev-dev:$ARCH_SUFFIX"
11582
sudo apt-get install -y -qq \
11683
libpcsclite-dev:$ARCH_SUFFIX \
11784
libdvbv5-dev:$ARCH_SUFFIX \
11885
libudev-dev:$ARCH_SUFFIX
86+
87+
if [ -n "$PKG_CONFIG_CROSS_LIB_DIR" ]; then
88+
echo "Setting pkg-config for cross-compilation"
89+
echo "PKG_CONFIG_LIBDIR=$PKG_CONFIG_CROSS_LIB_DIR" >> $GITHUB_ENV
90+
fi
11991
fi
12092
shell: bash
12193

0 commit comments

Comments
 (0)