Something like this in your CMakeLists.txt prior to "INCLUDE(CPack)":

 IF(WIN32)
   SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
 ExecWait '\\\"$INSTDIR\\\\vcredist_x86.exe\\\" /install'
")

   SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
 ExecWait '\\\"$INSTDIR\\\\vcredist_x86.exe\\\" /uninstall'
")
 ENDIF(WIN32)

You'll have to read up on vcredist_x86.exe, though. I just made up "/install" and "/uninstall"... They may or may not even support /uninstall for that package, I don't know...

You'll notice that the escaped versions of these lines show up in the NSIS input file "${CMAKE_BINARY_DIR}/_CPack_Packages/win32/NSIS/project.nsi"... The double backslashes are ugly, but the string goes through two configures, so they're necessary with CMake 2.4.

The example assumes that you've first installed the exe in the root $INSTDIR of the NSIS installation. If you can figure out the correct NSI incantation to run it directly without installing it or to run it from CD or network location, that should work too. I'm not an NSI expert by any means, just enough to have figured out how to pass a simple ExecWait call through like so...

Hope this helps,
David


Bill Katz wrote:

Hi,
I'm using CPack to generate a Windows installer for a simulation
package. The code was compiled using VS 2005, and I'd like NSIS to
execute the Microsoft-supplied vcredist_x86.exe during install. How
would I do this?

I noticed the CPACK_NSIS_EXTRA_INSTALL_COMMANDS variable, but I
haven't found any documentation on its use.
Thanks for any help.
-Bill
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to