Skip to content

Commit 5e21701

Browse files
committed
[ci][linux] build client and manager for arm64
Signed-off-by: Vitalii Koshura <[email protected]>
1 parent bb300e7 commit 5e21701

33 files changed

+1429
-96
lines changed

.github/workflows/linux.yml

Lines changed: 65 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,28 @@ jobs:
4040
runs-on: ubuntu-latest
4141
strategy:
4242
matrix:
43-
type: [libs, client, apps, manager, libs-vcpkg, client-vcpkg, apps-vcpkg, libs-cmake, libs-arm64, apps-arm64, libs-vcpkg-arm64, apps-vcpkg-arm64, manager-with-webview-vcpkg, server, manager-with-webview, manager-without-webview, unit-test, integration-test, coverity]
43+
type:
44+
- apps
45+
- apps-arm64
46+
- apps-vcpkg
47+
- apps-vcpkg-arm64
48+
- client
49+
- client-vcpkg
50+
- client-vcpkg-arm64
51+
- coverity
52+
- integration-test
53+
- libs
54+
- libs-arm64
55+
- libs-cmake
56+
- libs-vcpkg
57+
- libs-vcpkg-arm64
58+
- manager
59+
- manager-with-webview
60+
- manager-with-webview-vcpkg
61+
- manager-with-webview-vcpkg-arm64
62+
- manager-without-webview
63+
- server
64+
- unit-test
4465
fail-fast: false
4566
steps:
4667
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
@@ -110,6 +131,13 @@ jobs:
110131
libssl-dev:arm64 \
111132
libzip-dev:arm64
112133
134+
- name: Install dependencies for client and manager arm64 vcpkg
135+
if: success() && matrix.type == 'manager-with-webview-vcpkg-arm64'
136+
run: |
137+
sudo apt install -y \
138+
libltdl-dev:arm64 \
139+
python3-jinja2
140+
113141
- name: Install dependencies for unit testing
114142
if: success() && matrix.type == 'unit-test'
115143
run: |
@@ -148,55 +176,55 @@ jobs:
148176
if: success() && matrix.type == 'libs'
149177
run: |
150178
./configure --disable-server --disable-client --disable-manager --enable-boinczip
151-
make
179+
make -j $(nproc --all)
152180
153181
- name: Build client
154182
if: success() && matrix.type == 'client'
155183
run: |
156184
./configure --disable-server --enable-client --disable-manager
157-
make
185+
make -j $(nproc --all)
158186
159187
- name: Build apps
160188
if: success() && matrix.type == 'apps'
161189
run: |
162190
./configure --enable-apps --enable-apps-vbox --enable-apps-gui --disable-server --disable-client --disable-manager
163-
make
191+
make -j $(nproc --all)
164192
165193
- name: Build manager
166194
if: success() && matrix.type == 'manager'
167195
run: |
168196
./configure --disable-server --disable-client --enable-manager
169-
make
197+
make -j $(nproc --all)
170198
171199
- name: Build libs with vcpkg
172200
if: success() && matrix.type == 'libs-vcpkg'
173201
run: |
174-
linux/ci_configure_libs.sh
175-
make
202+
. ./linux/ci_configure_libs.sh
203+
make -j $(nproc --all)
176204
177205
- name: Build client with vcpkg
178206
if: success() && matrix.type == 'client-vcpkg'
179207
run: |
180-
linux/ci_configure_client.sh
181-
make
208+
. ./linux/ci_configure_client.sh
209+
make -j $(nproc --all)
182210
183211
- name: Build apps with vcpkg
184212
if: success() && matrix.type == 'apps-vcpkg'
185213
run: |
186-
linux/ci_configure_apps.sh
187-
make
214+
. ./linux/ci_configure_apps.sh
215+
make -j $(nproc --all)
188216
189217
- name: Build libs with cmake vcpkg
190218
if: success() && matrix.type == 'libs-cmake'
191219
run: |
192-
linux/ci_configure_libs_cmake.sh
220+
. ./linux/ci_configure_libs_cmake.sh
193221
cmake --build build
194222
195223
- name: Build manager with webview and vcpkg
196224
if: success() && matrix.type == 'manager-with-webview-vcpkg'
197225
run: |
198-
linux/ci_configure_manager.sh
199-
make
226+
. ./linux/ci_configure_manager.sh
227+
make -j $(nproc --all)
200228
201229
- name: Build server
202230
if: success() && matrix.type == 'server'
@@ -209,14 +237,14 @@ jobs:
209237
run: |
210238
./3rdParty/buildLinuxDependencies.sh
211239
./configure --disable-server --disable-client --with-wx-prefix=${GITHUB_WORKSPACE}/3rdParty/buildCache/linux
212-
make
240+
make -j $(nproc --all)
213241
214242
- name: Build manager without webview
215243
if: success() && matrix.type == 'manager-without-webview'
216244
run: |
217245
./3rdParty/buildLinuxDependencies.sh --disable-webview
218246
./configure --disable-server --disable-client --with-wx-prefix=${GITHUB_WORKSPACE}/3rdParty/buildCache/linux
219-
make
247+
make -j $(nproc --all)
220248
221249
- name: Build server for unit testing
222250
if: success() && matrix.type == 'unit-test'
@@ -227,26 +255,26 @@ jobs:
227255
- name: Build libraries for arm64 with vcpkg
228256
if: success() && matrix.type == 'libs-vcpkg-arm64'
229257
run: |
230-
export CC=aarch64-linux-gnu-gcc
231-
export CXX=aarch64-linux-gnu-g++
232-
BUILD_DIR="$PWD/3rdParty/linux"
233-
VCPKG_ROOT="$BUILD_DIR/vcpkg"
234-
export VCPKG_DIR="$VCPKG_ROOT/installed/arm64-linux-release"
235-
export CPPFLAGS="-I$VCPKG_DIR/include -I$VCPKG_DIR/include/"
236-
./linux/arm64/ci_configure_libs.sh
237-
make
258+
. ./linux/arm64/ci_configure_libs.sh
259+
make -j $(nproc --all)
238260
239261
- name: Build apps for arm64 with vcpkg
240262
if: success() && matrix.type == 'apps-vcpkg-arm64'
241263
run: |
242-
export CC=aarch64-linux-gnu-gcc
243-
export CXX=aarch64-linux-gnu-g++
244-
BUILD_DIR="$PWD/3rdParty/linux"
245-
VCPKG_ROOT="$BUILD_DIR/vcpkg"
246-
export VCPKG_DIR="$VCPKG_ROOT/installed/arm64-linux-release"
247-
export CPPFLAGS="-I$VCPKG_DIR/include -I$VCPKG_DIR/include/"
248-
./linux/arm64/ci_configure_apps.sh
249-
make
264+
. ./linux/arm64/ci_configure_apps.sh
265+
make -j $(nproc --all)
266+
267+
- name: Build client for arm64 with vcpkg
268+
if: success() && matrix.type == 'client-vcpkg-arm64'
269+
run: |
270+
. ./linux/arm64/ci_configure_client.sh
271+
make -j $(nproc --all)
272+
273+
- name: Build manager with webview for arm64 with vcpkg
274+
if: success() && matrix.type == 'manager-with-webview-vcpkg-arm64'
275+
run: |
276+
. ./linux/arm64/ci_configure_manager.sh
277+
make -j $(nproc --all)
250278
251279
- name: Build libraries for arm64
252280
if: success() && matrix.type == 'libs-arm64'
@@ -260,7 +288,7 @@ jobs:
260288
export RELEASE_ARCH=arm64
261289
export PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig
262290
./configure --host=aarch64-linux --with-boinc-platform="aarch64-unknown-linux-gnu" --with-boinc-alt-platform="arm-unknown-linux-gnueabihf" --enable-boinczip --disable-server --disable-manager --disable-client --disable-shared --enable-static
263-
make
291+
make -j $(nproc --all)
264292
265293
- name: Build apps for arm64
266294
if: success() && matrix.type == 'apps-arm64'
@@ -274,7 +302,7 @@ jobs:
274302
export RELEASE_ARCH=arm64
275303
export PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig
276304
./configure --host=aarch64-linux --with-boinc-platform="aarch64-unknown-linux-gnu" --with-boinc-alt-platform="arm-unknown-linux-gnueabihf" --enable-apps --disable-server --disable-manager --disable-client --disable-shared --enable-static
277-
make
305+
make -j $(nproc --all)
278306
279307
- name: Prepare for coverity scan
280308
if: success() && matrix.type == 'coverity' && github.ref == 'refs/heads/master' && github.event_name == 'schedule'
@@ -392,7 +420,7 @@ jobs:
392420
export LDFLAGS="-static-libstdc++ -s"
393421
export RELEASE_ARCH=x86_64
394422
./configure --enable-apps --enable-apps-vbox --disable-server --disable-client --disable-manager --disable-shared --enable-static
395-
make
423+
make -j $(nproc --all)
396424
397425
- name: Make x86 apps
398426
if: success() && matrix.type == 'apps-x86'
@@ -402,7 +430,7 @@ jobs:
402430
export LDFLAGS="-static-libstdc++ -s -m32"
403431
export RELEASE_ARCH=i686
404432
./configure --host=i686-linux-gnu --enable-apps --enable-apps-vbox --disable-server --disable-client --disable-manager --disable-shared --enable-static
405-
make
433+
make -j $(nproc --all)
406434
407435
- name: Make arm64 apps
408436
if: success() && matrix.type == 'apps-arm64'
@@ -416,7 +444,7 @@ jobs:
416444
export RELEASE_ARCH=arm64
417445
export PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig
418446
./configure --host=aarch64-linux --with-boinc-platform="aarch64-unknown-linux-gnu" --with-boinc-alt-platform="arm-unknown-linux-gnueabihf" --enable-apps --disable-server --disable-manager --disable-client --disable-shared --enable-static
419-
make
447+
make -j $(nproc --all)
420448
421449
- name: Prepare logs on failure
422450
if: ${{ failure() }}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
if(VCPKG_TARGET_IS_LINUX)
2+
message(STATUS "${PORT} currently requires the following libraries from the system package manager:\n libxi-dev\n libxtst-dev\n\nThese can be installed on Ubuntu systems via apt-get install libxi-dev libxtst-dev")
3+
endif()
4+
5+
vcpkg_from_gitlab(
6+
OUT_SOURCE_PATH SOURCE_PATH
7+
GITLAB_URL https://gitlab.gnome.org
8+
REPO GNOME/at-spi2-core
9+
REF AT_SPI2_CORE_2_44_1
10+
SHA512 4e98b76e019f33af698a5e2b7ae7ce17ce0ff57784b4d505fe4bad58b097080899c1ca82b443502068c5504b60886e2d4a341bba833e0279ebef352211bf3813
11+
)
12+
13+
vcpkg_configure_meson(
14+
SOURCE_PATH "${SOURCE_PATH}"
15+
OPTIONS
16+
-Dintrospection=no
17+
ADDITIONAL_BINARIES
18+
glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'
19+
glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'
20+
)
21+
22+
vcpkg_install_meson()
23+
24+
vcpkg_copy_pdbs()
25+
26+
vcpkg_fixup_pkgconfig()
27+
28+
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
29+
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/atspi-2.pc"
30+
"-DG_LOG_DOMAIN=\"dbind\"" ""
31+
)
32+
endif()
33+
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
34+
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/atspi-2.pc"
35+
"-DG_LOG_DOMAIN=\"dbind\"" ""
36+
)
37+
endif()
38+
39+
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
40+
41+
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share" "${CURRENT_PACKAGES_DIR}/share/defaults")
42+
43+
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
44+
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
45+
endif()
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"name": "at-spi2-core",
3+
"version": "2.44.1",
4+
"port-version": 3,
5+
"description": "Base DBus XML interfaces for accessibility, the accessibility registry daemon, and atspi library.",
6+
"homepage": "https://www.gtk.org/",
7+
"license": null,
8+
"supports": "linux",
9+
"dependencies": [
10+
{
11+
"name": "dbus",
12+
"platform": "linux"
13+
},
14+
"glib",
15+
{
16+
"name": "glib",
17+
"host": true
18+
},
19+
{
20+
"name": "vcpkg-tool-meson",
21+
"host": true
22+
},
23+
"libxi",
24+
"libxtst"
25+
]
26+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
diff --git a/util/cairo-script/cairo-script-objects.c b/util/cairo-script/cairo-script-objects.c
2+
index 2d7937be3..4d55ca848 100644
3+
--- a/util/cairo-script/cairo-script-objects.c
4+
+++ b/util/cairo-script/cairo-script-objects.c
5+
@@ -127,7 +127,7 @@ csi_array_append (csi_t *ctx,
6+
return _csi_stack_push (ctx, &array->stack, csi_object_reference (obj));
7+
}
8+
9+
-inline csi_status_t
10+
+csi_status_t
11+
_csi_array_execute (csi_t *ctx, csi_array_t *array)
12+
{
13+
csi_integer_t i;
14+
diff --git a/meson.build b/meson.build
15+
index 7b20c0c48..9cb4a82ba 100644
16+
--- a/meson.build
17+
+++ b/meson.build
18+
@@ -38,7 +38,7 @@ cc = meson.get_compiler('c')
19+
20+
# Compiler flags
21+
cflags = []
22+
-if cc.get_id() != 'msvc'
23+
+if cc.get_argument_syntax() != 'msvc'
24+
cflags += [
25+
'-Wmissing-declarations',
26+
'-Werror-implicit-function-declaration',
27+
@@ -159,8 +159,7 @@ check_headers = [
28+
29+
check_types = [
30+
['uint64_t', {'headers': ['stdint.h']}],
31+
- ['uint128_t', {'headers': ['stdint.h']}],
32+
- ['__uint128_t']
33+
+ ['uint128_t', {'headers': ['stdint.h']}]
34+
]
35+
36+
check_funcs = [
37+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
diff --git a/src/win32/cairo-win32-private.h b/src/win32/cairo-win32-private.h
2+
index d457b78..0b1b4ed 100644
3+
--- a/src/win32/cairo-win32-private.h
4+
+++ b/src/win32/cairo-win32-private.h
5+
@@ -53,6 +53,10 @@
6+
7+
#define WIN32_FONT_LOGICAL_SCALE 32
8+
9+
+#ifdef _MSC_VER
10+
+#pragma comment(lib, "MSImg32.Lib")
11+
+#endif
12+
+
13+
CAIRO_BEGIN_DECLS
14+
15+
/* Surface DC flag values */

0 commit comments

Comments
 (0)