summary refs log tree commit diff
path: root/pkgs/desktops/lxqt/lxqt-build-tools
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/lxqt/lxqt-build-tools')
-rw-r--r--pkgs/desktops/lxqt/lxqt-build-tools/LXQtConfigVars.cmake7
-rw-r--r--pkgs/desktops/lxqt/lxqt-build-tools/default.nix17
-rw-r--r--pkgs/desktops/lxqt/lxqt-build-tools/setup-hook.sh15
3 files changed, 34 insertions, 5 deletions
diff --git a/pkgs/desktops/lxqt/lxqt-build-tools/LXQtConfigVars.cmake b/pkgs/desktops/lxqt/lxqt-build-tools/LXQtConfigVars.cmake
new file mode 100644
index 00000000000..fd7ef927f8b
--- /dev/null
+++ b/pkgs/desktops/lxqt/lxqt-build-tools/LXQtConfigVars.cmake
@@ -0,0 +1,7 @@
+add_definitions("-DLXQT_RELATIVE_SHARE_DIR=\"${LXQT_RELATIVE_SHARE_DIR}\"")
+add_definitions("-DLXQT_SHARE_DIR=\"${LXQT_SHARE_DIR}\"")
+add_definitions("-DLXQT_RELATIVE_SHARE_TRANSLATIONS_DIR=\"${LXQT_RELATIVE_TRANSLATIONS_DIR}\"")
+add_definitions("-DLXQT_SHARE_TRANSLATIONS_DIR=\"${LXQT_TRANSLATIONS_DIR}\"")
+add_definitions("-DLXQT_GRAPHICS_DIR=\"${LXQT_GRAPHICS_DIR}\"")
+add_definitions("-DLXQT_ETC_XDG_DIR=\"${LXQT_ETC_XDG_DIR}\"")
+add_definitions("-DLXQT_DATA_DIR=\"${LXQT_DATA_DIR}\"")
diff --git a/pkgs/desktops/lxqt/lxqt-build-tools/default.nix b/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
index f55fa579ff4..626c99fcf9c 100644
--- a/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
+++ b/pkgs/desktops/lxqt/lxqt-build-tools/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, pcre, qtbase, glib }:
+{ lib, mkDerivation, fetchFromGitHub, cmake, pkgconfig, pcre, qtbase, glib }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "lxqt-build-tools";
   version = "0.6.0";
 
@@ -11,13 +11,20 @@ stdenv.mkDerivation rec {
     sha256 = "0i7m9s4g5rsw28vclc9nh0zcapx85cqfwxkx7rrw7wa12svy7pm2";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig setupHook ];
 
   buildInputs = [ qtbase glib pcre ];
 
-  preConfigure = ''cmakeFlags+=" -DLXQT_ETC_XDG_DIR=$out/etc/xdg"'';
+  setupHook = ./setup-hook.sh;
 
-  meta = with stdenv.lib; {
+  # We're dependent on this macro doing add_definitions in most places
+  # But we have the setup-hook to set the values.
+  postInstall = ''
+    rm $out/share/cmake/lxqt-build-tools/modules/LXQtConfigVars.cmake
+    cp ${./LXQtConfigVars.cmake} $out/share/cmake/lxqt-build-tools/modules/LXQtConfigVars.cmake
+  '';
+
+  meta = with lib; {
     description = "Various packaging tools and scripts for LXQt applications";
     homepage = https://github.com/lxqt/lxqt-build-tools;
     license = licenses.lgpl21;
diff --git a/pkgs/desktops/lxqt/lxqt-build-tools/setup-hook.sh b/pkgs/desktops/lxqt/lxqt-build-tools/setup-hook.sh
new file mode 100644
index 00000000000..e40765116e9
--- /dev/null
+++ b/pkgs/desktops/lxqt/lxqt-build-tools/setup-hook.sh
@@ -0,0 +1,15 @@
+LXQtCMakePostHook() {
+  cmakeFlagsArray+=(
+    -DLXQT_LIBRARY_NAME=lxqt
+    -DLXQT_SHARE_DIR=$out/share/lxqt
+    -DLXQT_TRANSLATIONS_DIR=$out/share/lxqt/translations
+    -DLXQT_GRAPHICS_DIR=$out/share/lxqt/graphics
+    -DLXQT_ETC_XDG_DIR=$out/etc/xdg
+    -DLXQT_DATA_DIR=$out/share
+    -DLXQT_RELATIVE_SHARE_DIR=lxqt
+    -DLXQT_RELATIVE_SHARE_TRANSLATIONS_DIR=lxqt/translations
+  )
+
+}
+
+postHooks+=(LXQtCMakePostHook)