[CMake] CPack - skipping licensing screen

James Bigler jamesbigler at gmail.com
Fri Apr 24 12:29:28 EDT 2009


On Fri, Apr 24, 2009 at 7:07 AM, Daniel Blezek <Blezek.Daniel at mayo.edu> wrote:
> Hi,
>
>   I’m not sure if there is a CPack-specific mailing list, direct me if I’m
> wrong.
>
>   I find the empty license screen a little annoying in the NSIS installer
> for windows.  This occurs when you don’t specify a license file for your
> installer.  CPack generates one for you, but a better behavior would be to
> skip that step of the install entirely.
>
>   Is this an easy fix?
>
> Thanks,
> -dan

Depends on your definition of easy.  The NSIS installer is script
based.  The script that is used to generate the installer is found in
the Modules/NSIS.template.in file.  In that file you will see a pages
section:

;--------------------------------
;Pages
  !insertmacro MUI_PAGE_WELCOME

  !insertmacro MUI_PAGE_LICENSE "@CPACK_RESOURCE_FILE_LICENSE@"
  Page custom InstallOptionsPage
  !insertmacro MUI_PAGE_DIRECTORY

  ;Start Menu Folder Page Configuration
...

See the insertmacro MUI_PAGE_LICENSE line?  That's the one that
inserts the license dialog in your installer.  You can see the
documentation for these pages here:
http://nsis.sourceforge.net/Docs/Modern%20UI/Readme.html

Unfortunately, I don't see an option to deactivate a MUI page after
you inserted it.  There could be one (I'm only just learning NSIS
script).

You have a some of options at this point that increase in complexity
and time to solution.

1. Edit your installed copy of NSIS.template.in to exclude that page.
Easiest to do, but least maintainable or portable.
2. Copy NSIS.template.in and somehow get CMake/CPack to use that
version instead of the installed version.  You have to maintain your
own copy, but it should be portable.
3. Submit a patch to CMake that makes that page optional (say for
example if you don't specify a license file).  Everyone gets to
benefit, but you have to put in the effort and wait for a release or
use a nightly.

James


More information about the CMake mailing list