Home
Phabricator
Search
Log In
Files
F6442989
patch-mac-installdirs.diff
rjvbb (René J.V. Bertin)
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Author
rjvbb
Created
Nov 26 2018, 10:36 PM
Size
5 KB
Mime Type
text/x-diff
Engine
blob
Format
Raw Data
Handle
4039696
Attached To
T10112: KDEInstallDirs on Mac
patch-mac-installdirs.diff
View Options
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"
Log In to Comment