構築中の C++ ベースのシステム用のクロスプラットフォーム インストーラーを作成したいと考えています。
ビルドはすべてCMakeで行っていますが、インストーラーもCPackで作れたらいいなと思っています。OSX で動作する CPack を既に持っていますが、Windows で動作させることができません。作業を簡単にするために、http: //www.cmake.org/Wiki/CMake:Packaging_With_CPack の例を取得して、NSIS インストーラー ソフトウェアで動作するようにしました。(VS 2010 Win64 ジェネレーターを使用して) 構成した後、NSIS インストーラーがどこにも見つかりません。
戸惑うかもしれませんが、Visual Studio を必要とせずに、ソース、CMake、CPack、NSIS だけでインストール パッケージを作成できると思いました。これは可能ですか?
完全なチュートリアルへのリンク ( http://www.cmake.org/Wiki/CMake:Component_Install_With_CPackにあるものは、NSIS を機能させるための関連情報をスキップし、ジェネレーターやコンパイラーについては言及していません) は非常に役立ちます。この神話的に生成された NSIS インストーラーに到達する方法の基本的な説明は素晴らしいでしょう。
上記の例の CMakeLists.txt は次のとおりです。
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)