【发布时间】:2012-10-20 02:22:11
【问题描述】:
我想为我正在构建的基于 C++ 的系统创建一个跨平台安装程序。
我使用 CMake 来构建一切,如果我可以使用 CPack 来制作安装程序,那就太好了。我已经让 CPack 在 OSX 上运行,但我无法让它在 Windows 上运行。为了让事情变得更简单,我尝试在http://www.cmake.org/Wiki/CMake:Packaging_With_CPack 获取示例以使用 NSIS 安装程序软件。配置后我在任何地方都找不到 NSIS 安装程序(使用 VS 2010 Win64 生成器)。
也许我很困惑,但我认为可以仅使用源代码、CMake、CPack 和 NSIS 创建安装包,而无需 Visual Studio。这可能吗?
完整教程的链接(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)
【问题讨论】:
标签: c++ installation cmake nsis cpack