2013-08-26 14 views
5

Próbuję wygenerować instalator .msi z cmake. Jestem w stanie wygenerować pliki .dll i .lib z pewną konfiguracją w CMakeLists.txt. Podaj przykład CMakeLists.txt, aby wygenerować instalator .msi. Jakie polecenia muszę używać w wierszu polecenia?Jak wygenerować .msi instalator z cmake?

Komendy że używam tej pory są:

> cmake -G"Visual Studio 10" -H"Root CMakeLists.txt path" -B"path to generate the sln" 
> cmake --build "path of the sln" --config Release 
> cpack -C Release 
output: CPack Error: CPack generator not specified 

użyłem następującej konfiguracji do generowania .dll i .lib plików.

Oto mój CMakeLists.txt:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 
PROJECT(mydll) 
INCLUDE_DIRECTORIES(common/include) 
SET(my_lib_src dllmain.cpp mydll.cpp) 
SET_SOURCE_FILES_PROPERTIES(${my_lib_src} PROPERTIES LANGUAGE C) 
ADD_LIBRARY(mydll SHARED ${my_lib_src}) 
SET_TARGET_PROPERTIES(mydll PROPERTIES 
LINKER_LANGUAGE C                  RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/common/bin 
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/common/bin 
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/common/lib 
ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/common/lib) 
install(TARGETS mydll 
    ARCHIVE 
    DESTINATION lib 
    COMPONENT libraries) 
install(FILES mydll.h 
    DESTINATION include 
    COMPONENT headers) 
set(CPACK_GENERATOR WIX) 
set(CPACK_PACKAGE_NAME "mydll") 
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") 

INCLUDE(CPack) 

Odpowiedz

5

Musisz ustawić generator po uruchomieniu cpack więc zamiast

3) cpack -C Release
output: CPack Error: CPack generator not specified

Należy określić

cpack -G WIX -C Release 
2

Zdolność WiX dodano w CMake 08.02.11

+0

Co Steve chce powiedzieć: Zmiana ci minimalnej wymaganej wersji CUpewnij co najmniej 2.8.11 i upewnij się, że mają co najmniej ta wersja. – usr1234567

Powiązane problemy