[kde-dev-scripts] kf5: Add script to convert to new KDEInstallDirs variable names.

Alex Merry alex.merry at kde.org
Sat Jan 10 16:26:06 UTC 2015


Git commit 98d6363ad17559b87e8b203954381727ebd305d8 by Alex Merry.
Committed on 10/01/2015 at 16:23.
Pushed by alexmerry into branch 'master'.

Add script to convert to new KDEInstallDirs variable names.

This is a separate script to adapt_cmakelists_file.pl, because it
produces CMakeLists.txt files that depend on e-c-m 1.6.0 or later, and
that may not be acceptable for all projects.

CCMAIL: kde-buildsystem at kde.org
CCMAIL: kde-frameworks-devel at kde.org

M  +1    -1    kf5/adapt_cmakelists_file.pl
A  +98   -0    kf5/cmakelists_install_vars.pl

http://commits.kde.org/kde-dev-scripts/98d6363ad17559b87e8b203954381727ebd305d8

diff --git a/kf5/adapt_cmakelists_file.pl b/kf5/adapt_cmakelists_file.pl
index 0834d4e..4f4cb76 100755
--- a/kf5/adapt_cmakelists_file.pl
+++ b/kf5/adapt_cmakelists_file.pl
@@ -492,7 +492,7 @@ my @l = map {
      if (my ($begin, $end) = $_ =~ $regexp) {
         $_ = $begin . "\${KNOTIFYRC_INSTALL_DIR}" . $end . "\n";
         $modified = 1;
-     } elsif (not /KNOTIFYRC_INSTALL_DIR/) {
+     } elsif (not /KNOTIFYRC_INSTALL_DIR/ and not /_INSTALL_KNOTIFY5RCDIR/) {
         my $line = $_;
         $line =~ s/\s*$//;
         print "Could not fix a .notifyrc file installation call ($line)\n"
diff --git a/kf5/cmakelists_install_vars.pl b/kf5/cmakelists_install_vars.pl
new file mode 100755
index 0000000..8926048
--- /dev/null
+++ b/kf5/cmakelists_install_vars.pl
@@ -0,0 +1,98 @@
+#!/usr/bin/perl -w
+
+# Alex Merry <alex.merry at kde.org> 2015
+#
+# Modifies CMakeLists.txt in current directory to use the new (as of
+# extra-cmake-modules 1.6.0) install variables.
+#
+# Do not use unless your project depends on extra-cmake-modules 1.6.0
+# or later.
+
+use strict;
+my $file = "CMakeLists.txt";
+
+my %old_var_map = (
+    BUNDLE_INSTALL_DIR => 'BUNDLEDIR',
+    EXEC_INSTALL_PREFIX => 'EXECROOTDIR',
+    BIN_INSTALL_DIR => 'BINDIR',
+    SBIN_INSTALL_DIR => 'SBINDIR',
+    LIB_INSTALL_DIR => 'LIBDIR',
+    LIBEXEC_INSTALL_DIR => 'LIBEXECDIR',
+    KF5_LIBEXEC_INSTALL_DIR => 'LIBEXECDIR_KF5',
+    CMAKECONFIG_INSTALL_PREFIX => 'CMAKEPACKAGEDIR',
+    QT_PLUGIN_INSTALL_DIR => 'QTPLUGINDIR',
+    PLUGIN_INSTALL_DIR => 'PLUGINDIR',
+    IMPORTS_INSTALL_DIR => 'QTQUICKIMPORTSDIR',
+    QML_INSTALL_DIR => 'QMLDIR',
+    INCLUDE_INSTALL_DIR => 'INCLUDEDIR',
+    KF5_INCLUDE_INSTALL_DIR => 'INCLUDEDIR_KF5',
+    DATA_INSTALL_DIR => 'DATADIR',
+    KF5_DATA_INSTALL_DIR => 'DATADIR_KF5',
+    HTML_INSTALL_DIR => 'DOCBUNDLEDIR',
+    KCFG_INSTALL_DIR => 'KCFGDIR',
+    KCONF_UPDATE_INSTALL_DIR => 'KCONFUPDATEDIR',
+    SERVICES_INSTALL_DIR => 'KSERVICES5DIR',
+    SERVICETYPES_INSTALL_DIR => 'KSERVICETYPES5DIR',
+    KXMLGUI_INSTALL_DIR => 'KXMLGUI5DIR',
+    KNOTIFYRC_INSTALL_DIR => 'KNOTIFY5RCDIR',
+    ICON_INSTALL_DIR => 'ICONDIR',
+    LOCALE_INSTALL_DIR => 'LOCALEDIR',
+    SOUND_INSTALL_DIR => 'SOUNDDIR',
+    TEMPLATES_INSTALL_DIR => 'TEMPLATEDIR',
+    WALLPAPER_INSTALL_DIR => 'WALLPAPERDIR',
+    XDG_APPS_INSTALL_DIR => 'APPDIR',
+    XDG_DIRECTORY_INSTALL_DIR => 'DESKTOPDIR',
+    XDG_MIME_INSTALL_DIR => 'MIMEDIR',
+    MAN_INSTALL_DIR => 'MANDIR',
+    DBUS_INTERFACES_INSTALL_DIR => 'DBUSINTERFACEDIR',
+    DBUS_SERVICES_INSTALL_DIR => 'DBUSSERVICEDIR',
+    DBUS_SYSTEM_SERVICES_INSTALL_DIR => 'DBUSSYSTEMSERVICEDIR',
+    SYSCONF_INSTALL_DIR => 'SYSCONFDIR',
+    CONFIG_INSTALL_DIR => 'CONFDIR',
+    AUTOSTART_INSTALL_DIR => 'AUTOSTARTDIR',
+    SHARE_INSTALL_PREFIX => 'DATAROOTDIR',
+);
+
+my @new_var_suffixes = (
+    'METAINFODIR',
+    'INFODIR',
+    'DBUSDIR',
+    'LOCALSTATEDIR',
+    'SHAREDSTATEDIR',
+    'LIBEXECDIR_KF5',
+);
+push(@new_var_suffixes, values %old_var_map);
+
+my %extra_changes = (
+    INSTALL_TARGETS_DEFAULT_ARGS => 'KDE_INSTALL_TARGETS_DEFAULT_ARGS'
+);
+
+open(my $FILE, "<", $file) || die;
+my $modified = 0;
+my @l = map {
+    my $orig = $_;
+    my $updated = $_;
+
+    # all variables we care about have "INSTALL" in their name
+    if (/INSTALL/) {
+        while (my ($oldvar,$suffix) = each(%old_var_map)) {
+            $updated =~ s/\b$oldvar\b/KDE_INSTALL_$suffix/;
+        }
+        foreach (@new_var_suffixes) {
+            $updated =~ s/\bCMAKE_INSTALL_$_\b/KDE_INSTALL_$_/;
+        }
+        while (my ($oldvalue,$newvalue) = each(%extra_changes)) {
+            $updated =~ s/\b$oldvalue\b/$newvalue/;
+        }
+    }
+
+    $modified ||= $orig ne $updated;
+    $updated;
+} <$FILE>;
+
+if ($modified) {
+    open (my $OUT, ">", $file);
+    print $OUT @l;
+    close ($OUT);
+}
+# vi:et:sts=4:sw=4


More information about the Kde-buildsystem mailing list