Meson verktøykjedefiler

Introduksjon til Meson Verktøykjedefiler

De fleste applikasjoner som er avhengige av Meson byggesystemer har god støtte for krysskompilering, dvs. kompilering av 32-biters binærfiler på et 64-biters system. Det kan være så enkelt som å sette opp CC, CXX, og PKG_CONFIG_PATH variabler før du bruker meson setup .. kommandoen for å kompilere 32-bit binærfiler på et 64-bit system. Noen prosjekter er imidlertid mer kompliserte av mange forskjellige grunner, noe som fører til behovet for Meson verktøykjedefiler. De spesifiserer kompilatorer, alternativer som skal kalles, pkg-conf binær (eller rettere sagt symbollenke som bruker en bestemt personlighetfil), llvm-config å bruke, osv. Dette er nødvendig for mange Meson prosjekter, spesielt hvis du har fulgt BLFS før denne boken. Derfor bør denne delen betraktes som et krav.

Det er to Meson filer: kryss verktøykjedefilen og den opprinnelige verktøykjedefilen. Det finnes forskjellige situasjoner for bruk av begge.

Meson Verktøykjedefil Avhengigheter

Påkrevd

Pkgconf Personalties (kjøretid)

Opprette Kryss Verktøykjedefilen

Opprett kryss verktøykjedefilen ved å kjøre følgende kommandoer som root bruker:

mkdir -pv /usr/share/meson/cross &&

cat > /usr/share/meson/cross/lib32 << "EOF"
[binaries]
c = ['gcc', '-m32']
cpp = ['g++', '-m32']
rust = ['rustc', '--target', 'i686-unknown-linux-gnu']
pkg-config = 'i686-pc-linux-gnu-pkg-config'
ar = '/usr/bin/ar'
strip = '/usr/bin/strip'
cups-config = 'cups-config'
llvm-config = 'llvm-config'
exe_wrapper = ''

[properties]
sizeof_void* = 4
sizeof_long = 4

[host_machine]
system = 'linux'
subsystem = 'linux'
kernel = 'linux'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'
EOF

Opprette Opprinnelige Verktøykjedefilen

Opprett den opprinnelige verktøykjedefilen ved å kjøre følgende kommandoer som root bruker:

mkdir -pv /usr/share/meson/native &&

cat > /usr/share/meson/native/x86 << "EOF"
[binaries]
c = ['gcc', '-m32']
cpp = ['g++', '-m32']
rust = ['rustc', '--target', 'i686-unknown-linux-gnu']
pkg-config = 'i686-pc-linux-gnu-pkg-config'
ar = '/usr/bin/ar'
strip = '/usr/bin/strip'
cups-config = 'cups-config'
llvm-config = 'llvm-config'
exe_wrapper = ''

[properties]
sizeof_void* = 4
sizeof_long = 4

[host_machine]
system = 'linux'
subsystem = 'linux'
kernel = 'linux'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'
EOF

Slik bruker du filen

I stedet for å angi miljøvariabler før påkalling av meson setup .., du kan rett og slett gjøre:

meson setup .. --cross-file=lib32 <other-options>

Eller...

meson setup .. --native-file=x86 <other-options>