diff --git a/kde-modules/KDEInstallDirs.cmake b/kde-modules/KDEInstallDirs.cmake
index cafb7ad..bb64366 100644
--- a/kde-modules/KDEInstallDirs.cmake
+++ b/kde-modules/KDEInstallDirs.cmake
@@ -252,6 +252,10 @@ if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GN
       endif()
     endif()
   endif()
+elseif (APPLE)
+  # for now we don't change the current behaviour by default
+  option(APPLE_FORCE_UNIX_DIRS "Force enable installation to standard Unix locations on Mac" ON)
+  option(APPLE_SUPPRESS_INSTALLDIRS_WARNING "Suppress warnings about the chosen install locations on Mac" OFF)
 endif()
 
 set(_gnu_install_dirs_vars
@@ -459,6 +463,9 @@ if(NOT DEFINED KDE_INSTALL_USE_QT_SYS_PATHS)
     if(qt_install_prefix_dir STREQUAL "${CMAKE_INSTALL_PREFIX}")
         message(STATUS "Installing in the same prefix as Qt, adopting their path scheme.")
         set(_default_KDE_INSTALL_USE_QT_SYS_PATHS ON)
+    elseif(APPLE AND NOT APPLE_FORCE_UNIX_DIRS)
+        message(STATUS "Using native Mac installation locations, adopting Qt's path scheme.")
+        set(_default_KDE_INSTALL_USE_QT_SYS_PATHS ON)
     endif()
 endif()
 
@@ -535,20 +542,41 @@ if (WIN32)
     _define_relative(DATAROOTDIR BINDIR "data"
         "read-only architecture-independent data root"
         SHARE_INSTALL_PREFIX)
+    set(KDE_INSTALL_CROSSPLATFORM_DATAROOTDIR ${KDE_INSTALL_DATAROOTDIR})
+elseif(APPLE AND NOT APPLE_FORCE_UNIX_DIRS)
+    _define_absolute(DATAROOTDIR "/Library/Application Support"
+        "read-only architecture-independent data root")
+    _define_absolute(CROSSPLATFORM_DATAROOTDIR "share"
+        "read-only architecture-independent data root"
+        SHARE_INSTALL_PREFIX)
 else()
     _define_absolute(DATAROOTDIR "share"
         "read-only architecture-independent data root"
         SHARE_INSTALL_PREFIX)
+    set(KDE_INSTALL_CROSSPLATFORM_DATAROOTDIR ${KDE_INSTALL_DATAROOTDIR})
 endif()
 
 _define_relative(DATADIR DATAROOTDIR ""
     "read-only architecture-independent data"
     DATA_INSTALL_DIR)
-_define_non_cache(DATADIR_KF5 "${CMAKE_INSTALL_DATADIR}/kf5")
+if(APPLE AND NOT APPLE_FORCE_UNIX_DIRS)
+    _define_non_cache(DATADIR_KF5 "/Library/Application Support/kf5")
+else()
+    _define_non_cache(DATADIR_KF5 "${CMAKE_INSTALL_DATADIR}/kf5")
+endif()
 if(NOT KDE_INSTALL_DIRS_NO_DEPRECATED)
     set(KF5_DATA_INSTALL_DIR "${CMAKE_INSTALL_DATADIR_KF5}")
 endif()
 
+if (APPLE AND NOT APPLE_SUPPRESS_INSTALLDIRS_WARNING)
+  if(APPLE_FORCE_UNIX_DIRS)
+    # for now we print a regular status message for the traditional default
+    message(STATUS "Using standard Unix installation directories under ${CMAKE_INSTALL_PREFIX}/${KDE_INSTALL_DATAROOTDIR}")
+  else()
+    message(WARNING "Using Mac-specific installation directories under ${KDE_INSTALL_DATAROOTDIR}")
+  endif()
+endif()
+
 # Qt-specific data vars
 if(KDE_INSTALL_USE_QT_SYS_PATHS)
     query_qmake(qt_docs_dir QT_INSTALL_DOCS)
@@ -595,40 +623,40 @@ _define_relative(JARDIR "" "jar"
     "Java AAR/JAR files for Android")
 
 # Cross-desktop or other system things
-_define_relative(ICONDIR DATAROOTDIR "icons"
+_define_relative(ICONDIR CROSSPLATFORM_DATAROOTDIR "icons"
     "icons"
     ICON_INSTALL_DIR)
-_define_relative(LOCALEDIR DATAROOTDIR "locale"
+_define_relative(LOCALEDIR CROSSPLATFORM_DATAROOTDIR "locale"
     "knotify description files"
     LOCALE_INSTALL_DIR)
-_define_relative(SOUNDDIR DATAROOTDIR "sounds"
+_define_relative(SOUNDDIR CROSSPLATFORM_DATAROOTDIR "sounds"
     "sound files"
     SOUND_INSTALL_DIR)
-_define_relative(TEMPLATEDIR DATAROOTDIR "templates"
+_define_relative(TEMPLATEDIR CROSSPLATFORM_DATAROOTDIR "templates"
     "templates"
     TEMPLATES_INSTALL_DIR)
-_define_relative(WALLPAPERDIR DATAROOTDIR "wallpapers"
+_define_relative(WALLPAPERDIR CROSSPLATFORM_DATAROOTDIR "wallpapers"
     "desktop wallpaper images"
     WALLPAPER_INSTALL_DIR)
-_define_relative(APPDIR DATAROOTDIR "applications"
+_define_relative(APPDIR CROSSPLATFORM_DATAROOTDIR "applications"
     "application desktop files"
     XDG_APPS_INSTALL_DIR)
-_define_relative(DESKTOPDIR DATAROOTDIR "desktop-directories"
+_define_relative(DESKTOPDIR CROSSPLATFORM_DATAROOTDIR "desktop-directories"
     "desktop directories"
     XDG_DIRECTORY_INSTALL_DIR)
-_define_relative(MIMEDIR DATAROOTDIR "mime/packages"
+_define_relative(MIMEDIR CROSSPLATFORM_DATAROOTDIR "mime/packages"
     "mime description files"
     XDG_MIME_INSTALL_DIR)
-_define_relative(METAINFODIR DATAROOTDIR "metainfo"
+_define_relative(METAINFODIR CROSSPLATFORM_DATAROOTDIR "metainfo"
     "AppStream component metadata")
-_define_relative(QCHDIR DATAROOTDIR "doc/qch"
+_define_relative(QCHDIR CROSSPLATFORM_DATAROOTDIR "doc/qch"
     "documentation bundles in QCH format")
-_define_relative(MANDIR DATAROOTDIR "man"
+_define_relative(MANDIR UNIXCROSSPLATFORM_DATAROOTDIR "man"
     "man documentation"
     MAN_INSTALL_DIR)
-_define_relative(INFODIR DATAROOTDIR "info"
+_define_relative(INFODIR CROSSPLATFORM_DATAROOTDIR "info"
     "info documentation")
-_define_relative(DBUSDIR DATAROOTDIR "dbus-1"
+_define_relative(DBUSDIR CROSSPLATFORM_DATAROOTDIR "dbus-1"
     "D-Bus")
 _define_relative(DBUSINTERFACEDIR DBUSDIR "interfaces"
     "D-Bus interfaces"
