Wie erstelle ich ein Installationsprogramm mit CMake + CPack + NSIS unter Windows?

Ich würde gerne ein cross-Plattform-installer für ein C++ - basiertes system, ich bin Bau.

Ich CMake zum bauen ist alles, und es wäre toll, wenn ich verwenden könnte, CPack, um die installer. Ich habe bereits CPack arbeiten auf OSX, aber ich kann es nicht auf Windows. Dinge einfacher zu machen, habe ich versucht, das Beispiel auf http://www.cmake.org/Wiki/CMake:Packaging_With_CPack die Arbeit mit dem NSIS-installer-software. Ich kann nicht finden, den NSIS installer überall nach Konfiguration (mit VS 2010 Win64-generator).

Vielleicht bin ich verwirrt, aber ich dachte, es wäre möglich, erstellen Sie das Installationspaket nur die Quelle, CMake, CPack, und NSIS ohne Visual Studio. Ist das möglich?

Einen link zu einer ausführlichen Anleitung (die man bei http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack überspringt die relevanten Informationen zu bekommen NSI arbeiten und nicht zu erwähnen, Generatoren oder Compiler) wäre sehr hilfreich, oder eine grundlegende Erklärung, wie die, die ich bekommen kann, um diese mythische generiert NSIS installer wäre toll.

Hier CMakeLists.txt für das Beispiel oben:

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)

InformationsquelleAutor der Frage sklum | 2012-10-30

Schreibe einen Kommentar