build KDE Frameworks with each Qt version
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
{ kdeFramework, lib, copyPathsToStore, cmake, pkgconfig, qttools }:
|
||||
|
||||
kdeFramework {
|
||||
name = "extra-cmake-modules";
|
||||
|
||||
patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
|
||||
|
||||
outputs = [ "out" ]; # this package has no runtime components
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
# It is OK to propagate these inputs as long as
|
||||
# extra-cmake-modules is never a propagated input
|
||||
# of some other derivation.
|
||||
propagatedNativeBuildInputs = [ cmake pkgconfig qttools ];
|
||||
|
||||
meta = with lib; {
|
||||
license = licenses.bsd2;
|
||||
maintainers = [ maintainers.ttuegel ];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
Index: extra-cmake-modules-5.18.0/kde-modules/KDEInstallDirs.cmake
|
||||
===================================================================
|
||||
--- extra-cmake-modules-5.18.0.orig/kde-modules/KDEInstallDirs.cmake
|
||||
+++ extra-cmake-modules-5.18.0/kde-modules/KDEInstallDirs.cmake
|
||||
@@ -200,32 +200,6 @@
|
||||
# GNUInstallDirs code deals with re-configuring, but that is dealt with
|
||||
# by the _define_* macros in this module).
|
||||
set(_LIBDIR_DEFAULT "lib")
|
||||
-# Override this default 'lib' with 'lib64' iff:
|
||||
-# - we are on a Linux, kFreeBSD or Hurd system but NOT cross-compiling
|
||||
-# - we are NOT on debian
|
||||
-# - we are on a 64 bits system
|
||||
-# reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
|
||||
-# For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
|
||||
-# CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
|
||||
-# See http://wiki.debian.org/Multiarch
|
||||
-if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
|
||||
- AND NOT CMAKE_CROSSCOMPILING)
|
||||
- if (EXISTS "/etc/debian_version") # is this a debian system ?
|
||||
- if(CMAKE_LIBRARY_ARCHITECTURE)
|
||||
- set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
|
||||
- endif()
|
||||
- else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
|
||||
- if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
|
||||
- message(AUTHOR_WARNING
|
||||
- "Unable to determine default LIB_INSTALL_LIBDIR directory because no target architecture is known. "
|
||||
- "Please enable at least one language before including KDEInstallDirs.")
|
||||
- else()
|
||||
- if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
- set(_LIBDIR_DEFAULT "lib64")
|
||||
- endif()
|
||||
- endif()
|
||||
- endif()
|
||||
-endif()
|
||||
|
||||
set(_gnu_install_dirs_vars
|
||||
BINDIR
|
||||
@@ -0,0 +1 @@
|
||||
nix-lib-path.patch
|
||||
@@ -0,0 +1,99 @@
|
||||
_ecmSetXdgDirs() {
|
||||
addToSearchPathOnce XDG_DATA_DIRS "$1/share"
|
||||
addToSearchPathOnce XDG_CONFIG_DIRS "$1/etc/xdg"
|
||||
addToSearchPathOnce RUNTIME_XDG_CONFIG_DIRS "$1/etc/xdg"
|
||||
}
|
||||
|
||||
_ecmSharePaths=( \
|
||||
"appdata" \
|
||||
"applications" \
|
||||
"config.cfg" \
|
||||
"dbus-1" \
|
||||
"desktop-directories" \
|
||||
"doc" \
|
||||
"icons" \
|
||||
"kconf_update" \
|
||||
"kservices5" \
|
||||
"kservicetypes5" \
|
||||
"knotifications5" \
|
||||
"kxmlgui5" \
|
||||
"locale" \
|
||||
"mime" \
|
||||
"polkit-1" \
|
||||
"sounds" \
|
||||
"templates" \
|
||||
"wallpapers" \
|
||||
)
|
||||
|
||||
_ecmPropagateNative() {
|
||||
for dir in ${_ecmSharePaths[@]}; do
|
||||
if [ -d "$1/share/$dir" ]; then
|
||||
propagateOnce propagatedNativeBuildInputs "$1"
|
||||
if [ -z "$crossConfig" ]; then
|
||||
propagateOnce propagatedUserEnvPkgs "$1"
|
||||
addToSearchPathOnce RUNTIME_XDG_DATA_DIRS "$1/share"
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
envHooks+=(_ecmSetXdgDirs _ecmPropagate)
|
||||
|
||||
_ecmPropagate() {
|
||||
for dir in ${_ecmSharePaths[@]}; do
|
||||
if [ -d "$1/share/$dir" ]; then
|
||||
propagateOnce propagatedBuildInputs "$1"
|
||||
propagateOnce propagatedUserEnvPkgs "$1"
|
||||
addToSearchPathOnce RUNTIME_XDG_DATA_DIRS "$1/share"
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
crossEnvHooks+=(_ecmPropagate)
|
||||
|
||||
_ecmConfig() {
|
||||
# Because we need to use absolute paths here, we must set *all* the paths.
|
||||
cmakeFlags+=" -DKDE_INSTALL_EXECROOTDIR=${!outputBin}"
|
||||
cmakeFlags+=" -DKDE_INSTALL_BINDIR=${!outputBin}/bin"
|
||||
cmakeFlags+=" -DKDE_INSTALL_SBINDIR=${!outputBin}/sbin"
|
||||
cmakeFlags+=" -DKDE_INSTALL_LIBDIR=${!outputLib}/lib"
|
||||
cmakeFlags+=" -DKDE_INSTALL_LIBEXECDIR=${!outputLib}/lib/libexec"
|
||||
cmakeFlags+=" -DKDE_INSTALL_CMAKEPACKAGEDIR=${!outputDev}/lib/cmake"
|
||||
cmakeFlags+=" -DKDE_INSTALL_QTPLUGINDIR=${!outputLib}/lib/qt5/plugins"
|
||||
cmakeFlags+=" -DKDE_INSTALL_PLUGINDIR=${!outputLib}/lib/qt5/plugins"
|
||||
cmakeFlags+=" -DKDE_INSTALL_QTQUICKIMPORTSDIR=${!outputLib}/lib/qt5/imports"
|
||||
cmakeFlags+=" -DKDE_INSTALL_QMLDIR=${!outputLib}/lib/qt5/qml"
|
||||
cmakeFlags+=" -DKDE_INSTALL_INCLUDEDIR=${!outputInclude}/include"
|
||||
cmakeFlags+=" -DKDE_INSTALL_LOCALSTATEDIR=/var"
|
||||
cmakeFlags+=" -DKDE_INSTALL_DATAROOTDIR=${!outputLib}/share"
|
||||
cmakeFlags+=" -DKDE_INSTALL_DATADIR=${!outputLib}/share"
|
||||
cmakeFlags+=" -DKDE_INSTALL_DOCBUNDLEDIR=${!outputLib}/share/doc/HTML"
|
||||
cmakeFlags+=" -DKDE_INSTALL_KCFGDIR=${!outputLib}/share/config.kcfg"
|
||||
cmakeFlags+=" -DKDE_INSTALL_KCONFUPDATEDIR=${!outputLib}/share/kconf_update"
|
||||
cmakeFlags+=" -DKDE_INSTALL_KSERVICES5DIR=${!outputLib}/share/kservices5"
|
||||
cmakeFlags+=" -DKDE_INSTALL_KSERVICETYPES5DIR=${!outputLib}/share/kservicetypes5"
|
||||
cmakeFlags+=" -DKDE_INSTALL_KXMLGUI5DIR=${!outputLib}/share/kxmlgui5"
|
||||
cmakeFlags+=" -DKDE_INSTALL_KNOTIFY5RCDIR=${!outputLib}/share/knotifications5"
|
||||
cmakeFlags+=" -DKDE_INSTALL_ICONDIR=${!outputLib}/share/icons"
|
||||
cmakeFlags+=" -DKDE_INSTALL_LOCALEDIR=${!outputLib}/share/locale"
|
||||
cmakeFlags+=" -DKDE_INSTALL_SOUNDDIR=${!outputLib}/share/sounds"
|
||||
cmakeFlags+=" -DKDE_INSTALL_TEMPLATEDIR=${!outputLib}/share/templates"
|
||||
cmakeFlags+=" -DKDE_INSTALL_WALLPAPERDIR=${!outputLib}/share/wallpapers"
|
||||
cmakeFlags+=" -DKDE_INSTALL_APPDIR=${!outputLib}/share/applications"
|
||||
cmakeFlags+=" -DKDE_INSTALL_DESKTOPDIR=${!outputLib}/share/desktop-directories"
|
||||
cmakeFlags+=" -DKDE_INSTALL_MIMEDIR=${!outputLib}/share/mime/packages"
|
||||
cmakeFlags+=" -DKDE_INSTALL_METAINFODIR=${!outputLib}/share/appdata"
|
||||
cmakeFlags+=" -DKDE_INSTALL_MANDIR=${!outputLib}/share/man"
|
||||
cmakeFlags+=" -DKDE_INSTALL_INFODIR=${!outputLib}/share/info"
|
||||
cmakeFlags+=" -DKDE_INSTALL_DBUSDIR=${!outputLib}/share/dbus-1"
|
||||
cmakeFlags+=" -DKDE_INSTALL_DBUSINTERFACEDIR=${!outputLib}/share/dbus-1/interfaces"
|
||||
cmakeFlags+=" -DKDE_INSTALL_DBUSSERVICEDIR=${!outputLib}/share/dbus-1/services"
|
||||
cmakeFlags+=" -DKDE_INSTALL_DBUSSYSTEMSERVICEDIR=${!outputLib}/share/dbus-1/system-services"
|
||||
cmakeFlags+=" -DKDE_INSTALL_SYSCONFDIR=${!outputLib}/etc"
|
||||
cmakeFlags+=" -DKDE_INSTALL_CONFDIR=${!outputLib}/etc/xdg"
|
||||
cmakeFlags+=" -DKDE_INSTALL_AUTOSTARTDIR=${!outputLib}/etc/xdg/autostart"
|
||||
}
|
||||
|
||||
preConfigureHooks+=(_ecmConfig)
|
||||
Reference in New Issue
Block a user