Mi piacerebbe creare un programma di installazione multipiattaforma per un sistema basato su C++ che sto costruendo.Come creare un programma di installazione con CMake + CPack + NSIS su Windows?
Io uso CMake per costruire tutto, e sarebbe bello se potessi usare CPack per fare l'installatore. Ho già CPack che funziona su OSX, ma non riesco a farlo funzionare su Windows. Per semplificare le cose, ho cercato di ottenere l'esempio su http://www.cmake.org/Wiki/CMake:Packaging_With_CPack per funzionare con il software di installazione NSIS. Non riesco a trovare l'installer NSIS da nessuna parte dopo la configurazione (con VS 2010 Win64 generator).
Forse sono confuso, ma ho pensato che sarebbe stato possibile creare il pacchetto di installazione con solo l'origine, CMake, CPack e NSIS senza alcun bisogno di Visual Studio. È possibile?
Un collegamento a un tutorial completo (quello su http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack ignora le informazioni pertinenti per far funzionare NSIS e non fa menzione di generatori o compilatori) sarebbe molto utile, o una spiegazione di base su come posso arrivare a questo mitico l'installer NSIS generato sarebbe fantastico.
Ecco CMakeLists.txt per l'esempio precedente:
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)
Perfetto. Non sono riuscito a trovare alcuna documentazione coerente su cosa fare quando si arriva al punto di usare VS. Apprezzo molto l'aiuto! – sklum