[CMake] CPack: Installing applications in separate folders (NSIS)

norulez at me.com norulez at me.com
Tue May 22 15:31:13 EDT 2012


I got it to work.

Under windows/NSIS I set the destination to "../CustomDir" instead of $CustomDir.
With this and a custom nsis script which knows the location it is possible to run CPack.

In the NSIS script I've the following
Var $CustomDir="@CPACK_TEMPORARY_DIRECTORY@\..\CustomDir"

After this I can install files from this directory too.

The directory content after the preinstall:
.../_CPack_Packages/win32/NSIS/myproject.1.0.0.1/
.../_CPack_Packages/win32/NSIS/CustomDir/
.../_CPack_Packages/win32/NSIS/project.nsi
.
.
.

@Eric, @David: Thank you very much

Best Regards


Am 22.05.2012 um 00:38 schrieb Eric Noulard <eric.noulard at gmail.com>:

> 2012/5/21 David Cole <david.cole at kitware.com>:
>> On Mon, May 21, 2012 at 2:05 PM, <norulez at me.com> wrote:
>>> 
>>> But what about other systems like linux. If I have an executable and
>>> shared libraries for example.
>>> Then it is possible to install it under /opt/myproject, but it is not
>>> possible to install the executable under /usr/bin and the shared libraries
>>> under /usr/lib? Or did I misunderstood something?
>> 
>> 
>> But you don't build an NSIS installer based on those.
> 
> And installing lib in /usr/lib and exe in /usr/bin IS possible
> because the 2 path shares the /usr prefix.
> 
> On Linux if you build an RPM or DEB package which contains various
> prefix (/usr /opt etc..) you either get a non relocatable package
> or decide that some files are "special" like config files.
> 
> but David is right this does not work with NSIS.
> 
>>> Sorry, for simple installers the default NSIS template is great, but for
>>> customized ones it seems to be very difficult, isn't it?
> 
> As difficult as it is with NSIS alone :-]
> 
>> Yes, you're correct. It takes some effort if you are not installing
>> everything underneath the directory that the end user chooses for your final
>> location.
>> 
>> It's quite good for "simple installers" and "component-based installers" --
>> beyond that, and especially putting things outside the location chosen by
>> the end user ... you're on your own.
> 
> If you do have 2 separate unrelated installation prefixes
> may be you can just build 2 NSIS installers
> (which contains only one prefix)
> using CPack twice out of 2 differents configurations of the same project
> 
> Or craft your own project.nsi file.
> 
> -- 
> Erk
> Le gouvernement représentatif n'est pas la démocratie --
> http://www.le-message.org


More information about the CMake mailing list