2011-05-17 59 views
1

我看到沒有用於更改NSIS中的嚮導圖像的CPACK_xxx變量(如CPACK_PACKAGE_ICON)。 所以我複製了NSIS.template.in並對其進行了修改。我可以這樣做:如何通過CMake/CPack在NSIS中設置嚮導圖像?

定義MUI_WELCOMEFINISHPAGE_BITMAP! 「C:\工作\項目\ IMG \ wizardInstall.bmp」 定義MUI_UNWELCOMEFINISHPAGE_BITMAP! 「C:\工作\項目\ IMG \ wizardUninstall.bmp」

和它會工作。但是,源代碼存放在許多開發人員合作的存儲庫中,並且保留絕對路徑並不是一個好主意。 我試圖找到一些方法來獲得我的源路徑,並以某種方式創建從那個圖像路徑,但無濟於事。因此,如果有人知道我如何在NSIS中設置嚮導圖像,或者將源目錄(並創建從它創建的路徑)傳遞給我的模板文件,請讓我知道。

+0

您可以嘗試修改'NSIS.template.in'文件在運行'cmake'使用[文件](http://www.cmake.org/cmake/help/cmake-2-8-docs.html#command:file)命令。例如:'file(APPEND NSIS.template.in!define FILEID $ {PROJECT_SOURCE_DIR}/path/to/file!define)' – beduin 2011-05-17 09:17:31

+0

我可以用這種方式修改文件..或者甚至更好,複製它然後附加到複製。然而,那麼定義將會在腳本的底部結束,導致類似於:MUI_WELCOMEFINISHPAGE_BITMAP已經被定義(即使我已經取消了它的定義)...雖然即使它沒有導致預處理錯誤,它仍然在MUI的!insertmacro之後。 – Amy 2011-05-17 19:24:52

回答

0

您不需要編譯整個NSIS來使用/更改這些圖像。

它們存在於每個具有NSIS安裝在$ {NSISDIR} \的Contrib \圖形\嚮導\ win.bmp

使用!define MUI_WELCOMEFINISHPAGE_BITMAP bmp_file在.nsi腳本來改變他們的機器上。

0

既然你已經定製NSIS.template.in文件,據推測是與CONFIGURE_FILE()命令配置模板,爲什麼不把下面的你NSIS.template.in:

!define MUI_WELCOMEFINISHPAGE_BITMAP "@[email protected]" 
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "@[email protected]" 

然後,在您設置其他CPACK變量您的CMakeLists.txt文件,添加類似:

SET(MY_CPACK_MUI_WELCOMEFINISHPAGE_BITMAP 
    "${CMAKE_SOURCE_DIR)/path/to/wizardInstall.bmp") 
SET(MY_CPACK_MUI_UNWELCOMEFINISHPAGE_BITMAP 
    "${CMAKE_SOURCE_DIR)/path/to/wizardUninstall.bmp") 
+0

謝謝。但似乎這些變量必須只有「CPACK」前綴。否則,CPack會忽略它們,並且它們在nsi中會有一個空值。 – brighteyed 2012-09-11 11:34:24

+0

路徑未正確定義,請參閱:http://www.cmake.org/pipermail/cmake/2008-June/022085.html – malat 2015-02-27 15:26:58