COMPASSi/trunk/code/projects/Cpack/CMakeLists.txt

122 lines
4.6 KiB
CMake
Raw Normal View History

2025-06-25 15:06:42 +08:00
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()