-
Notifications
You must be signed in to change notification settings - Fork 44
Expand file tree
/
Copy pathlinglong.yaml
More file actions
80 lines (67 loc) · 2.69 KB
/
linglong.yaml
File metadata and controls
80 lines (67 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd.
#
# SPDX-License-Identifier: GPL-3.0-or-later
version: '1'
package:
id: org.deepin.album
name: deepin-album
version: 6.0.60.1
kind: app
description: |
album for deepin os.
command:
- deepin-album
base: org.deepin.base/25.2.2
runtime: org.deepin.runtime.webengine/25.2.2
build: |
# 下载和安装依赖
apt -y install --download-only libdtk6gui-dev libdtk6widget-dev qt6-svg-dev qt6-tools-dev qt6-tools-dev-tools qt6-base-dev qt6-base-dev-tools qt6-base-private-dev qt6-l10n-tools libexif-dev libstartup-notification0-dev libudev-dev libfontconfig1-dev libglib2.0-dev libxrender-dev libdfm6-mount-dev libdfm-mount-dev libavcodec-dev libavformat-dev libavutil-dev libffmpegthumbnailer-dev kimageformat6-plugins
bash ./install_dep /var/cache/apt/archives "$PREFIX"
# 查找并移动目录下的所有文件(包括符号链接)到它的上一层目录
find ${PREFIX}/lib/${TRIPLET}/blas -mindepth 1 -maxdepth 1 -exec mv {} ${PREFIX}/lib/${TRIPLET} \;
find ${PREFIX}/lib/${TRIPLET}/lapack -mindepth 1 -maxdepth 1 -exec mv {} ${PREFIX}/lib/${TRIPLET} \;
# 准备插件
mkdir -p $PREFIX/bin/imageformats
cp ${PREFIX}/lib/${TRIPLET}/qt6/plugins/imageformats/*.so $PREFIX/bin/imageformats
# 更新ld.so.cache
if [ -n "$LINGLONG_LD_SO_CACHE" ]; then
ldconfig -C "$LINGLONG_LD_SO_CACHE"
fi
VERSION=$(head -1 debian/changelog | awk -F'[()]' '{print $2}')
cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${PREFIX} \
-DCMAKE_INSTALL_LIBDIR=${PREFIX}/lib/${TRIPLET} \
-DVERSION=${VERSION}
cmake --build build -j`nproc`
cmake --build build --target install >install.log 2>&1
# 项目生成应用名和动态隐式加载的依赖库,ldd无法找到的其他库
LDD_FILES=(
deepin-album
libavcodec.so
libavutil.so
libavformat.so
libffmpegthumbnailer.so
libblas.so
liblapack.so
../../bin/imageformats/kimg_avif.so
../../bin/imageformats/kimg_heif.so
# plugins for libheif.so.1
libheif/plugins/libheif-aomenc.so
libheif/plugins/libheif-dav1d.so
libheif/plugins/libheif-j2kdec.so
libheif/plugins/libheif-libde265.so
libheif/plugins/libheif-x265.so
)
# 生成.install 文件
bash ./deploy_dep "${LDD_FILES[@]}"
ID_VALUE=$(awk -F ': ' '/^ id: / {print $2}' linglong.yaml)
# set LIBHEIF_PLUGIN_PATH for libheif.so.1 to load plugins
mkdir -p $PREFIX/etc
echo export LIBHEIF_PLUGIN_PATH=$PREFIX/lib/${TRIPLET}/libheif/plugins > $PREFIX/etc/profile
echo $PREFIX/etc/profile >> "${ID_VALUE}.install"
# allow apt download in build and do apt update
buildext:
apt:
build_depends:
- libc6