mirror of https://gitee.com/cxasm/notepad--.git
repo: 通用 Linux 平台的 Appimage 构建
This commit is contained in:
parent
7a3ee61a91
commit
f92b3a859c
|
@ -31,7 +31,7 @@ option(USE_MACOS_UNIVERSAL "通用 MacOS 平台构建" OFF)
|
|||
#
|
||||
option(USE_LINUX_UNIVERSAL "通用 Linux 平台构建" OFF)
|
||||
option(USE_LINUX_DEBIAN "通用 Debian Linux 平台构建" OFF)
|
||||
option(USE_LINUX_APPIMGE "通用 Appimage Linux 平台构建" OFF)
|
||||
option(USE_LINUX_APPIMAGE "通用 Appimage Linux 平台构建" OFF)
|
||||
#
|
||||
option(USE_LINUX_UOS "独立 Linux 平台的 Uos 构建" OFF)
|
||||
#
|
||||
|
@ -61,8 +61,8 @@ elseif(UNIX AND NOT APPLE AND NOT WIN32 AND NOT ANDROID)
|
|||
endif()
|
||||
|
||||
# 通用 Linux 平台的 Appimage 构建
|
||||
if(USE_LINUX_APPIMGE)
|
||||
# include(cmake/platforms/linux-appimage.cmake)
|
||||
if(USE_LINUX_APPIMAGE)
|
||||
include(cmake/platforms/linux-appimage.cmake)
|
||||
endif()
|
||||
|
||||
# 独立 Linux 平台的 Uos 构建
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
# linux-appimage.cmake
|
||||
|
||||
# 此构建表示,在 Linux 中以通用平台的构建方式进行 Appimage 打包
|
||||
|
||||
# 1. SparkAppimageConfig.cmake 依赖于 SparkDesktopMacros.cmake 构建的 desktop
|
||||
# 2. 为可执行程序进行部署一个 linuxdeployqt 操作,并生成为 Appimage 可用于打包的目录结构
|
||||
# 3. 使用 Appimagetool 对已生成的 Appimage 标准目录进行打包
|
||||
# 4. 将会生成一个 Notepad--.X86_64.Appimage
|
||||
|
||||
# 参看 Appimagetool 相关的内容:
|
||||
# https://doc.appimage.cn/docs/appimagetool-usage/
|
||||
|
||||
option(LINUX_DEPLOY_QT "为 Linux 中构建的应用进程 linuxdeployqt" OFF)
|
||||
if(LINUX_DEPLOY_QT)
|
||||
# ... 已由 Appimage 自动化构建组件完成
|
||||
endif(LINUX_DEPLOY_QT)
|
||||
|
||||
option(USE_LINUX_APPIMAGE "为 Linux 生成 Appimage 可执行程序" OFF)
|
||||
|
||||
if(USE_LINUX_APPIMAGE)
|
||||
|
||||
include(cmake/SparkDesktopMacros.cmake)
|
||||
# 内容默认应用名称: Name= 应与项目名称相同
|
||||
spark_desktop_macros(
|
||||
# 应用名称: Name=
|
||||
${PROJECT_NAME}
|
||||
# 应用名称: Name[zh_CN]=
|
||||
"Notepad--"
|
||||
# 应用说明: Comment=
|
||||
"Notepad-- 是一个国产跨平台、简单的文本编辑器。"
|
||||
# 应用类型: Type=
|
||||
"Application"
|
||||
# 执行程序: Exec=
|
||||
# 有关此 %F 参数可查看: https://gitee.com/zinface/z-tools/blob/desktop-dev/src/DesktopGenerater/desktopexecparamdialog.cpp
|
||||
"notepad-- %F"
|
||||
# 图标路径: Icon=
|
||||
"/usr/share/notepad--/icons/spark.png"
|
||||
# 应用分类: Category=
|
||||
"Development"
|
||||
)
|
||||
|
||||
# 1. 在顶层构建中导入 Appimage 的构建
|
||||
include(cmake/SparkAppimageConfig.cmake) # 导入来自 Spark 构建的 Appimage 构建
|
||||
add_appimage_icon(assets/spark.png) # 添加到 Appimage 中的默认的图标
|
||||
add_appimage_desktop() # 添加到 Appimage 中的默认desktop(使用来自 Spark 构建的 Desktop 构建中配置的信息(必须要求 spark-desktop))
|
||||
add_appimage() # 应用对 Appimage 的构建
|
||||
|
||||
endif(USE_LINUX_APPIMAGE)
|
|
@ -0,0 +1,47 @@
|
|||
# Linux Appimage - 通用 Linux 平台 Appimage 构建方案
|
||||
|
||||
include linux-universal.mk
|
||||
|
||||
CPUS=$(shell nproc)
|
||||
|
||||
# builddir := build
|
||||
# sourcedir := .
|
||||
# CMAKE_DEBUG := -DCMAKE_BUILD_TYPE=Debug
|
||||
# CMAKE_RELEASE := -DCMAKE_BUILD_TYPE=Release
|
||||
CMAKE_OPTIONS := -DUSE_LINUX_APPIMAGE=ON $(CMAKE_OPTIONS)
|
||||
|
||||
|
||||
# -------------------------------- Appimage Build Tools -------------------------------- #
|
||||
# Appimage 的构建流 --
|
||||
# 在 Makefile 进行构建目标构建 Appimage (要求提供工具的绝对路径,然后可依次进行linuxdeployqt, genrate-appimage)
|
||||
# 来自于 https://github.com/probonopd/linuxdeployqt 的 linuxdeployqt
|
||||
# 来自于 https://github.com/AppImage/AppImageKit 的 appimagetool
|
||||
# 来自于 https://gitlink.org.cn/zinface/bundle-linuxdeployqt.git 托管存储的工具
|
||||
|
||||
# 或指定你所想存放克隆项目的位置
|
||||
BUNDLE_LINUXDEPLOYQT := $(shell pwd)/build/bundle-linuxdeployqt
|
||||
|
||||
download-bundle-linuxdeploytools:
|
||||
-git clone https://gitlink.org.cn/zinface/bundle-linuxdeployqt.git $(BUNDLE_LINUXDEPLOYQT)
|
||||
|
||||
LINUXDEPLOYQT := "$(BUNDLE_LINUXDEPLOYQT)/linuxdeployqt-continuous-x86_64.AppImage"
|
||||
APPIMAGETOOL := "$(BUNDLE_LINUXDEPLOYQT)/appimagetool-x86_64.AppImage"
|
||||
|
||||
# 追加 Appimagetool、linuxdeployqt 构建配置
|
||||
CMAKE_OPTIONS := -DLINUXDEPLOYQT=$(LINUXDEPLOYQT) -DAPPIMAGETOOL=$(APPIMAGETOOL) $(CMAKE_OPTIONS)
|
||||
|
||||
linuxdeploy: download-bundle-linuxdeploytools
|
||||
cmake -B$(builddir) $(CMAKE_OPTIONS)
|
||||
cmake --build $(builddir) -- linuxdeploy
|
||||
|
||||
genrate-appimage:
|
||||
cmake -B$(builddir) $(CMAKE_OPTIONS)
|
||||
cmake --build $(builddir) -- appimage
|
||||
|
||||
|
||||
package: linux-universal-release linuxdeploy genrate-appimage
|
||||
|
||||
linux-build-options:
|
||||
@echo $(CMAKE_OPTIONS)
|
||||
|
||||
# 此配置为构建 linux Appimage 通用版本构建
|
2
linux.mk
2
linux.mk
|
@ -1,10 +1,12 @@
|
|||
Msg := 'Build with the following configuration:'
|
||||
One := '1. make -f linux-universal.mk'
|
||||
Two := '2. make -f linux-debian.mk package'
|
||||
Three := '3. make -f linux-appimage.mk package'
|
||||
|
||||
|
||||
all:
|
||||
@echo $(Msg)
|
||||
@echo $(One) "\n\t默认的通用 Linux 平台构建."
|
||||
@echo $(Two) "\n\t通用 Linux 平台的 Debian deb 构建."
|
||||
@echo $(Three) "\n\t通用 Linux 平台的 Appimage 构建."
|
||||
|
||||
|
|
Loading…
Reference in New Issue