【发布时间】:2020-09-14 20:26:10
【问题描述】:
我正在尝试使用 CPACK 和 NSIS 创建 Windows 安装程序。我正在使用 Windows 10、CMake GUI、NSIS 和 Visual Studio 社区版。
效果很好,只是我找不到选项,所以默认安装位置是:
C:\package-version.patch (e.g. C:\apbs-3.0)
apbs 软件是一项协作成果,是跨平台的,但它不喜欢路径名中的“空格”,因此 Windows 10 x64 上 NSIS 的默认位置是:
C:\Program Files\package version (e.g. C:\Program Files\apbs 3.0\)
我最接近的是:
C:\\apbs 3.0
使用以下配置:
string(TOLOWER ${PROJECT_NAME} PACKAGE_NAME)
set(CPACK_PACKAGE_NAME "${PACKAGE_NAME}")
set(CPACK_PACKAGE_DESCRIPTION "${PACKAGE_DESC}")
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/../LICENSE.md")
set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.md")
set(CPACK_PACKAGING_INSTALL_PREFIX "${PACKAGE_NAME}")
set(CPACK_PACKAGE_VERSION "${APBS_VERSION}")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_PACKAGE_VENDOR "${VENDOR}")
set(CPACK_PACKAGE_CONTACT "${CONTACT}")
set(CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${APBS_VERSION}")
set(CPACK_STRIP_FILES ON)
if(WIN32)
# From: https://martinrotter.github.io/it-programming/2014/05/09/integrating-nsis-cmake/
list(APPEND CPACK_GENERATOR "NSIS")
set(CPACK_PACKAGING_INSTALL_PREFIX "\\\\${PACKAGE_NAME}-${APBS_VERSION}")
set(CPACK_NSIS_INSTALL_ROOT "C:\\\\")
endif()
include (CPack)
是否有一组神奇/未记录的 CPACK 变量来消除额外的“\”并将“空格”替换为“-”,以便我可以得到默认安装?
C:\apbs-3.0\
【问题讨论】:
标签: windows installation nsis cpack