patch-mac-installdirs.diff

File Metadata

Author
rjvbb
Created
Nov 26 2018, 10:36 PM

patch-mac-installdirs.diff

diff --git kde-modules/KDEInstallDirs.cmake kde-modules/KDEInstallDirs.cmake
index 52b2eb212f3941ea48ba864433e11919e83b2367..b79b66d37296cbf8a49440e759a92f99b075db95 100644
--- kde-modules/KDEInstallDirs.cmake
+++ kde-modules/KDEInstallDirs.cmake
@@ -259,6 +259,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
@@ -466,6 +470,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()
@@ -532,20 +539,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 (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)
@@ -584,40 +612,40 @@ _define_relative(KTEMPLATESDIR DATAROOTDIR "kdevappwizard/templates"
"Kapptemplate and Kdevelop templates")
# 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"