Skip to content
Merged

Qt #139

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions classes/qt6-base.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,20 +46,21 @@ buildSetup: |
packageSetup: |
qt6PackageDev()
{
cmakePackageDev "${1:-}" "/usr/plugins/***" "/usr/qml/***" \
"/usr/mkspecs/***" "/usr/metatypes/***"
cmakePackageDev "${1:-}" "${@:2}" "/usr/plugins/***" "/usr/qml/***" \
"/usr/mkspecs/***" "/usr/metatypes/***" \
"/usr/lib/objects-Bob/***"
}

qt6PackageLib()
{
cmakePackageLib "${1:-}" "/usr/plugins/***" "/usr/qml/***"
cmakePackageLib "${1:-}" "${@:2}" "/usr/plugins/***" "/usr/qml/***"
}

qt6PackageBin()
{
cmakePackageBin "${1:-}" "!/usr/doc" "!/usr/mkspecs" \
"!/usr/metatypes" "!/usr/modules" \
"!*objects-Bob*" "!*.prl"
cmakePackageBin "${1:-}" "${@:2}" "!/usr/doc" "!/usr/mkspecs" \
"!/usr/metatypes" "!/usr/modules" \
"!*objects-Bob*" "!*.prl"
}

qt6PackageTgt()
Expand Down
23 changes: 17 additions & 6 deletions classes/qt6-tools.yaml
Original file line number Diff line number Diff line change
@@ -1,16 +1,27 @@
inherit: [qt6-base]

environment:
# for the tools always use the host Qt6 configuration
QT6_BASE_HOST_BUILD: '1'

depends:
# all tools need at least qt6 core + the core tools
- libs::qt6-base-dev

- use: []
depends:
- libs::qt6-base-tgt

# depend on the host tools build
- name: libs::qt6-base-tools
tools:
target-toolchain: host-native-toolchain
use: [tools]

buildTools: [qt6-base-tools]

packageScript: |
# We have to package everything for the tools, including cmake
# configs, ... files.
cmakePackageDev
cmakePackageBin
qt6PackageBin
# We have to supply more than just the bins:
# 1. The tools itself are found by Qt with the corresponding cmake
# files.
# 2. Some tools provide libs other tools may want to link against.
installCopy "${_CMAKE_BUILD_PATH}/install/" "/usr/" "/usr/lib/***" "!*"
207 changes: 115 additions & 92 deletions recipes/libs/qt6-base.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,61 @@ metaEnvironment:
GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception (tools), GFDL-1.3 (docs),
Apache-2.0, BSD-3-Clause, BSL-1.0, MIT

Config:
QT6_BASE_HOST_BUILD:
type: bool
default: False
help: "Host tools build with reduced dependencies"

privateEnvironment:
HOST_CONF: >-
-DFEATURE_network=ON
-DFEATURE_xml=ON
-DFEATURE_gui=ON
-DFEATURE_concurrent=ON
-DFEATURE_freetype=OFF
-DFEATURE_vulkan=OFF
-DFEATURE_linuxfb=OFF
-DFEATURE_xcb=OFF
-DFEATURE_opengl=OFF -DINPUT_opengl=no
-DFEATURE_harfbuzz=OFF
-DFEATURE_png=OFF
-DFEATURE_gif=OFF
-DFEATURE_jpeg=OFF
-DFEATURE_printsupport=OFF
-DFEATURE_kms=OFF
-DFEATURE_fontconfig=OFF
-DFEATURE_widgets=OFF
-DFEATURE_libinput=OFF
-DFEATURE_tslib=OFF
-DFEATURE_eglfs=OFF
-DFEATURE_sql=OFF
-DFEATURE_testlib=OFF
-DFEATURE_dbus=OFF
-DFEATURE_icu=OFF
-DFEATURE_glib=OFF
-DFEATURE_force_bundled_libs=ON
DEFAULT_CONF: >-
-DFEATURE_opengl=ON
-DFEATURE_opengles2=ON
-DFEATURE_opengl_desktop=OFF
-DFEATURE_gui=ON
-DFEATURE_kms=ON
-DFEATURE_libinput=ON
-DFEATURE_freetype=ON
-DFEATURE_xml=ON
-DFEATURE_network=ON
-DFEATURE_concurrent=ON
-DFEATURE_printsupport=OFF
-DFEATURE_directfb=OFF
-DFEATURE_vnc=OFF
-DFEATURE_sql=OFF
-DFEATURE_testlib=OFF
-DFEATURE_dbus=OFF
-DFEATURE_icu=OFF
-DFEATURE_force_system_libs=ON
-DQT_QPA_DEFAULT_PLATFORM=eglfs

checkoutSCM:
scm: url
url: ${QT6_MIRROR}/qtbase-everywhere-src-${PKG_VERSION}.tar.xz
Expand All @@ -15,39 +70,44 @@ checkoutSCM:
multiPackage:
"":
depends:
- libs::zlib-dev
- libs::pcre2-dev
- libs::libb2-dev
- libs::glib-dev
- libs::libpng-dev
- virtual::libs::libjpeg-dev
- libs::freetype-dev
- libs::fontconfig-dev
- libs::harfbuzz-dev
- libs::double-conversion-dev
- libs::openssl-dev
- virtual::libs::libdrm-dev
- virtual::libs::libegl-dev
- virtual::libs::libgles-dev

- use: []
- if: !expr >
!"${QT6_BASE_HOST_BUILD}"
depends:
- libs::libc-openmp-tgt
- libs::libc-stdc++-tgt
- libs::zlib-tgt
- libs::pcre2-tgt
- libs::libb2-tgt
- libs::glib-tgt
- libs::libpng-tgt
- virtual::libs::libjpeg-tgt
- libs::freetype-tgt
- libs::fontconfig-tgt
- libs::harfbuzz-tgt
- libs::double-conversion-tgt
- libs::openssl-tgt
- virtual::libs::libdrm-tgt
- virtual::libs::libegl-tgt
- virtual::libs::libgles-tgt
- libs::zlib-dev
- libs::pcre2-dev
- libs::libb2-dev
- libs::glib-dev
- libs::libinput-dev
- libs::libpng-dev
- virtual::libs::libjpeg-dev
- libs::freetype-dev
- libs::fontconfig-dev
- libs::harfbuzz-dev
- libs::double-conversion-dev
- libs::openssl-dev
- virtual::libs::libdrm-dev
- virtual::libs::libegl-dev
- virtual::libs::libgles-dev

- use: []
depends:
- libs::libc-openmp-tgt
- libs::libc-stdc++-tgt
- libs::zlib-tgt
- libs::pcre2-tgt
- libs::libb2-tgt
- libs::glib-tgt
- libs::libinput-tgt
- libs::libpng-tgt
- virtual::libs::libjpeg-tgt
- libs::freetype-tgt
- libs::fontconfig-tgt
- libs::harfbuzz-tgt
- libs::double-conversion-tgt
- libs::openssl-tgt
- virtual::libs::libdrm-tgt
- virtual::libs::libegl-tgt
- virtual::libs::libgles-tgt

# depend on our self for the host tools build
- name: libs::qt6-base-tools
Expand All @@ -56,83 +116,46 @@ multiPackage:
use: [tools]

buildTools: [qt6-base-tools]
buildVars: [QT6_BASE_HOST_BUILD, HOST_CONF, DEFAULT_CONF]
buildScript: |
qt6Build $1 \
-DQT_HOST_PATH=${BOB_TOOL_PATHS[qt6-base-tools]}/.. \
-DFEATURE_opengl=ON \
-DFEATURE_opengles2=ON \
-DFEATURE_opengl_desktop=OFF \
-DFEATURE_gui=ON \
-DFEATURE_kms=ON \
-DFEATURE_xml=ON \
-DFEATURE_network=ON \
-DFEATURE_concurrent=ON \
-DFEATURE_directfb=OFF \
-DFEATURE_vnc=OFF \
-DFEATURE_sql=OFF \
-DFEATURE_testlib=OFF \
-DFEATURE_dbus=OFF \
-DFEATURE_icu=OFF \
-DFEATURE_force_system_libs=ON \
-DQT_QPA_DEFAULT_PLATFORM=eglfs
if [[ ${QT6_BASE_HOST_BUILD} -eq 1 ]] ; then
qt6Build $1 \
${HOST_CONF}
else
qt6Build $1 \
-DQT_HOST_PATH=${BOB_TOOL_PATHS[qt6-base-tools]}/.. \
${DEFAULT_CONF}
fi

multiPackage:
# We are not supporting building Qt6 apps on the target right now.
# The Qt6 tools build here seem to refer build paths which do not
# exist on the target. Needs investigation if required later.
# "":
# depends:
# - name: libs::qt6-base-tgt
# use: []
# packageScript: qt6PackageBin
# provideDeps: [ "*-tgt" ]

dev:
packageScript: qt6PackageDev
packageScript: |
qt6PackageDev
# we also need to install the bins even if they are not
# used; Qt's cmake files to refer to them and the build
# fails if they are missing
qt6PackageBin
provideDeps: [ "*-dev" ]

tgt:
packageScript: qt6PackageLib
packageScript: |
qt6PackageLib
provideDeps: [ "*-tgt" ]

tools:
buildVars: [HOST_CONF]
buildScript: |
# Unfortunately have we to turn on a lot of stuff (even GUI!) for
# the host build. Lots of depending host tools from other Qt
# packages are written in Qt and depend on this.
qt6Build $1 \
-DFEATURE_network=ON \
-DFEATURE_xml=ON \
-DFEATURE_gui=ON \
-DFEATURE_freetype=OFF \
-DFEATURE_vulkan=OFF \
-DFEATURE_linuxfb=ON \
-DFEATURE_xcb=OFF \
-DFEATURE_opengl=OFF -DINPUT_opengl=no \
-DFEATURE_harfbuzz=OFF \
-DFEATURE_png=OFF \
-DFEATURE_gif=OFF \
-DFEATURE_jpeg=OFF \
-DFEATURE_printsupport=OFF \
-DFEATURE_kms=OFF \
-DFEATURE_fontconfig=OFF \
-DFEATURE_widgets=OFF \
-DFEATURE_libinput=OFF \
-DFEATURE_tslib=OFF \
-DFEATURE_eglfs=OFF \
-DFEATURE_concurrent=OFF \
-DFEATURE_sql=OFF \
-DFEATURE_testlib=OFF \
-DFEATURE_dbus=OFF \
-DFEATURE_icu=OFF \
-DFEATURE_glib=OFF \
-DFEATURE_force_bundled_libs=ON
${HOST_CONF}

packageScript: |
# We have to package everything for the tools, including cmake
# configs, ... files.
cmakePackageDev
cmakePackageBin
# We have to supply more than just the bins:
# 1. The tools itself are found by Qt with the corresponding cmake
# files
qt6PackageBin "" "/usr/lib/cmake/***"

provideTools:
qt6-base-tools: "usr/bin"
20 changes: 9 additions & 11 deletions recipes/libs/qt6-declarative.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,12 @@ multiPackage:
inherit: [qt6]
depends:
- libs::qt6-shadertools-dev
- libs::qt6-svg-dev

- use: []
depends:
- libs::qt6-shadertools-tgt
- libs::qt6-svg-tgt

# depend on our self for the host tools build
- tools:
Expand All @@ -35,21 +37,11 @@ multiPackage:
- libs::qt6-declarative-tools

buildToolsWeak: [python3]
buildTools: [qt6-declarative-tools, qt6-shadertools-tools]
buildTools: [qt6-shadertools-tools, qt6-declarative-tools]
buildScript: |
qt6Build $1

multiPackage:
# We are not supporting building Qt6 apps on the target right now.
# The Qt6 tools build here seem to refer build paths which do not
# exist on the target. Needs investigation if required later.
# "":
# depends:
# - name: libs::qt6-declarative-tgt
# use: []
# packageScript: qt6PackageBin
# provideDeps: [ "*-tgt" ]

dev:
packageScript: qt6PackageDev
provideDeps: [ "*-dev" ]
Expand All @@ -61,6 +53,12 @@ multiPackage:
tools:
inherit: [qt6-tools]
depends:
- libs::qt6-svg-dev

- use: []
depends:
- libs::qt6-svg-tgt

- name: libs::qt6-shadertools-tools
use: [tools]

Expand Down
4 changes: 1 addition & 3 deletions recipes/libs/qt6-shadertools.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ multiPackage:
inherit: [qt6-tools]
buildScript: |
# tools only version usually used for building
qt6Build $1 \
-DFEATURE_wayland_client=OFF \
-DFEATURE_wayland_server=OFF
qt6Build $1

provideTools:
qt6-shadertools-tools: "usr/bin"