diff --git a/doc/platforms-macos.dox b/doc/platforms-macos.dox
index ca6588936..1d4cceb6a 100644
--- a/doc/platforms-macos.dox
+++ b/doc/platforms-macos.dox
@@ -31,13 +31,92 @@ namespace Magnum {
@tableofcontents
@m_footernavigation
-@todoc homebrew
@todoc code coverage
-@todoc bundling, dmg cpack
With Apple decision to focus on Metal, macOS OpenGL support is stuck on version
4.2 (i.e., a version before compute shaders are available).
+@section platforms-macos-bundle Bundle creation
+
+While graphical applications *can* run "as is", directly from the compiled
+executable, it's not possible to set various crucial properties of the app
+such as @ref platforms-macos-hidpi "HiDPI" support --- for that you need to
+create a bundle, specifying its options through a `*.plist` file. If you use
+CMake, it provides [a builtin file](https://cmake.org/cmake/help/latest/prop_tgt/MACOSX_BUNDLE_INFO_PLIST.html)
+with a few options and you can use it like this:
+
+@code{.cmake}
+add_executable(my-application main.cpp)
+# ...
+if(CORRADE_TARGET_APPLE)
+ set_target_properties(my-application PROPERTIES
+ MACOSX_BUNDLE ON
+ MACOSX_BUNDLE_BUNDLE_NAME "My Application"
+ MACOSX_BUNDLE_BUNDLE_IDENTIFIER "cz.mosra.magnum.my-application")
+endif()
+@endcode
+
+The builtin file doesn't include all possible properties, however it's possible
+to supply your own. A minimal file can look like this:
+
+@code{.xml}
+
+
+
+
+ CFBundleDevelopmentRegion
+ en-US
+ CFBundleExecutable
+ ${MACOSX_BUNDLE_EXECUTABLE_NAME}
+ CFBundleIdentifier
+ cz.mosra.magnum.my-application
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ Magnum Triangle
+ CFBundlePackageType
+ APPL
+
+
+@endcode
+
+If you name it `MacOSXBundleInfo.plist.in`, it can be supplied to the bundle
+like below. The @cb{.cmake} ${MACOSX_BUNDLE_EXECUTABLE_NAME} @ce will get
+automatically replaced with the target executable name.
+
+@code{.cmake}
+if(CORRADE_TARGET_APPLE)
+ set_target_properties(my-application PROPERTIES
+ MACOSX_BUNDLE ON
+ MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/MacOSXBundleInfo.plist.in)
+endif()
+@endcode
+
+See [the official Apple Property List file documentation](https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html)
+for information about all options.
+
+If you don't use CMake, these options can be set directly through Xcode UI, for
+example.
+
+@section platforms-macos-hidpi HiDPI (Retina) support
+
+macOS and iOS is the only platform where HiDPI support of an app can't be
+advertised programmatically. In case of CMake, you have to supply a custom
+`*.plist` file with `NSHighResolutionCapable` enabled
+(@ref platforms-macos-bundle "see above for details about creating bundles"):
+
+@code{.xml}
+
+
+
+
+ ...
+ NSHighResolutionCapable
+
+
+
+@endcode
+
@section platforms-macos-opengl-best-practices Best practices
Official Apple documentation: