122 lines
4.6 KiB
CMake
122 lines
4.6 KiB
CMake
cmake_minimum_required(VERSION 3.5) # CMake install : https://cmake.org/download/
|
|
project(cpack)
|
|
|
|
set(INSERT_NAME "COMPASS-Rules")
|
|
set(INSERT_VERSION_ "1.0")
|
|
set(INSERT_DESCRIPTION "This is COMPASS-Rules")
|
|
set(INSERT_VENDOR "中国船级社")
|
|
set(INSERT_CONTACT "http://callcenter.ccs.org.cn")
|
|
set(INSERT_PACKAGE_NAME "COMPASS-Rules2023")
|
|
|
|
if(WIN32)
|
|
|
|
#安装编译的文件
|
|
install(TARGETS "${OUT_PROJECT_NAME}"
|
|
RUNTIME DESTINATION "bin" )
|
|
|
|
#拷贝目录下所有文件至安装目录
|
|
install(DIRECTORY "${PROJECTS_PATH}/win_bin/"
|
|
DESTINATION "bin"
|
|
)
|
|
|
|
|
|
# CPack 配置
|
|
set(CPACK_GENERATOR "NSIS") # 使用 NSIS 生成 Windows 安装程序
|
|
set(CPACK_PACKAGE_NAME "${INSERT_NAME}")
|
|
|
|
set(CPACK_PACKAGE_VERSION "${INSERT_VERSION}")
|
|
set(CPACK_PACKAGE_DESCRIPTION "${INSERT_DESCRIPTION}")
|
|
set(CPACK_PACKAGE_VENDOR "${INSERT_VENDOR}")
|
|
set(CPACK_PACKAGE_CONTACT "${INSERT_CONTACT}")
|
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-windows-x64-setup")
|
|
set(CPACK_NSIS_PACKAGE_NAME "${INSERT_PACKAGE_NAME}") # NSIS 打包时使用的名字
|
|
#set(CPACK_NSIS_INSTALL_DIRECTORY "") # 安装目录名称
|
|
|
|
# 设置安装程序图标
|
|
set(CPACK_NSIS_MUI_ICON "${PROJECTS_PATH}/win_bin/app.ico")
|
|
|
|
set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
|
|
CreateShortCut '\$DESKTOP\\COMPASS-Rules2023.lnk' '\$INSTDIR\\bin\\COMPASS-Rules.exe'
|
|
CreateShortCut '\$STARTMENU\\COMPASS-Rules2023.lnk' '\$INSTDIR\\bin\\COMPASS-Rules.exe'
|
|
")
|
|
|
|
|
|
set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
|
|
Delete '\$DESKTOP\\COMPASS-Rules2023.lnk'
|
|
Delete '\$STARTMENU\\COMPASS-Rules2023.lnk'
|
|
")
|
|
|
|
# 启用 CPack
|
|
include(CPack)
|
|
else()
|
|
set(CPACK_GENERATOR "DEB")
|
|
set(CPACK_DEBIAN_PACKAGE_CONTROL_STRICT ON)
|
|
include (InstallRequiredSystemLibraries)
|
|
# 创建并安装桌面快捷方式文件
|
|
install(CODE "file(WRITE \"${PROJECTS_PATH}/arm_linux_bin/release/COMPASS-Rules2023.desktop\"
|
|
\"[Desktop Entry]
|
|
Name=COMPASS-Rules
|
|
Exec=${CMAKE_INSTALL_PREFIX}/COMPASS-Rules2023/COMPASS-Rules
|
|
Icon=${CMAKE_INSTALL_PREFIX}/COMPASS-Rules2023/app.ico
|
|
Type=Application
|
|
Categories=Utility
|
|
Terminal=false
|
|
Comment=COMPASS-Rules application\")"
|
|
)
|
|
|
|
|
|
install(FILES "${PROJECTS_PATH}/arm_linux_bin/release/COMPASS-Rules2023.desktop"
|
|
DESTINATION /usr/share/applications
|
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE WORLD_READ WORLD_EXECUTE)
|
|
|
|
set(desk_top_path "$ENV{HOME}/桌面")
|
|
|
|
install(FILES "${PROJECTS_PATH}/arm_linux_bin/release/COMPASS-Rules2023.desktop"
|
|
DESTINATION "${desk_top_path}"
|
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE WORLD_READ WORLD_EXECUTE)
|
|
|
|
# 更改文件所有权为当前用户
|
|
#install(CODE "
|
|
# set(desktop_file \"${desk_top_path}/COMPASS-Rules2023.desktop\")
|
|
# execute_process(COMMAND chown \$ENV{USER}:\$ENV{USER} \${desktop_file})
|
|
#")
|
|
|
|
|
|
# 拷贝目录下所有文件至安装目录
|
|
install(DIRECTORY "${PROJECTS_PATH}/arm_linux_bin/release/"
|
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/COMPASS-Rules2023
|
|
DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ WORLD_READ
|
|
PATTERN "*"
|
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
|
PATTERN "libexec/*"
|
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
|
PATTERN "lib/*"
|
|
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
|
)
|
|
|
|
# 安装图标
|
|
install(FILES ${PROJECTS_PATH}/arm_linux_bin/release/app.ico DESTINATION /usr/share/icons)
|
|
|
|
# CPack 配置
|
|
|
|
set(CPACK_PACKAGE_NAME "${INSERT_NAME}")
|
|
set(CPACK_PACKAGE_VERSION "${INSERT_VERSION_}")
|
|
set(CPACK_PACKAGE_DESCRIPTION "${INSERT_DESCRIPTION}")
|
|
set(CPACK_PACKAGE_VENDOR "${INSERT_VENDOR}")
|
|
set(CPACK_PACKAGE_CONTACT "${INSERT_CONTACT}")
|
|
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-linux-arm-x64-setup")
|
|
set(CPACK_DEBIAN_PACKAGE_NAME "${INSERT_PACKAGE_NAME}")
|
|
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "arm64")
|
|
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.14)")
|
|
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${PROJECTS_PATH}/arm_linux_bin/release/postinst")
|
|
|
|
message("CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA: ${CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA}")
|
|
|
|
# 加载 CPack 模块
|
|
include(CPack)
|
|
|
|
|
|
endif()
|