diff --git a/CMakeLists.txt b/CMakeLists.txt
index 82aa85747..68170f488 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,45 +1,48 @@
 # Copyright (c) 2017 The Bitcoin developers
 
 cmake_minimum_required(VERSION 3.12)
 project(bitcoin-abc
 	VERSION 0.20.5
 	DESCRIPTION "Bitcoin ABC is a full node implementation of the Bitcoin Cash protocol."
 	HOMEPAGE_URL "https://www.bitcoinabc.org"
 )
 
 # Add path for custom modules
 set(CMAKE_MODULE_PATH
 	${CMAKE_MODULE_PATH}
 	${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules
 )
 
 # Make contrib script accessible.
 set(CONTRIB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/contrib)
 
 # If ccache is available, then use it.
 find_program(CCACHE ccache)
 if(CCACHE)
 	set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE})
 	set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE})
 endif(CCACHE)
 
 # Default to RelWithDebInfo configuration
 if(NOT CMAKE_BUILD_TYPE)
 	set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING
 		"Select the configuration for the build" FORCE)
 endif()
 
 # Find the python interpreter. This is required for several targets.
 find_package(PythonInterp 3.4 REQUIRED)
 
 # Add the magic targets `check-*`
 add_custom_target(check-all)
 add_custom_target(check)
 add_custom_target(check-symbols)
 add_custom_target(check-security)
 
 add_subdirectory(src)
 add_subdirectory(test)
 
 add_subdirectory(contrib/devtools)
 add_subdirectory(doc)
+
+include(PackageOptions)
+include(CPack)
diff --git a/cmake/modules/PackageOptions.cmake b/cmake/modules/PackageOptions.cmake
new file mode 100644
index 000000000..4e55395aa
--- /dev/null
+++ b/cmake/modules/PackageOptions.cmake
@@ -0,0 +1,19 @@
+# Package options
+set(CPACK_PACKAGE_VENDOR "The Bitcoin developers")
+set(CPACK_PACKAGE_DESCRIPTION "Bitcoin ABC is a Bitcoin Cash full node implementation.")
+set(CPACK_PACKAGE_HOMEPAGE_URL "${PROJECT_HOMEPAGE_URL}")
+
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "Bitcoin-abc")
+set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING")
+
+if(CMAKE_CROSSCOMPILING)
+	set(CPACK_SYSTEM_NAME "${TOOLCHAIN_PREFIX}")
+endif()
+
+if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+	set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/share/pixmaps/nsis-header.bmp")
+	set(CPACK_GENERATOR "ZIP")
+else()
+	set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/share/pixmaps/bitcoin-abc128.png")
+	set(CPACK_GENERATOR "TGZ")
+endif()