[software development] 如何结合"deepin-shared-libs"和"ShiroDEB"进行编译(OBS-Studio)
Tofloor
poster avatar
Ziggy
deepin
2023-11-26 23:31
Author

如何结合"deepin-shared-libs"和"ShiroDEB"使用外部library进行编译(OBS-Studio)

Application选版


  1. 确定你要选哪个应用的具体哪个版本号,如"OBS Studio 29.0.2"

    1.png

  2. 确定下载地址,复制source code下载地址,去除tag版本号后的地址即为通用地址,可通过修改tag标识来直接下载某个版本的source code.

    2.png

整理前:"https://github.com/obsproject/obs-studio/archive/refs/tags/29.0.2.tar.gz"

整理后:"https://github.com/obsproject/obs-studio/archive/refs/tags/${version}.tar.gz"

查阅ShiroDEB recipes仓库

选定应用、版本后可到ShiroDEB recipes仓库查看是否已有可用的构建脚本。如果有直接可用的构建脚本,直接修改版本号即可,若没有则可以参考下面的内容来创建一个构建脚本。

Runtime(Library)选版

确认你要编译的源码所需devel资源

编译一般会需要include头文件,有pkg-config、CMAKE_INCLUDE_PATH等方式可以设置include头文件优先寻找路径,此处不再赘述。

  1. 可以查看源码的CMakeLists.txt、build instructions或者本地cmake一次来确认源码所需的库以及要求版本、确认本机原生库是否符合要求

    3.png

  2. 由于先前已得知OBS Studio 29.0.2编译需要Qt5.15且UOS 1061为Qt5.11不符合编译条件,因此采用deepin-shared-libs外置Runtime "Qt5.15.10-OpenGLES"

  3. 进入ShiroDEB ingredients仓库,根据编译环境平台选择分支,找到需要引用的外部Runtime,获取关于该Runtime的配置文件信息。

    4.png

准备程序构建材料

创建构建目录

  1. 以包名(appid)作为唯一标识创建构建目录:
com.obs-studio/templates
  1. 此时目录结构应为:
└── com.obs-studio
    ├── build.sh	#构建文件
    └── templates	#模板目录,主要放置UOS包标准所需的entries资源目录、
							程序运行bash脚本等,具体内容根据实际需求而定
        ├── AppRun
        └── entries

准备构建脚本"build.sh"

OBS-Studio构建脚本已经上传ShiroDEB recipes仓库,详情&注释可前去查看

Tips

至此,调用"deepin-shared-libs"编译的包基本构建完成
以下有几个点需要注意:

  1. 建议在本地初次成功构建后再改写为shiroDEB构建脚本,否则可能会因为各类错误消耗时间
  2. 本次的OBS-Studio案例仅作示例,出于该项目结构比较复杂,当前构建脚本版本并不能满足正式产出需要。后面也会不断更新改进,欢迎各位朋友交流意见!
Reply Favorite View the author
All Replies
(´◓Д◔`)
deepin
2023-11-27 00:18
#1

thanks

Reply View the author