Skip to content

Commit 819d567

Browse files
authored
Merge pull request BobBuildTool#139 from sixtyfourktec/qt
Qt
2 parents ecceb80 + 4f4a8d9 commit 819d567

5 files changed

Lines changed: 149 additions & 118 deletions

File tree

classes/qt6-base.yaml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,21 @@ buildSetup: |
4646
packageSetup: |
4747
qt6PackageDev()
4848
{
49-
cmakePackageDev "${1:-}" "/usr/plugins/***" "/usr/qml/***" \
50-
"/usr/mkspecs/***" "/usr/metatypes/***"
49+
cmakePackageDev "${1:-}" "${@:2}" "/usr/plugins/***" "/usr/qml/***" \
50+
"/usr/mkspecs/***" "/usr/metatypes/***" \
51+
"/usr/lib/objects-Bob/***"
5152
}
5253
5354
qt6PackageLib()
5455
{
55-
cmakePackageLib "${1:-}" "/usr/plugins/***" "/usr/qml/***"
56+
cmakePackageLib "${1:-}" "${@:2}" "/usr/plugins/***" "/usr/qml/***"
5657
}
5758
5859
qt6PackageBin()
5960
{
60-
cmakePackageBin "${1:-}" "!/usr/doc" "!/usr/mkspecs" \
61-
"!/usr/metatypes" "!/usr/modules" \
62-
"!*objects-Bob*" "!*.prl"
61+
cmakePackageBin "${1:-}" "${@:2}" "!/usr/doc" "!/usr/mkspecs" \
62+
"!/usr/metatypes" "!/usr/modules" \
63+
"!*objects-Bob*" "!*.prl"
6364
}
6465
6566
qt6PackageTgt()

classes/qt6-tools.yaml

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,27 @@
11
inherit: [qt6-base]
22

3+
environment:
4+
# for the tools always use the host Qt6 configuration
5+
QT6_BASE_HOST_BUILD: '1'
6+
37
depends:
8+
# all tools need at least qt6 core + the core tools
9+
- libs::qt6-base-dev
10+
11+
- use: []
12+
depends:
13+
- libs::qt6-base-tgt
14+
415
# depend on the host tools build
516
- name: libs::qt6-base-tools
6-
tools:
7-
target-toolchain: host-native-toolchain
817
use: [tools]
918

1019
buildTools: [qt6-base-tools]
1120

1221
packageScript: |
13-
# We have to package everything for the tools, including cmake
14-
# configs, ... files.
15-
cmakePackageDev
16-
cmakePackageBin
22+
qt6PackageBin
23+
# We have to supply more than just the bins:
24+
# 1. The tools itself are found by Qt with the corresponding cmake
25+
# files.
26+
# 2. Some tools provide libs other tools may want to link against.
27+
installCopy "${_CMAKE_BUILD_PATH}/install/" "/usr/" "/usr/lib/***" "!*"

recipes/libs/qt6-base.yaml

Lines changed: 115 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,61 @@ metaEnvironment:
66
GPL-2.0+ or LGPL-3.0, GPL-3.0 with exception (tools), GFDL-1.3 (docs),
77
Apache-2.0, BSD-3-Clause, BSL-1.0, MIT
88
9+
Config:
10+
QT6_BASE_HOST_BUILD:
11+
type: bool
12+
default: False
13+
help: "Host tools build with reduced dependencies"
14+
15+
privateEnvironment:
16+
HOST_CONF: >-
17+
-DFEATURE_network=ON
18+
-DFEATURE_xml=ON
19+
-DFEATURE_gui=ON
20+
-DFEATURE_concurrent=ON
21+
-DFEATURE_freetype=OFF
22+
-DFEATURE_vulkan=OFF
23+
-DFEATURE_linuxfb=OFF
24+
-DFEATURE_xcb=OFF
25+
-DFEATURE_opengl=OFF -DINPUT_opengl=no
26+
-DFEATURE_harfbuzz=OFF
27+
-DFEATURE_png=OFF
28+
-DFEATURE_gif=OFF
29+
-DFEATURE_jpeg=OFF
30+
-DFEATURE_printsupport=OFF
31+
-DFEATURE_kms=OFF
32+
-DFEATURE_fontconfig=OFF
33+
-DFEATURE_widgets=OFF
34+
-DFEATURE_libinput=OFF
35+
-DFEATURE_tslib=OFF
36+
-DFEATURE_eglfs=OFF
37+
-DFEATURE_sql=OFF
38+
-DFEATURE_testlib=OFF
39+
-DFEATURE_dbus=OFF
40+
-DFEATURE_icu=OFF
41+
-DFEATURE_glib=OFF
42+
-DFEATURE_force_bundled_libs=ON
43+
DEFAULT_CONF: >-
44+
-DFEATURE_opengl=ON
45+
-DFEATURE_opengles2=ON
46+
-DFEATURE_opengl_desktop=OFF
47+
-DFEATURE_gui=ON
48+
-DFEATURE_kms=ON
49+
-DFEATURE_libinput=ON
50+
-DFEATURE_freetype=ON
51+
-DFEATURE_xml=ON
52+
-DFEATURE_network=ON
53+
-DFEATURE_concurrent=ON
54+
-DFEATURE_printsupport=OFF
55+
-DFEATURE_directfb=OFF
56+
-DFEATURE_vnc=OFF
57+
-DFEATURE_sql=OFF
58+
-DFEATURE_testlib=OFF
59+
-DFEATURE_dbus=OFF
60+
-DFEATURE_icu=OFF
61+
-DFEATURE_force_system_libs=ON
62+
-DQT_QPA_DEFAULT_PLATFORM=eglfs
63+
964
checkoutSCM:
1065
scm: url
1166
url: ${QT6_MIRROR}/qtbase-everywhere-src-${PKG_VERSION}.tar.xz
@@ -15,39 +70,44 @@ checkoutSCM:
1570
multiPackage:
1671
"":
1772
depends:
18-
- libs::zlib-dev
19-
- libs::pcre2-dev
20-
- libs::libb2-dev
21-
- libs::glib-dev
22-
- libs::libpng-dev
23-
- virtual::libs::libjpeg-dev
24-
- libs::freetype-dev
25-
- libs::fontconfig-dev
26-
- libs::harfbuzz-dev
27-
- libs::double-conversion-dev
28-
- libs::openssl-dev
29-
- virtual::libs::libdrm-dev
30-
- virtual::libs::libegl-dev
31-
- virtual::libs::libgles-dev
32-
33-
- use: []
73+
- if: !expr >
74+
!"${QT6_BASE_HOST_BUILD}"
3475
depends:
35-
- libs::libc-openmp-tgt
36-
- libs::libc-stdc++-tgt
37-
- libs::zlib-tgt
38-
- libs::pcre2-tgt
39-
- libs::libb2-tgt
40-
- libs::glib-tgt
41-
- libs::libpng-tgt
42-
- virtual::libs::libjpeg-tgt
43-
- libs::freetype-tgt
44-
- libs::fontconfig-tgt
45-
- libs::harfbuzz-tgt
46-
- libs::double-conversion-tgt
47-
- libs::openssl-tgt
48-
- virtual::libs::libdrm-tgt
49-
- virtual::libs::libegl-tgt
50-
- virtual::libs::libgles-tgt
76+
- libs::zlib-dev
77+
- libs::pcre2-dev
78+
- libs::libb2-dev
79+
- libs::glib-dev
80+
- libs::libinput-dev
81+
- libs::libpng-dev
82+
- virtual::libs::libjpeg-dev
83+
- libs::freetype-dev
84+
- libs::fontconfig-dev
85+
- libs::harfbuzz-dev
86+
- libs::double-conversion-dev
87+
- libs::openssl-dev
88+
- virtual::libs::libdrm-dev
89+
- virtual::libs::libegl-dev
90+
- virtual::libs::libgles-dev
91+
92+
- use: []
93+
depends:
94+
- libs::libc-openmp-tgt
95+
- libs::libc-stdc++-tgt
96+
- libs::zlib-tgt
97+
- libs::pcre2-tgt
98+
- libs::libb2-tgt
99+
- libs::glib-tgt
100+
- libs::libinput-tgt
101+
- libs::libpng-tgt
102+
- virtual::libs::libjpeg-tgt
103+
- libs::freetype-tgt
104+
- libs::fontconfig-tgt
105+
- libs::harfbuzz-tgt
106+
- libs::double-conversion-tgt
107+
- libs::openssl-tgt
108+
- virtual::libs::libdrm-tgt
109+
- virtual::libs::libegl-tgt
110+
- virtual::libs::libgles-tgt
51111
52112
# depend on our self for the host tools build
53113
- name: libs::qt6-base-tools
@@ -56,83 +116,46 @@ multiPackage:
56116
use: [tools]
57117

58118
buildTools: [qt6-base-tools]
119+
buildVars: [QT6_BASE_HOST_BUILD, HOST_CONF, DEFAULT_CONF]
59120
buildScript: |
60-
qt6Build $1 \
61-
-DQT_HOST_PATH=${BOB_TOOL_PATHS[qt6-base-tools]}/.. \
62-
-DFEATURE_opengl=ON \
63-
-DFEATURE_opengles2=ON \
64-
-DFEATURE_opengl_desktop=OFF \
65-
-DFEATURE_gui=ON \
66-
-DFEATURE_kms=ON \
67-
-DFEATURE_xml=ON \
68-
-DFEATURE_network=ON \
69-
-DFEATURE_concurrent=ON \
70-
-DFEATURE_directfb=OFF \
71-
-DFEATURE_vnc=OFF \
72-
-DFEATURE_sql=OFF \
73-
-DFEATURE_testlib=OFF \
74-
-DFEATURE_dbus=OFF \
75-
-DFEATURE_icu=OFF \
76-
-DFEATURE_force_system_libs=ON \
77-
-DQT_QPA_DEFAULT_PLATFORM=eglfs
121+
if [[ ${QT6_BASE_HOST_BUILD} -eq 1 ]] ; then
122+
qt6Build $1 \
123+
${HOST_CONF}
124+
else
125+
qt6Build $1 \
126+
-DQT_HOST_PATH=${BOB_TOOL_PATHS[qt6-base-tools]}/.. \
127+
${DEFAULT_CONF}
128+
fi
78129
79130
multiPackage:
80-
# We are not supporting building Qt6 apps on the target right now.
81-
# The Qt6 tools build here seem to refer build paths which do not
82-
# exist on the target. Needs investigation if required later.
83-
# "":
84-
# depends:
85-
# - name: libs::qt6-base-tgt
86-
# use: []
87-
# packageScript: qt6PackageBin
88-
# provideDeps: [ "*-tgt" ]
89-
90131
dev:
91-
packageScript: qt6PackageDev
132+
packageScript: |
133+
qt6PackageDev
134+
# we also need to install the bins even if they are not
135+
# used; Qt's cmake files to refer to them and the build
136+
# fails if they are missing
137+
qt6PackageBin
92138
provideDeps: [ "*-dev" ]
93139

94140
tgt:
95-
packageScript: qt6PackageLib
141+
packageScript: |
142+
qt6PackageLib
96143
provideDeps: [ "*-tgt" ]
97144

98145
tools:
146+
buildVars: [HOST_CONF]
99147
buildScript: |
100148
# Unfortunately have we to turn on a lot of stuff (even GUI!) for
101149
# the host build. Lots of depending host tools from other Qt
102150
# packages are written in Qt and depend on this.
103151
qt6Build $1 \
104-
-DFEATURE_network=ON \
105-
-DFEATURE_xml=ON \
106-
-DFEATURE_gui=ON \
107-
-DFEATURE_freetype=OFF \
108-
-DFEATURE_vulkan=OFF \
109-
-DFEATURE_linuxfb=ON \
110-
-DFEATURE_xcb=OFF \
111-
-DFEATURE_opengl=OFF -DINPUT_opengl=no \
112-
-DFEATURE_harfbuzz=OFF \
113-
-DFEATURE_png=OFF \
114-
-DFEATURE_gif=OFF \
115-
-DFEATURE_jpeg=OFF \
116-
-DFEATURE_printsupport=OFF \
117-
-DFEATURE_kms=OFF \
118-
-DFEATURE_fontconfig=OFF \
119-
-DFEATURE_widgets=OFF \
120-
-DFEATURE_libinput=OFF \
121-
-DFEATURE_tslib=OFF \
122-
-DFEATURE_eglfs=OFF \
123-
-DFEATURE_concurrent=OFF \
124-
-DFEATURE_sql=OFF \
125-
-DFEATURE_testlib=OFF \
126-
-DFEATURE_dbus=OFF \
127-
-DFEATURE_icu=OFF \
128-
-DFEATURE_glib=OFF \
129-
-DFEATURE_force_bundled_libs=ON
152+
${HOST_CONF}
130153
131154
packageScript: |
132-
# We have to package everything for the tools, including cmake
133-
# configs, ... files.
134-
cmakePackageDev
135-
cmakePackageBin
155+
# We have to supply more than just the bins:
156+
# 1. The tools itself are found by Qt with the corresponding cmake
157+
# files
158+
qt6PackageBin "" "/usr/lib/cmake/***"
136159
137160
provideTools:
138161
qt6-base-tools: "usr/bin"

recipes/libs/qt6-declarative.yaml

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@ multiPackage:
2121
inherit: [qt6]
2222
depends:
2323
- libs::qt6-shadertools-dev
24+
- libs::qt6-svg-dev
2425

2526
- use: []
2627
depends:
2728
- libs::qt6-shadertools-tgt
29+
- libs::qt6-svg-tgt
2830

2931
# depend on our self for the host tools build
3032
- tools:
@@ -35,21 +37,11 @@ multiPackage:
3537
- libs::qt6-declarative-tools
3638

3739
buildToolsWeak: [python3]
38-
buildTools: [qt6-declarative-tools, qt6-shadertools-tools]
40+
buildTools: [qt6-shadertools-tools, qt6-declarative-tools]
3941
buildScript: |
4042
qt6Build $1
4143
4244
multiPackage:
43-
# We are not supporting building Qt6 apps on the target right now.
44-
# The Qt6 tools build here seem to refer build paths which do not
45-
# exist on the target. Needs investigation if required later.
46-
# "":
47-
# depends:
48-
# - name: libs::qt6-declarative-tgt
49-
# use: []
50-
# packageScript: qt6PackageBin
51-
# provideDeps: [ "*-tgt" ]
52-
5345
dev:
5446
packageScript: qt6PackageDev
5547
provideDeps: [ "*-dev" ]
@@ -61,6 +53,12 @@ multiPackage:
6153
tools:
6254
inherit: [qt6-tools]
6355
depends:
56+
- libs::qt6-svg-dev
57+
58+
- use: []
59+
depends:
60+
- libs::qt6-svg-tgt
61+
6462
- name: libs::qt6-shadertools-tools
6563
use: [tools]
6664

recipes/libs/qt6-shadertools.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,7 @@ multiPackage:
3737
inherit: [qt6-tools]
3838
buildScript: |
3939
# tools only version usually used for building
40-
qt6Build $1 \
41-
-DFEATURE_wayland_client=OFF \
42-
-DFEATURE_wayland_server=OFF
40+
qt6Build $1
4341
4442
provideTools:
4543
qt6-shadertools-tools: "usr/bin"

0 commit comments

Comments
 (0)