mirror of
https://github.com/xiaoyifang/goldendict-ng.git
synced 2024-11-23 16:04:06 +00:00
56 lines
2.4 KiB
CMake
56 lines
2.4 KiB
CMake
set_target_properties(${GOLDENDICT}
|
|
PROPERTIES
|
|
WIN32_EXECUTABLE TRUE
|
|
RUNTIME_OUTPUT_DIRECTORY "${GD_WIN_OUTPUT_DIR}"
|
|
LIBRARY_OUTPUT_DIRECTORY "${GD_WIN_OUTPUT_DIR}"
|
|
)
|
|
|
|
# TODO: this breaks "Multi-Config" build systems like VisualStudio.
|
|
set(CMAKE_INSTALL_PREFIX "${GD_WIN_OUTPUT_DIR}" CACHE PATH "If you see this message, don't change this unless you want look into CMake build script. If you are an expert, yes, this is wrong. Help welcomed." FORCE)
|
|
|
|
qt_generate_deploy_script(
|
|
TARGET ${GOLDENDICT}
|
|
OUTPUT_SCRIPT deploy_script
|
|
CONTENT "qt_deploy_runtime_dependencies(
|
|
EXECUTABLE \"${CMAKE_INSTALL_PREFIX}/goldendict.exe\"
|
|
BIN_DIR .
|
|
LIB_DIR .
|
|
)"
|
|
)
|
|
|
|
install(SCRIPT ${deploy_script})
|
|
install(DIRECTORY "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/share/opencc" DESTINATION .)
|
|
# Note: This is runtime dependency that aren't copied automatically
|
|
# See Qt's network -> SSDL documentation https://doc.qt.io/qt-6/ssl.html#considerations-while-packaging-your-application
|
|
install(FILES "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/libssl-3-x64.dll" DESTINATION .)
|
|
install(FILES "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/bin/libcrypto-3-x64.dll" DESTINATION .)
|
|
|
|
# trick CPack to make the output folder as NSIS installer
|
|
install(DIRECTORY "${GD_WIN_OUTPUT_DIR}/"
|
|
DESTINATION .
|
|
FILES_MATCHING
|
|
PATTERN "*"
|
|
PATTERN "*.pdb" EXCLUDE
|
|
PATTERN "*.ilk" EXCLUDE)
|
|
|
|
|
|
set(CPACK_PACKAGE_FILE_NAME "GoldenDict-ng-${PROJECT_VERSION}-Qt${Qt6Widgets_VERSION}")
|
|
set(CPACK_GENERATOR "7Z;NSIS64")
|
|
|
|
# override the default install path, which is $PROGRAMFILES64\${project-name} ${project-version} in NSIS
|
|
set(CPACK_PACKAGE_INSTALL_DIRECTORY "GoldenDict-ng")
|
|
|
|
# NSIS specificS
|
|
set(CPACK_NSIS_MANIFEST_DPI_AWARE ON)
|
|
set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/icons/programicon.ico")
|
|
set(CPACK_NSIS_PACKAGE_NAME "${CMAKE_PROJECT_NAME}-${CMAKE_PROJECT_VERSION}")
|
|
set(CPACK_NSIS_DISPLAY_NAME "${CMAKE_PROJECT_NAME}-${CMAKE_PROJECT_VERSION}")
|
|
|
|
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.txt")
|
|
|
|
# Copied from https://crascit.com/2015/08/07/cmake_cpack_nsis_shortcuts_with_parameters/
|
|
set(CPACK_NSIS_CREATE_ICONS_EXTRA "CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\GoldenDict-ng.lnk' '$INSTDIR\\\\${GOLDENDICT}.exe'")
|
|
set(CPACK_NSIS_DELETE_ICONS_EXTRA "Delete '$SMPROGRAMS\\\\$START_MENU\\\\GoldenDict-ng.lnk'")
|
|
|
|
include(CPack)
|