¿Cómo crear un instalador con CMake + CPack + NSIS en Windows?

Me gustaría crear un instalador multiplataforma para un sistema basado en C ++ que estoy construyendo.

Uso CMake para compilar todo, y sería genial si pudiera usar CPack para hacer el instalador. Ya tengo CPack trabajando en OSX, pero no puedo hacer que funcione en Windows. Para facilitar las cosas, traté de obtener el ejemplo enhttp://www.cmake.org/Wiki/CMake:Packaging_With_CPack para trabajar con el software de instalación NSIS. No puedo encontrar el instalador de NSIS en ningún lugar después de la configuración (con el generador VS 2010 Win64).

Tal vez estoy confundido, pero pensé que sería posible crear el paquete de instalación solo con la fuente, CMake, CPack y NSIS sin necesidad de Visual Studio. es posible?

Un enlace a un tutorial completo (el dehttp://www.cmake.org/Wiki/CMake:Component_Install_With_CPack omite la información relevante para que NSIS funcione y no menciona generadores o compiladores) sería muy útil, o una explicación básica de cómo puedo llegar a este instalador mítico de NSIS generado sería genial.

Aquí está CMakeLists.txt para el ejemplo anterior:

cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
project(StPMS)

add_library(mylib mylib.cpp)

add_executable(mylibapp mylibapp.cpp)
target_link_libraries(mylibapp mylib)

 install(TARGETS mylib 
   ARCHIVE
   DESTINATION lib
   COMPONENT libraries)
 install(TARGETS mylibapp
   RUNTIME
   DESTINATION bin
   COMPONENT applications)
 install(FILES mylib.h
   DESTINATION include
   COMPONENT headers)

set(CPACK_GENERATOR NSIS)
set(CPACK_PACKAGE_NAME "MyLib")
set(CPACK_PACKAGE_VENDOR "CMake.org")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MyLib - CPack Component Installation Example")
set(CPACK_PACKAGE_VERSION "1.0.0")
set(CPACK_PACKAGE_VERSION_MAJOR "1")
set(CPACK_PACKAGE_VERSION_MINOR "0")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "CPack Component Example")
SET(CPACK_NSIS_MODIFY_PATH ON)

INCLUDE(CPack)

Respuestas a la pregunta(1)

Su respuesta a la pregunta