@@ -27,13 +27,23 @@ SDK=${SDK:-"/opt/friction"}
27
27
SRC=${SDK} /src
28
28
DIST=${DIST:- " /mnt" }
29
29
MKJOBS=${MKJOBS:- 32}
30
+ SRC_SUFFIX=tar.xz
30
31
31
- XKBCOMMON_V=0.7.1
32
32
QT_V=5.15.13
33
33
QSCINTILLA_V=2.14.1
34
34
PELF_V=0.17.0
35
35
CMAKE_V=3.26.3
36
36
37
+ XCB_V=1.17.0
38
+ XCB_UTIL_V=0.4.1
39
+ XCB_CURSOR_V=0.1.4
40
+ XCB_ERRORS_V=1.0.1
41
+ XCB_IMAGE_V=0.4.1
42
+ XCB_KEYSYMS_V=0.4.1
43
+ XCB_RENDERUTIL_V=0.3.10
44
+ XCB_WM_V=0.4.2
45
+ XKBCOMMON_V=0.8.4
46
+
37
47
NINJA_BIN=${SDK} /bin/ninja
38
48
CMAKE_BIN=${SDK} /bin/cmake
39
49
PELF_BIN=${SDK} /bin/patchelf
@@ -60,52 +70,141 @@ COMMON_CONFIGURE="--prefix=${SDK}"
60
70
SHARED_CONFIGURE=" ${COMMON_CONFIGURE} --enable-shared --disable-static"
61
71
STATIC_CONFIGURE=" ${COMMON_CONFIGURE} --disable-shared --enable-static"
62
72
DEFAULT_CONFIGURE=" ${SHARED_CONFIGURE} "
73
+ XCB_CONFIGURE=${DEFAULT_CONFIGURE}
63
74
64
75
# patchelf
65
76
if [ ! -f " ${PELF_BIN} " ]; then
66
77
cd ${SRC}
67
78
PELF_SRC=patchelf-${PELF_V}
68
79
rm -rf ${PELF_SRC} || true
69
- tar xf ${DIST} /${PELF_SRC} .tar.bz2
80
+ tar xf ${DIST} /linux/ ${PELF_SRC} .tar.bz2
70
81
cd ${PELF_SRC}
71
82
./configure ${COMMON_CONFIGURE}
72
83
make -j${MKJOBS}
73
84
make install
74
85
fi # patchelf
75
86
76
- # cmake
77
- if [ ! -f " ${CMAKE_BIN} " ]; then
87
+ # xcb
88
+ if [ ! -f " ${SDK} /lib/pkgconfig/xcb.pc" ]; then
89
+ # https://github.com/pypa/pip/issues/10219#issuecomment-888127061
90
+ export LANG=" en_US.UTF-8"
91
+ export LC_ALL=" en_US.UTF-8"
92
+ # proto
78
93
cd ${SRC}
79
- CMAKE_SRC=cmake- ${CMAKE_V }
80
- rm -rf ${CMAKE_SRC } || true
81
- tar xf ${DIST} /mxe/pkg/ ${CMAKE_SRC} .tar.gz
82
- cd ${CMAKE_SRC }
83
- ./configure ${COMMON_CONFIGURE} -- -DCMAKE_USE_OPENSSL=OFF
94
+ XCB_PROTO_SRC=xcb-proto- ${XCB_V }
95
+ rm -rf ${XCB_PROTO_SRC } || true
96
+ tar xf ${DIST} /x11/ ${XCB_PROTO_SRC} . ${SRC_SUFFIX}
97
+ cd ${XCB_PROTO_SRC }
98
+ ./configure ${XCB_CONFIGURE}
84
99
make -j${MKJOBS}
85
100
make install
86
- fi # cmake
101
+ mv ${SDK} /share/pkgconfig/* ${SDK} /lib/pkgconfig/
102
+ # lib
103
+ cd ${SRC}
104
+ XCB_SRC=libxcb-${XCB_V}
105
+ rm -rf ${XCB_SRC} || true
106
+ tar xf ${DIST} /x11/${XCB_SRC} .${SRC_SUFFIX}
107
+ cd ${XCB_SRC}
108
+ ./configure ${XCB_CONFIGURE}
109
+ make -j${MKJOBS}
110
+ make install
111
+ # util
112
+ cd ${SRC}
113
+ XCB_UTIL_SRC=xcb-util-${XCB_UTIL_V}
114
+ rm -rf ${XCB_UTIL_SRC} || true
115
+ tar xf ${DIST} /x11/${XCB_UTIL_SRC} .${SRC_SUFFIX}
116
+ cd ${XCB_UTIL_SRC}
117
+ ./configure ${XCB_CONFIGURE}
118
+ make -j${MKJOBS}
119
+ make install
120
+ # errors
121
+ cd ${SRC}
122
+ XCB_ERRORS_SRC=xcb-util-errors-${XCB_ERRORS_V}
123
+ rm -rf ${XCB_ERRORS_SRC} || true
124
+ tar xf ${DIST} /x11/${XCB_ERRORS_SRC} .${SRC_SUFFIX}
125
+ cd ${XCB_ERRORS_SRC}
126
+ ./configure ${XCB_CONFIGURE}
127
+ make -j${MKJOBS}
128
+ make install
129
+ # image
130
+ cd ${SRC}
131
+ XCB_IMAGE_SRC=xcb-util-image-${XCB_IMAGE_V}
132
+ rm -rf ${XCB_IMAGE_SRC} || true
133
+ tar xf ${DIST} /x11/${XCB_IMAGE_SRC} .${SRC_SUFFIX}
134
+ cd ${XCB_IMAGE_SRC}
135
+ ./configure ${XCB_CONFIGURE}
136
+ make -j${MKJOBS}
137
+ make install
138
+ # keysyms
139
+ cd ${SRC}
140
+ XCB_KEYSYMS_SRC=xcb-util-keysyms-${XCB_KEYSYMS_V}
141
+ rm -rf ${XCB_KEYSYMS_SRC} || true
142
+ tar xf ${DIST} /x11/${XCB_KEYSYMS_SRC} .${SRC_SUFFIX}
143
+ cd ${XCB_KEYSYMS_SRC}
144
+ ./configure ${XCB_CONFIGURE}
145
+ make -j${MKJOBS}
146
+ make install
147
+ # renderutil
148
+ cd ${SRC}
149
+ XCB_RENDERUTIL_SRC=xcb-util-renderutil-${XCB_RENDERUTIL_V}
150
+ rm -rf ${XCB_RENDERUTIL_SRC} || true
151
+ tar xf ${DIST} /x11/${XCB_RENDERUTIL_SRC} .${SRC_SUFFIX}
152
+ cd ${XCB_RENDERUTIL_SRC}
153
+ ./configure ${XCB_CONFIGURE}
154
+ make -j${MKJOBS}
155
+ make install
156
+ # cursor
157
+ cd ${SRC}
158
+ XCB_CURSOR_SRC=xcb-util-cursor-${XCB_CURSOR_V}
159
+ rm -rf ${XCB_CURSOR_SRC} || true
160
+ tar xf ${DIST} /x11/${XCB_CURSOR_SRC} .${SRC_SUFFIX}
161
+ cd ${XCB_CURSOR_SRC}
162
+ ./configure ${XCB_CONFIGURE}
163
+ make -j${MKJOBS}
164
+ make install
165
+ # wm
166
+ cd ${SRC}
167
+ XCB_WM_SRC=xcb-util-wm-${XCB_WM_V}
168
+ rm -rf ${XCB_WM_SRC} || true
169
+ tar xf ${DIST} /x11/${XCB_WM_SRC} .${SRC_SUFFIX}
170
+ cd ${XCB_WM_SRC}
171
+ ./configure ${XCB_CONFIGURE}
172
+ make -j${MKJOBS}
173
+ make install
174
+ fi # xcb
87
175
88
176
# libxkbcommon
89
177
if [ ! -f " ${SDK} /lib/pkgconfig/xkbcommon.pc" ]; then
90
178
cd ${SRC}
91
179
XKB_SRC=libxkbcommon-${XKBCOMMON_V}
92
180
rm -rf ${XKB_SRC} || true
93
- tar xf ${DIST} /${XKB_SRC} .tar.xz
181
+ tar xf ${DIST} /x11/ ${XKB_SRC} .${SRC_SUFFIX}
94
182
cd ${XKB_SRC}
95
183
./configure ${DEFAULT_CONFIGURE} --disable-docs
96
184
make -j${MKJOBS}
97
185
make install
98
186
fi # libxkbcommon
99
187
188
+ # cmake
189
+ if [ ! -f " ${CMAKE_BIN} " ]; then
190
+ cd ${SRC}
191
+ CMAKE_SRC=cmake-${CMAKE_V}
192
+ rm -rf ${CMAKE_SRC} || true
193
+ tar xf ${DIST} /mxe/pkg/${CMAKE_SRC} .tar.gz
194
+ cd ${CMAKE_SRC}
195
+ ./configure ${COMMON_CONFIGURE} --parallel=${MKJOBS} -- -DCMAKE_USE_OPENSSL=OFF
196
+ make -j${MKJOBS}
197
+ make install
198
+ fi # cmake
199
+
100
200
# qt
101
201
if [ ! -f " ${QMAKE_BIN} " ]; then
102
202
cd ${SRC}
103
203
QT_SRC=" qt-everywhere-src-${QT_V} "
104
204
QT_TAR_SRC=" qt-everywhere-opensource-src-${QT_V} "
105
205
rm -rf ${QT_SRC} || true
106
- tar xf ${DIST} /${QT_TAR_SRC} .tar.xz
206
+ tar xf ${DIST} /${QT_TAR_SRC} .${SRC_SUFFIX}
107
207
cd ${QT_SRC}
108
- # (cd qtbase ; patch -p1 < ${DIST}/hidpi.patch)
109
208
./configure \
110
209
-prefix ${SDK} \
111
210
-c++std c++17 \
0 commit comments