diff --git a/cmake/BuildPackages.cmake b/cmake/BuildPackages.cmake
new file mode 100644
index 0000000..1493b5e
--- /dev/null
+++ b/cmake/BuildPackages.cmake
@@ -0,0 +1,76 @@
+# This file is included from the top-level CMakeLists.txt.  We just store it
+# here to avoid cluttering up that file.
+
+
+#
+# Windows installer (Inno Setup)
+#
+
+if(WIN32)
+
+if(CMAKE_SIZEOF_VOID_P MATCHES 8)
+  set(INST_NAME ${CMAKE_PROJECT_NAME}64-${VERSION})
+  set(INST_DEFS -DWIN64)
+else()
+  set(INST_NAME ${CMAKE_PROJECT_NAME}-${VERSION})
+endif()
+
+if(MSVC_IDE)
+  set(INSTALLERDIR "$(OutDir)")
+  set(BUILDDIRDEF "-DBUILD_DIR=${INSTALLERDIR}\\")
+else()
+  set(INSTALLERDIR .)
+  set(BUILDDIRDEF "-DBUILD_DIR=")
+endif()
+
+set(INST_DEPS vncviewer)
+
+if(BUILD_WINVNC)
+  set(INST_DEFS ${INST_DEFS} -DBUILD_WINVNC)
+  set(INST_DEPS ${INST_DEPS} winvnc4 wm_hooks vncconfig)
+endif()
+
+if(GNUTLS_FOUND)
+  set(INST_DEFS ${INST_DEFS} -DHAVE_GNUTLS)
+endif()
+
+configure_file(release/tigervnc.iss.in release/tigervnc.iss)
+
+add_custom_target(installer
+  iscc -o${INSTALLERDIR} ${INST_DEFS} ${BUILDDIRDEF} -F${INST_NAME}
+    release/tigervnc.iss
+  DEPENDS ${INST_DEPS}
+  SOURCES release/tigervnc.iss)
+
+endif() # WIN32
+
+
+#
+# Mac DMG
+#
+
+if(APPLE)
+
+set(DEFAULT_OSX_X86_BUILD ${CMAKE_SOURCE_DIR}/osxx86)
+set(OSX_X86_BUILD ${DEFAULT_OSX_X86_BUILD} CACHE PATH
+  "Directory containing 32-bit OS X build to include in universal binaries (default: ${DEFAULT_OSX_X86_BUILD})")
+
+configure_file(release/makemacapp.in release/makemacapp)
+configure_file(release/Info.plist.in release/Info.plist)
+
+add_custom_target(dmg sh release/makemacapp
+  DEPENDS vncviewer
+  SOURCES release/makemacapp)
+
+add_custom_target(udmg sh release/makemacapp universal
+  DEPENDS vncviewer
+  SOURCES release/makemacapp)
+
+endif() # APPLE
+
+
+#
+# Common
+#
+
+install(FILES ${CMAKE_SOURCE_DIR}/LICENCE.txt DESTINATION .)
