1

CPack と NSIS を使用して、既存の GeneratorConfig.cmakeファイルを使用して Windows 用の私のプロジェクトをパッケージ化したいと考えてい.iniます。myProject.ini%APPDATA%/myProject/myProject.ini

これは GeneratorConfig.cmake です

SET(INSTALL_AN_ALREADY_EXISTING_DIR ".")
##########################################################################
## Begin NSIS Specific options
##------------------------------------------------------------------------
if(CPACK_GENERATOR MATCHES NSIS)
# Additional NSIS commands to uninstall start menu shortcuts
SET(CPACK_NSIS_DELETE_ICONS_EXTRA
  "Delete \"$SMPROGRAMS\\$MUI_TEMP\\${PROJECT_NAME}.lnk\" 
   StrCmp \"$INSTALL_DESKTOP\" \"1\" 0 +2
   Delete \"$DESKTOP\\${PROJECT_NAME}.lnk\" ")
# The display name string that appears in the Windows Add/Remove Program control panel
SET(CPACK_NSIS_DISPLAY_NAME "${PROJECT_NAME} ${PROJECT_VER_MAJOR}.${PROJECT_VER_MINOR}")
SET(CPACK_NSIS_DISPLAY_NAME_SET "TRUE")

# Extra NSIS commands that will be added to the end of the install Section, after your
# install tree is available on the target system.
SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS 
    "CreateShortCut \"$SMPROGRAMS\\$STARTMENU_FOLDER\\${PROJECT_NAME}.lnk\" \"$INSTDIR\\.\\bin\\${PROJECT_EXE} \" -previousworkingdir \"$INSTDIR\\.\\bin\\app_icon.ico\"  
     StrCmp \"$INSTALL_DESKTOP\" \"1\" 0 +2
     CreateShortCut \"$DESKTOP\\${PROJECT_NAME}.lnk\" \"$INSTDIR\\.\\bin\\${PROJECT_EXE} \" -previousworkingdir \"$INSTDIR\\.\\bin\\app_icon.ico\" 
     ")

# Extra commands to fix permissions of bin/licenses folder
SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS 
   "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}
    ExecWait 'icacls \\\"$INSTDIR\\\\bin\\\\licenses\\\" /grant:r Users:\\\(OI\\\)\\\(CI\\\)\\\(F\\\)'
    ")

# A path to the executable that contains the installer icon.
SET(CPACK_NSIS_INSTALLED_ICON_NAME "${PROJECT__DIR}\\bin\\${PROJECT_EXE}")

# The default installation directory presented to the end user by the NSIS installer
SET(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")

# Title displayed at the top of the installer
SET(CPACK_NSIS_PACKAGE_NAME "${PROJECT_NAME} ${PROJECT_VER_MAJOR}.${PROJECT_VER_MINOR}")

SET(CPACK_NSIS_PAGE_COMPONENTS " ")

SET(CPACK_NSIS_MUI_FINISHPAGE_RUN ${PROJECT_EXE})
endif(CPACK_GENERATOR MATCHES NSIS)
##------------------------------------------------------------------------
## End NSIS Specific options
##########################################################################

以下のコードでこれを実行しようとしましたが、これによりパッケージがビルドされますが、myProject.iniどこにもコピーされません。

SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS 
  "CreateDirectory \"$ENV{APPDATA}\\myProject\",
   SetOutPath \"$ENV{APPDATA}\\myProject\",
   File \"myProject.ini\" 
   ")

ヘルプや提案をいただければ幸いです。

4

1 に答える 1