New build-helper: qmake
This commit is contained in:
parent
9fb817ec13
commit
618a9a7366
2 changed files with 55 additions and 1 deletions
|
@ -944,11 +944,17 @@ additional paths to be searched when linking target binaries to be introspected.
|
||||||
`qemu-<target_arch>-static` when running the target binary. You can for example specify
|
`qemu-<target_arch>-static` when running the target binary. You can for example specify
|
||||||
`GIR_EXTRA_OPTIONS="-strace"` to see a trace of what happens when running that binary.
|
`GIR_EXTRA_OPTIONS="-strace"` to see a trace of what happens when running that binary.
|
||||||
|
|
||||||
- 'qemu' sets additional variables for the `cmake` and `meson` build styles to allow
|
- `qemu` sets additional variables for the `cmake` and `meson` build styles to allow
|
||||||
executing cross-compiled binaries inside qemu.
|
executing cross-compiled binaries inside qemu.
|
||||||
It sets `CMAKE_CROSSCOMPILING_EMULATOR` for cmake and `exe_wrapper` for meson
|
It sets `CMAKE_CROSSCOMPILING_EMULATOR` for cmake and `exe_wrapper` for meson
|
||||||
to `qemu-<target_arch>-static` and `QEMU_LD_PREFIX` to `XBPS_CROSS_BASE`
|
to `qemu-<target_arch>-static` and `QEMU_LD_PREFIX` to `XBPS_CROSS_BASE`
|
||||||
|
|
||||||
|
- `qmake` creates the `qt.conf` configuration file (cf. `qmake` `build_style`)
|
||||||
|
needed for cross builds and a qmake-wrapper to make `qmake` use this configuration.
|
||||||
|
This aims to fix cross-builds for when the build-style is mixed: e.g. when in a
|
||||||
|
`gnu-configure` style the configure script calls `qmake` or a `Makefile` in
|
||||||
|
`gnu-makefile` style, respectively.
|
||||||
|
|
||||||
<a id="functions"></a>
|
<a id="functions"></a>
|
||||||
### Functions
|
### Functions
|
||||||
|
|
||||||
|
|
48
common/build-helper/qmake.sh
Normal file
48
common/build-helper/qmake.sh
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
# This build-helper sets up qmake’s cross environment
|
||||||
|
# in cases the build-style is mixed,
|
||||||
|
# e.g. when in a gnu-configure style the configure
|
||||||
|
# script calls qmake or a makefile in a gnu-makefile style,
|
||||||
|
# respectively.
|
||||||
|
|
||||||
|
if [ "$CROSS_BUILD" ]; then
|
||||||
|
cat > "${XBPS_WRAPPERDIR}/qt.conf" <<_EOF
|
||||||
|
[Paths]
|
||||||
|
Sysroot=${XBPS_CROSS_BASE}
|
||||||
|
Prefix=${XBPS_CROSS_BASE}/usr
|
||||||
|
ArchData=${XBPS_CROSS_BASE}/usr/lib/qt5
|
||||||
|
Data=${XBPS_CROSS_BASE}/usr/share/qt5
|
||||||
|
Documentation=${XBPS_CROSS_BASE}/usr/share/doc/qt5
|
||||||
|
Headers=${XBPS_CROSS_BASE}/usr/include/qt5
|
||||||
|
Libraries=${XBPS_CROSS_BASE}/usr/lib
|
||||||
|
LibraryExecutables=/usr/lib/qt5/libexec
|
||||||
|
Binaries=/usr/lib/qt5/bin
|
||||||
|
Tests=${XBPS_CROSS_BASE}/usr/tests
|
||||||
|
Plugins=/usr/lib/qt5/plugins
|
||||||
|
Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/imports
|
||||||
|
Qml2Imports=${XBPS_CROSS_BASE}/usr/lib/qt5/qml
|
||||||
|
Translations=${XBPS_CROSS_BASE}/usr/share/qt5/translations
|
||||||
|
Settings=${XBPS_CROSS_BASE}/etc/xdg
|
||||||
|
Examples=${XBPS_CROSS_BASE}/usr/share/qt5/examples
|
||||||
|
HostPrefix=/usr
|
||||||
|
HostData=/usr/lib/qt5
|
||||||
|
HostBinaries=/usr/lib/qt5/bin
|
||||||
|
HostLibraries=/usr/lib
|
||||||
|
Spec=linux-g++
|
||||||
|
TargetSpec=linux-g++
|
||||||
|
_EOF
|
||||||
|
|
||||||
|
# create the qmake-wrapper here because it only
|
||||||
|
# makes sense together with the qmake build-helper
|
||||||
|
# and not to interfere with e.g. the qmake build-style
|
||||||
|
cat > "${XBPS_WRAPPERDIR}/qmake" <<_EOF
|
||||||
|
#!/bin/sh
|
||||||
|
exec /usr/lib/qt5/bin/qmake "\$@" \
|
||||||
|
QMAKE_CC=$CC QMAKE_CXX=$CXX QMAKE_LINK=$CXX QMAKE_LINK_C=$CC \
|
||||||
|
QMAKE_CFLAGS+="${CFLAGS}" QMAKE_CXXFLAGS+="${CXXFLAGS}" \
|
||||||
|
QMAKE_LFLAGS+="${LDFLAGS}" \
|
||||||
|
-qtconf "${XBPS_WRAPPERDIR}/qt.conf"
|
||||||
|
_EOF
|
||||||
|
|
||||||
|
chmod 755 ${XBPS_WRAPPERDIR}/qmake
|
||||||
|
cp -p ${XBPS_WRAPPERDIR}/qmake{,-qt5}
|
||||||
|
fi
|
Loading…
Reference in a new issue