find_program(IPADDRESS_DPKG_BUILDPACKAGE_FOUND dpkg-buildpackage)
find_program(IPADDRESS_RPMBUILD_FOUND rpmbuild)

cmake_dependent_option(IPADDRESS_BUILD_DEB_PACKAGE "Create DEB package" ON
  "IPADDRESS_DPKG_BUILDPACKAGE_FOUND" OFF)
cmake_dependent_option(IPADDRESS_BUILD_RPM_PACKAGE "Create RPM package" ON
  "IPADDRESS_RPMBUILD_FOUND" OFF)

list(APPEND CPACK_SOURCE_GENERATOR TBZ2 TGZ TXZ ZIP)
list(APPEND CPACK_SOURCE_IGNORE_FILES /.git/ /.github/ /.vscode/ /.vs/ /build/ .gitignore .DS_Store)

if (IPADDRESS_BUILD_DEB_PACKAGE)
  list(APPEND CPACK_GENERATOR "DEB")
endif()

if (IPADDRESS_BUILD_RPM_PACKAGE)
  list(APPEND CPACK_GENERATOR "RPM")
endif()

set(CPACK_PACKAGE_VENDOR "Vladimir Shaleev")
set(CPACK_PACKAGE_CONTACT "Vladimir Shaleev <vladimirshaleev@gmail.com>")
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}")
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_DESCRIPTION}")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${PROJECT_VERSION}")
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE)
set(CPACK_RESOURCE_FILE_README ${CMAKE_SOURCE_DIR}/README.md)

set(CPACK_DEBIAN_PACKAGE_NAME "lib${PROJECT_NAME}-dev")
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE ${PROJECT_HOMEPAGE_URL})
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "all")

set(CPACK_RPM_PACKAGE_NAME "lib${PROJECT_NAME}-devel")
set(CPACK_RPM_PACKAGE_LICENSE "MIT License")
set(CPACK_RPM_COMPRESSION_TYPE lzma)
list(APPEND CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST
  /etc
  /etc/init.d
  /usr
  /usr/bin
  /usr/include
  /usr/lib
  /usr/libx32
  /usr/lib64
  /usr/share
  /usr/share/aclocal
  /usr/share/doc
  /usr/share/cmake
  /usr/share/pkgconfig
)

include(CPack)
