[CMake] cpack: add icon to start menu

John Drescher drescherjm at gmail.com
Fri Sep 25 16:48:11 EDT 2009


On Fri, Sep 25, 2009 at 4:36 PM, Dixon, Shane <Shane.Dixon at atmel.com> wrote:
> I’m using the NSIS generator to create a package.  Is there a CPACK variable
> that can be set to add a particular executable to the start menu?  I noticed
> that the start menu is populated with “uninstall” only.
>

This works for me. Here is that part of my CMakeLists.txt

IF(PACKAGE_FOR_INSTALL)

SET(CPACK_PACKAGE_VERSION_MAJOR ${LungAnalysis_VERSION_MAJOR})
SET(CPACK_PACKAGE_VERSION_MINOR ${LungAnalysis_VERSION_MINOR})
SET(CPACK_PACKAGE_VERSION_PATCH ${LungAnalysis_VERSION_PATCH})

IF(CMAKE_CL_64)
     SET(CMAKE_MSVC_ARCH amd64)
   ELSE(CMAKE_CL_64)
     SET(CMAKE_MSVC_ARCH x86)
ENDIF(CMAKE_CL_64)

IF(MSVC80)

    FIND_PROGRAM(MSVC_REDIST NAMES
vcredist_${CMAKE_MSVC_ARCH}/vcredist_${CMAKE_MSVC_ARCH}.exe
      PATHS
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]/../../SDK/v2.0/BootStrapper/Packages/"
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\8.0;InstallDir]/../../SDK/v2.0/BootStrapper/Packages/"
      )
    GET_FILENAME_COMPONENT(vcredist_name "${MSVC_REDIST}" NAME)
    INSTALL(PROGRAMS ${MSVC_REDIST} COMPONENT Runtime DESTINATION bin)
    SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "ExecWait
'\\\"$INSTDIR\\\\bin\\\\${vcredist_name}\\\"'")
ENDIF(MSVC80)

IF(UNIX AND NOT APPLE)
    INSTALL(TARGETS HyvesDesktop
        DESTINATION bin
    )
    FOREACH(LIB QtCore QtXml QtTest QtGui QtNetwork QtScript)
        INSTALL(FILES
            "${QT_LIBRARY_DIR}/lib${LIB}.so.${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}"
            RENAME "lib${LIB}.so.${QT_VERSION_MAJOR}"
            DESTINATION bin
        )
    ENDFOREACH(LIB)
ENDIF(UNIX AND NOT APPLE)

IF(WIN32)
	SET(CPACK_NSIS_COMPRESSOR "/SOLID lzma")
	SET(CPACK_PACKAGE_EXECUTABLES "LungAnalysis" "Lung Analysis")

	INSTALL(FILES
			"${QT_LIBRARY_DIR}/QtCore${QT_VERSION_MAJOR}.dll"
			"${QT_LIBRARY_DIR}/QtXml${QT_VERSION_MAJOR}.dll"
			"${QT_LIBRARY_DIR}/QtTest${QT_VERSION_MAJOR}.dll"
			"${QT_LIBRARY_DIR}/QtGui${QT_VERSION_MAJOR}.dll"
			"${QT_LIBRARY_DIR}/QtNetwork${QT_VERSION_MAJOR}.dll"
			"${QT_LIBRARY_DIR}/QtScript${QT_VERSION_MAJOR}.dll"
			DESTINATION bin
			COMPONENT Applications
	)
ENDIF(WIN32)

set(CPACK_COMPONENTS_ALL Applications Runtime)

INCLUDE(CPack)
ENDIF(PACKAGE_FOR_INSTALL)


More information about the CMake mailing list