Tôi muốn tạo trình cài đặt đa nền tảng cho hệ thống dựa trên C++ mà tôi đang xây dựng.Cách tạo trình cài đặt với CMake + CPack + NSIS trên Windows?
Tôi sử dụng CMake để xây dựng mọi thứ và sẽ tuyệt vời nếu tôi có thể sử dụng CPack để tạo trình cài đặt. Tôi đã có CPack làm việc trên OSX, nhưng tôi không thể làm cho nó hoạt động trên Windows. Để dễ dàng hơn, tôi đã cố gắng lấy ví dụ tại http://www.cmake.org/Wiki/CMake:Packaging_With_CPack để làm việc với phần mềm cài đặt NSIS. Tôi không thể tìm thấy trình cài đặt NSIS ở bất cứ đâu sau khi cấu hình (với trình tạo Win64 của VS 2010).
Có lẽ tôi đang bối rối, nhưng tôi nghĩ rằng sẽ có thể tạo gói cài đặt chỉ với nguồn, CMake, CPack và NSIS mà không cần bất kỳ Visual Studio nào. Điều này có thể không?
Liên kết đến hướng dẫn đầy đủ (số http://www.cmake.org/Wiki/CMake:Component_Install_With_CPack bỏ qua thông tin liên quan để NSIS hoạt động và không đề cập đến máy phát hoặc trình biên dịch) sẽ rất hữu ích hoặc giải thích cơ bản về cách tôi có thể trình cài đặt NSIS được tạo sẽ rất tuyệt vời.
Đây là CMakeLists.txt cho ví dụ trên:
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)
Hoàn hảo. Tôi không thể tìm thấy bất kỳ tài liệu mạch lạc nào liên quan đến việc phải làm gì khi người ta đến điểm sử dụng VS. Tôi thực sự đánh giá cao sự giúp đỡ! – sklum