string(TOLOWER ${PROJECT_NAME} CPACK_PACKAGE_NAME)
IF (NOT ${USEWX})
    SET(CPACK_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-nowx")
ENDIF()
set(CPACK_PACKAGE_VENDOR "elfmz")
set(CPACK_PACKAGE_CONTACT "https://github.com/elfmz")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Multi-platform fork of FAR v2")
SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md")
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE.txt")
set(CPACK_PACKAGE_VERSION_MAJOR ${VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH})
SET(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
set(CPACK_PACKAGE_FILE_NAME ${CPACK_PACKAGE_NAME}-${VERSION})

LIST(APPEND PACKAGE_DEPENDENCIES libc6)
LIST(APPEND PACKAGE_DEPENDENCIES libglib2.0-0 libstdc++6)
LIST(APPEND PACKAGE_DEPENDENCIES "libgcc-s1 | libgcc | libgcc1")
LIST(APPEND PACKAGE_DEPENDENCIES libminizip1)
# from main project
IF (${USEWX})
    find_package(wxWidgets REQUIRED core base)
    IF (${wxWidgets_VERSION_STRING} EQUAL "3.2.1")
        LIST(APPEND PACKAGE_DEPENDENCIES "libwxgtk3.2-1, libwxbase3.2-1")
    ELSE()
        LIST(APPEND PACKAGE_DEPENDENCIES libwxgtk3.0-gtk3-0v5)
    ENDIF()
ENDIF()
if(OPENSSL_FOUND)
    LIST(APPEND PACKAGE_DEPENDENCIES "libssl1.1 | libssl3")
endif(OPENSSL_FOUND)
if(LIBSSH_FOUND)
    LIST(APPEND PACKAGE_DEPENDENCIES libssh-4)
endif(LIBSSH_FOUND)
if(LIBSMBCLIENT_FOUND)
    LIST(APPEND PACKAGE_DEPENDENCIES libsmbclient)
endif(LIBSMBCLIENT_FOUND)
if(LIBNFS_FOUND)
    LIST(APPEND PACKAGE_DEPENDENCIES "libnfs11 | libnfs12 | libnfs13 | libnfs14")
endif(LIBNFS_FOUND)
if(LIBNEON_FOUND)
    LIST(APPEND PACKAGE_DEPENDENCIES libneon27)
endif(LIBNEON_FOUND)
if(LibArchive_FOUND)
    LIST(APPEND PACKAGE_DEPENDENCIES libarchive13)
endif(LibArchive_FOUND)
IF (${PYTHON})
    LIST(APPEND PACKAGE_DEPENDENCIES "python3, python3-cffi")
ENDIF()

string(REPLACE ";" ", " PACKAGE_DEPENDENCIES "${PACKAGE_DEPENDENCIES}")

FIND_PROGRAM(DPKG_CMD dpkg)
IF(DPKG_CMD)
    LIST(APPEND CPACK_GENERATOR DEB)
ELSE(DPKG_CMD)
    MESSAGE( STATUS "dpkg binary not found, not building debian package" )
ENDIF(DPKG_CMD)

# CPack components:
# -- app, base, system (main project);
# -- desktop (far2l subproject).
#
SET(CPACK_COMPONENTS_GROUPING ALL_COMPONENTS_IN_ONE)
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
    set(CPACK_COMPONENTS_ALL app)
    set(CPACK_GENERATOR DragNDrop)
    set(CPACK_DMG_VOLUME_NAME ${CPACK_PACKAGE_NAME}-${VERSION})
    set(CPACK_DMG_DS_STORE_SETUP_SCRIPT ${CMAKE_BINARY_DIR}/packaging/osx/Setup.scpt)
    set(CPACK_DMG_BACKGROUND_IMAGE ${PROJECT_SOURCE_DIR}/packaging/osx/Background.png)
    set(CPACK_PACKAGE_ICON ${PROJECT_SOURCE_DIR}/far2l/DE/Far.icns)

    configure_file(${PROJECT_SOURCE_DIR}/packaging/osx/Setup.scpt.in ${CMAKE_BINARY_DIR}/packaging/osx/Setup.scpt)
else ()
    set(CPACK_COMPONENTS_ALL base desktop system)
    SET(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})

    LIST(FIND CPACK_GENERATOR DEB DEB_GENERATOR_PRESENCE)
    IF(DEB_GENERATOR_PRESENCE GREATER -1) # linux (deb)
        set(CPACK_DEB_COMPONENT_INSTALL ON)
        # add DEB-package controls to build process
        ADD_SUBDIRECTORY(debian)
        set(CPACK_DEBIAN_BASE_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
        set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
        SET(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_VENDOR})
        SET(CPACK_DEBIAN_PACKAGE_SECTION contrib/utils)
        SET(CPACK_DEBIAN_PACKAGE_PRIORITY optional)
        SET(CPACK_DEBIAN_PACKAGE_DEPENDS ${PACKAGE_DEPENDENCIES})
    ENDIF(DEB_GENERATOR_PRESENCE GREATER -1)

    LIST(APPEND CPACK_GENERATOR TGZ)
    set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
    set(CPACK_ARCHIVE_BASE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME})
endif ()

include(CPack)
