File CMakeLists.txt of Package mingw64-installer-base

cmake_minimum_required(VERSION 3.10)

project(${PACKAGE_NAME} NONE)

# settings required to add to cmake call
#set(PACKAGE_NAME "umbrello")
#set(PACKAGE_VENDOR "kde.org")
#set(PACKAGE_DISPLAY_NAME "Umbrello 2.17.0")
#set(PACKAGE_VERSION "2.17.0")
#set(PACKAGE_HELP_LINK "https://kmymoney.org/support.php")
#set(PACKAGE_URL_INFO "https://kmymoney.org")
#set(PACKAGE_INSTALL_DIR /usr/i686-w64-mingw32/sys-root/mingw/)
#set(PACKAGE_FINISH_RUN "kmymoney.exe")
#set(PACKAGE_INSTALLED_ICON_NAME "bin/${PACKAGE_FINISH_RUN}")
#set(PACKAGE_LICENSE_FILE /usr/share/doc/packages/mingw32-umbrello/COPYING)
#set(PACKAGE_LOCAL_INSTALL_DIR ...) set to dir from which local files are installed
#set(CPACK_GENERATOR NSIS;7Z)
#set(PACKAGE_REGISTER_EXTENSIONS ".kmy;.xml"

if(EXISTS ${PACKAGE_INSTALL_DIR}/bin/kdeinit4.exe)
	set(PACKAGE_KDEINIT "bin/kdeinit4.exe")
elseif(EXISTS ${PACKAGE_INSTALL_DIR}/bin/kdeinit5.exe)
	set(PACKAGE_KDEINIT "bin/kdeinit5.exe")
endif()

# local settings
#set(SIDEBAR_IMAGE "${CMAKE_SOURCE_DIR}/hisc-apps-umbrello-installer.bmp")

# install directory normally from system (read only) location
install(
    DIRECTORY ${PACKAGE_INSTALL_DIR}
    DESTINATION .
    REGEX ".*var/lib/rpm-state$" EXCLUDE
    REGEX ".*bin/lib$" EXCLUDE
    REGEX ".*share/qt4/mkspecs.*" EXCLUDE
    # exclude debug dirs
    REGEX ".*src/" EXCLUDE
    REGEX ".*symbols/" EXCLUDE
    REGEX ".*.debug$" EXCLUDE
)

# install local dirs
if(PACKAGE_LOCAL_INSTALL_DIR)
    install(
        DIRECTORY ${PACKAGE_LOCAL_INSTALL_DIR}/
        DESTINATION .
    )
endif()

# remove empty dirs
install(CODE "execute_process(COMMAND find ${CPACK_TEMPORARY_INSTALL_DIRECTORY} -type d -empty -delete)")

# cpack settings
if(NOT CPACK_GENERATOR)
    set(CPACK_GENERATOR NSIS;7Z)
endif()
set(CPACK_PACKAGE_NAME ${PACKAGE_NAME})
set(CPACK_PACKAGE_VENDOR ${PACKAGE_VENDOR})
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PACKAGE_DESCRIPTION})
set(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION})
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PACKAGE_NAME})
set(CPACK_PACKAGE_FILE_NAME ${PACKAGE_NAME}-mingw64-${PACKAGE_VERSION})
set(CPACK_RESOURCE_FILE_LICENSE ${PACKAGE_LICENSE_FILE})

#cpack nsis settings
set(CPACK_NSIS_COMPRESSOR lzma)
SET(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
set(CPACK_NSIS_DISPLAY_NAME "${PACKAGE_DISPLAY_NAME}")
set(CPACK_NSIS_HELP_LINK "${PACKAGE_HELP_LINK}")
set(CPACK_NSIS_URL_INFO_ABOUT "${PACKAGE_URL_INFO}")
set(CPACK_NSIS_CONTACT "${PACKAGE_CONTACT}")
set(CPACK_NSIS_INSTALLED_ICON_NAME "${PACKAGE_INSTALLED_ICON_NAME}")
if(PACKAGE_FINISH_RUN)
	set(CPACK_NSIS_MUI_FINISHPAGE_RUN ${PACKAGE_FINISH_RUN})
endif()
#set(CPACK_NSIS_MODIFY_PATH ON)
set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON)
if(PACKAGE_INSTALLED_ICON_NAME)
	list(APPEND CPACK_NSIS_MENU_LINKS ${PACKAGE_INSTALLED_ICON_NAME} "${PACKAGE_DISPLAY_NAME}")
endif()
if(PACKAGE_URL_INFO)
    list(APPEND CPACK_NSIS_MENU_LINKS ${PACKAGE_URL_INFO} "${PACKAGE_NAME} Web Site")
endif()

# internal vars
set(QUOTE "\\\"")
set(INDENT "  ")
set(NL "\r\n")

#set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "!define MUI_WELCOMEFINISHPAGE_BITMAP \\\"${SIDEBAR_IMAGE}\\\"")

if(PACKAGE_KDEINIT)
    # we need to stop kde background processes
    list(APPEND EXTRA_PREINSTALL_COMMANDS  "nsExec::Exec ${QUOTE}$INSTDIR/${PACKAGE_KDEINIT}${QUOTE} --terminate")
    list(APPEND EXTRA_UNINSTALL_COMMANDS  "nsExec::Exec ${QUOTE}$INSTDIR/${PACKAGE_KDEINIT}${QUOTE} --terminate")
endif()

# Include additional files
list(APPEND EXTRA_PREINSTALL_COMMANDS "!include FileAssociation.nsh")

foreach(item ${PACKAGE_REGISTER_EXTENSIONS})
    string(REPLACE " " ";" a ${item})
    list(POP_FRONT a ext)
    set(desc "${ext} files")
    # Create association
    list(APPEND EXTRA_INSTALL_COMMANDS
        "\\\${RegisterExtension} ${QUOTE}$INSTDIR/${PACKAGE_INSTALLED_ICON_NAME}${QUOTE} ${QUOTE}${ext}${QUOTE} ${QUOTE}${desc}${QUOTE}")
    # Remove association
    list(APPEND EXTRA_UNINSTALL_COMMANDS
        "\\\${UnRegisterExtension} ${QUOTE}${ext}${QUOTE} ${QUOTE}${desc}${QUOTE}")
endforeach()

# convert to multi line string
list(JOIN EXTRA_PREINSTALL_COMMANDS "${NL}${INDENT}" CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS)
list(JOIN EXTRA_INSTALL_COMMANDS "${NL}${INDENT}" CPACK_NSIS_EXTRA_INSTALL_COMMANDS)
list(JOIN EXTRA_UNINSTALL_COMMANDS "${NL}${INDENT}" CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS)

# fix first line
string(PREPEND CPACK_NSIS_EXTRA_PREINSTALL_COMMANDS "${INDENT}")
string(PREPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${INDENT}")
string(PREPEND CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "${INDENT}")

include(CPack)
openSUSE Build Service is sponsored by