Skip to content

Commit 323ef33

Browse files
committed
cmake/nsis: add settings to generate a nsis installer through cmake/cpack
1 parent c77c252 commit 323ef33

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

CMakeLists.txt

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,18 @@ if(EXISTS ${CMAKE_SOURCE_DIR}/.git)
9696
endif(EXISTS ${CMAKE_SOURCE_DIR}/.git)
9797
set_source_files_properties(src/AboutDialog.cpp PROPERTIES OBJECT_DEPENDS ${CMAKE_SOURCE_DIR}/src/gen_version.h)
9898

99+
#icon for windows
100+
if(WIN32)
101+
IF( MINGW )
102+
# resource compilation for MinGW
103+
ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o
104+
COMMAND windres.exe -I${CMAKE_CURRENT_SOURCE_DIR} -i${CMAKE_CURRENT_SOURCE_DIR}/src/winapp.rc -o ${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o )
105+
set(SQLB_SRC ${SQLB_SRC} ${CMAKE_CURRENT_BINARY_DIR}/sqlbicon.o)
106+
ELSE( MINGW )
107+
set(SQLB_SRC ${SQLB_SRC} ${CMAKE_CURRENT_SOURCE_DIR}src/winapp.rc)
108+
ENDIF( MINGW )
109+
endif(WIN32)
110+
99111
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${ANTLR_DIR} ${QHEXEDIT_DIR} src)
100112

101113
add_executable(${PROJECT_NAME} ${SQLB_HDR} ${SQLB_SRC} ${SQLB_FORM_HDR} ${SQLB_MOC} ${SQLB_RESOURCES_RCC})
@@ -105,3 +117,45 @@ add_dependencies(${PROJECT_NAME} antlr qhexedit)
105117
link_directories(${CMAKE_CURRENT_BINARY_DIR}/${ANTLR_DIR} ${CMAKE_CURRENT_BINARY_DIR}/${QHEXEDIT_DIR})
106118

107119
target_link_libraries(${PROJECT_NAME} antlr qhexedit ${QT_LIBRARIES} sqlite3)
120+
121+
install(TARGETS ${PROJECT_NAME}
122+
RUNTIME DESTINATION bin
123+
LIBRARY DESTINATION lib)
124+
125+
if(WIN32)
126+
install(FILES
127+
${CMAKE_CURRENT_SOURCE_DIR}/dlls/libgcc_s_dw2-1.dll
128+
${CMAKE_CURRENT_SOURCE_DIR}/dlls/libsqlite3-0.dll
129+
${CMAKE_CURRENT_SOURCE_DIR}/dlls/libstdc++-6.dll
130+
${CMAKE_CURRENT_SOURCE_DIR}/dlls/mingwm10.dll
131+
${CMAKE_CURRENT_SOURCE_DIR}/dlls/QtCore4.dll
132+
${CMAKE_CURRENT_SOURCE_DIR}/dlls/QtGui4.dll
133+
DESTINATION bin)
134+
endif(WIN32)
135+
136+
#cpack
137+
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Sqlite database browser UI")
138+
set(CPACK_PACKAGE_VENDOR "oldsch00l")
139+
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.rst")
140+
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
141+
set(CPACK_PACKAGE_VERSION_MAJOR "3")
142+
set(CPACK_PACKAGE_VERSION_MINOR "0")
143+
set(CPACK_PACKAGE_VERSION_PATCH "0")
144+
set(CPACK_PACKAGE_INSTALL_DIRECTORY "SqliteBrowser${CPACK_PACKAGE_VERSION_MAJOR}")
145+
if(WIN32 AND NOT UNIX)
146+
# There is a bug in NSI that does not handle full unix paths properly. Make
147+
# sure there is at least one set of four (4) backlasshes.
148+
set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\src\\\\iconwin.ico")
149+
set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\sqlitebrowser.exe")
150+
set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY}")
151+
set(CPACK_NSIS_HELP_LINK "https:\\\\\\\\github.com\\\\rp-\\\\sqlitebrowser")
152+
set(CPACK_NSIS_URL_INFO_ABOUT "https:\\\\\\\\github.com\\\\rp-\\\\sqlitebrowser")
153+
set(CPACK_NSIS_CONTACT "[email protected]")
154+
set(CPACK_NSIS_MODIFY_PATH ON)
155+
else(WIN32 AND NOT UNIX)
156+
set(CPACK_STRIP_FILES "bin/sqlitebrowser")
157+
set(CPACK_SOURCE_STRIP_FILES "")
158+
endif(WIN32 AND NOT UNIX)
159+
set(CPACK_PACKAGE_EXECUTABLES "sqlitebrowser" "SqliteBrowser")
160+
include(CPack)
161+

0 commit comments

Comments
 (0)