[CMake] How to make CPACK_NSIS_MODIFY_PATH work without TARGETS?

michael kapelko kornerr at gmail.com
Sun Apr 19 09:21:28 EDT 2009


I have the following CMakeLists.txt to create installer of several DLLs 
I need to ship with my application:

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
CMAKE_POLICY(VERSION 2.6)
# Variables
SET(SBILIB_TITLE       sbiLib)
SET(SBILIB_VERSION     1.0)
# Project name
PROJECT(SBILIB)
# Install
INSTALL(
    FILES
    "${CMAKE_CURRENT_SOURCE_DIR}/libW32/mingwm10.dll"
    "${CMAKE_CURRENT_SOURCE_DIR}/libW32/QtCore4.dll"
    "${CMAKE_CURRENT_SOURCE_DIR}/libW32/QtOpenGL4.dll"
    DESTINATION libW32
)
# CPack
SET(CPACK_PACKAGE_DESCRIPTION "SBI libraries")
SET(CPACK_PACKAGE_VENDOR "Opensource Game Studio")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
SET(CPACK_PACKAGE_VERSION ${SBILIB_VERSION})
SET(CPACK_PACKAGE_INSTALL_DIRECTORY ${SBILIB_TITLE})
# Windows specific
IF (WIN32 AND NOT UNIX)
    SET(CPACK_PACKAGE_ICON
        "${CMAKE_CURRENT_SOURCE_DIR}\\\\modern-install-full.ico")
    SET(CPACK_NSIS_DISPLAY_NAME "nsis display name")
    SET(CPACK_NSIS_MODIFY_PATH ON)
    SET(CPACK_GENERATOR "NSIS")
# Unix specific
ELSE (WIN32 AND NOT UNIX)
    SET(CPACK_STRIP_FILES "lib/${SBILIB_TITLE}")
    SET(CPACK_GENERATOR "STGZ;TBZ2")
ENDIF (WIN32 AND NOT UNIX)
#SET(CPACK_PACKAGE_EXECUTABLES ${SBILIB_TITLE} "OGS ${SBILIB_TITLE}")
INCLUDE(CPack)

This installs the DLLs into INSTALL_DIR/libW32, but INSTALL_DIR/libW32 
isn't added to PATH even though the corresponding NSIS page is present.
For my other project which builds a binary, its DESTINATION is added to 
PATH as expected.
How to add the 'libW32' directory to PATH?
Thanks.


More information about the CMake mailing list