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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Art. Es hängt davon ab, was du damit meinst "ohne irgendwelche Notwendigkeit für Visual Studio". Sie benötigen ein build-tool zu erschaffen, die wirklich die lib und exe. Auf Windows müssen Sie so etwas wie Visual Studio msbuild, vor allem, wenn Sie angegeben
"Visual Studio 10 Win64"
als der generator.Wenn du meinst "ohne ausführen von Visual Studio", dann ist die Antwort ja. Sie können CMake Ausführung Ihrer gewählten build-tool mit dem
--build
argument.Nach dem ausführen CMake, Sie am Ende mit einer Datei PAKET.vcxproj in deinem build-Verzeichnis. Es ist dieses Gebäude, das der installer. Sie können entweder bauen Sie das PAKET-Projekt in Visual Studio, oder Sie können aufrufen von msbuild direkt tun:
aus dem build-Verzeichnis in ein VS-Eingabeaufforderung.
Diese nachgeben sollten Sie sich an Ihren Installateur benannt MyLib-1.0.0-win64.exe auch in deinem build-Verzeichnis.
Wenn Sie möchten, verwenden Sie einfach CMake, dann eine alternative zum aufrufen von msbuild ist:
Oder Sie bauen können die Lösung zuerst, dann rufen Sie CPack zu erstellen, der installer:
InformationsquelleAutor der Antwort Fraser