I think one solution could be that the files must be copied with 
add_custom_command's, then run configure_file with the NSIS template to be able 
to use @ variables and then another add_custom_command to run NSIS.

Is there maybe a simpler solution or is this the correct way?


Am 21.05.2012 um 20:05 schrieb [email protected]:

> 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?
> 
> Sorry, for simple installers the default NSIS template is great, but for 
> customized ones it seems to be very difficult, isn't it?
> 
> 
> Best Regards
> 
> Am 21.05.2012 um 19:27 schrieb David Cole <[email protected]>:
> 
>> The install rule:
>> 
>>   install(FILES ${CMAKE_SOURCE_DIR}/somefolder/myfile.txt DESTINATION 
>> $CustomDir)
>> 
>> doesn't make sense because $CustomDir is not known at CMake-time or even at 
>> build-time or install-time. It's not known except to NSIS at packaging time.
>> 
>> make install runs before NSIS runs.
>> 
>> Sounds like you need a completely custom installer -- if you have installed 
>> files that are not contained within the make install tree prefix, then you 
>> cannot use the recursive "install all files from one root" technique in the 
>> NSIS script that CPack uses by default.
>> 
>> 
>> We generally encourage and expect a "re-locatable" install tree to be used 
>> with the CPack built NSIS installers. (i.e. -- no matter where the end-user 
>> finally installs your package, they will be able to run the installed 
>> programs just fine.) That's why the entire install tree is copied using the 
>> following:
>> 
>>   this->SetOptionIfNotSet("CPACK_NSIS_FULL_INSTALL", 
>>                             "File /r \"${INST_DIR}\\*.*\"");
>> 
>> That results in the following generated in project.nsi:
>> 
>>   File /r "${INST_DIR}\*.*"
>> 
>> which installs all files and directories recursively (from your make install 
>> tree) to the installation directory chosen by the end user of your 
>> installation program.
>> 
>> 
>> This stuff is not easy, especially when we can't see your code.
>> 
>> Cheers, (& good luck),
>> David
>> 
>> 
>> On Mon, May 21, 2012 at 12:39 PM, NoRulez <[email protected]> wrote:
>> Hi,
>> 
>> I know that the install commands collect files and copy them into the 
>> temporary cpack directory for the specified generator.
>> How is it possible to install an application for example into those folders:
>> C:\myapp
>> C:\somefolder
>> 
>> I defined 'Var CustomDir="C:\somefolder"' in the NSIS template.
>> 
>> When I then use the following in the CMakeLists.txt:
>> install(FILES ${CMAKE_SOURCE_DIR}/somefolder/myfile.txt DESTINATION 
>> $CustomDir)
>> 
>> Then the files are installed in 
>> _CPACK_PACKAGES/NSIS/myproject_1.0.0.1/$CustomDir.
>> The generated project.nsi has the content: $INSTDIR\$CustomDir\...
>> 
>> How can I avoid that $INSTDIR\ is added, or did I need to use the install 
>> command in a different way?
>> 
>> Thanks in advance
>> 
>> Best Regards
>> NoRulez
>> 
>> --
>> 
>> Powered by www.kitware.com
>> 
>> Visit other Kitware open-source projects at 
>> http://www.kitware.com/opensource/opensource.html
>> 
>> Please keep messages on-topic and check the CMake FAQ at: 
>> http://www.cmake.org/Wiki/CMake_FAQ
>> 
>> Follow this link to subscribe/unsubscribe:
>> http://www.cmake.org/mailman/listinfo/cmake
>> 
> --
> 
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the CMake FAQ at: 
> http://www.cmake.org/Wiki/CMake_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to