File indexing completed on 2024-04-21 05:41:54

0001 #!/usr/bin/perl -w
0002 
0003 # Alex Merry <alex.merry@kde.org> 2015
0004 #
0005 # Modifies CMakeLists.txt in current directory to use the new (as of
0006 # extra-cmake-modules 1.6.0) install variables.
0007 #
0008 # Do not use unless your project depends on extra-cmake-modules 1.6.0
0009 # or later.
0010 # find -iname "CMakeLists.txt" |xargs kde-dev-scripts/kf5/cmakelists_install_vars.pl
0011 
0012 use strict;
0013 
0014 my %old_var_map = (
0015     BUNDLE_INSTALL_DIR => 'BUNDLEDIR',
0016     EXEC_INSTALL_PREFIX => 'EXECROOTDIR',
0017     BIN_INSTALL_DIR => 'BINDIR',
0018     SBIN_INSTALL_DIR => 'SBINDIR',
0019     LIB_INSTALL_DIR => 'LIBDIR',
0020     LIBEXEC_INSTALL_DIR => 'LIBEXECDIR',
0021     KF5_LIBEXEC_INSTALL_DIR => 'LIBEXECDIR_KF5',
0022     CMAKECONFIG_INSTALL_PREFIX => 'CMAKEPACKAGEDIR',
0023     QT_PLUGIN_INSTALL_DIR => 'QTPLUGINDIR',
0024     PLUGIN_INSTALL_DIR => 'PLUGINDIR',
0025     IMPORTS_INSTALL_DIR => 'QTQUICKIMPORTSDIR',
0026     QML_INSTALL_DIR => 'QMLDIR',
0027     INCLUDE_INSTALL_DIR => 'INCLUDEDIR',
0028     KF5_INCLUDE_INSTALL_DIR => 'INCLUDEDIR_KF5',
0029     DATA_INSTALL_DIR => 'DATADIR',
0030     KF5_DATA_INSTALL_DIR => 'DATADIR_KF5',
0031     HTML_INSTALL_DIR => 'DOCBUNDLEDIR',
0032     KCFG_INSTALL_DIR => 'KCFGDIR',
0033     KCONF_UPDATE_INSTALL_DIR => 'KCONFUPDATEDIR',
0034     SERVICES_INSTALL_DIR => 'KSERVICES5DIR',
0035     SERVICETYPES_INSTALL_DIR => 'KSERVICETYPES5DIR',
0036     KXMLGUI_INSTALL_DIR => 'KXMLGUI5DIR',
0037     KNOTIFYRC_INSTALL_DIR => 'KNOTIFY5RCDIR',
0038     ICON_INSTALL_DIR => 'ICONDIR',
0039     LOCALE_INSTALL_DIR => 'LOCALEDIR',
0040     SOUND_INSTALL_DIR => 'SOUNDDIR',
0041     TEMPLATES_INSTALL_DIR => 'TEMPLATEDIR',
0042     WALLPAPER_INSTALL_DIR => 'WALLPAPERDIR',
0043     XDG_APPS_INSTALL_DIR => 'APPDIR',
0044     XDG_DIRECTORY_INSTALL_DIR => 'DESKTOPDIR',
0045     XDG_MIME_INSTALL_DIR => 'MIMEDIR',
0046     MAN_INSTALL_DIR => 'MANDIR',
0047     DBUS_INTERFACES_INSTALL_DIR => 'DBUSINTERFACEDIR',
0048     DBUS_SERVICES_INSTALL_DIR => 'DBUSSERVICEDIR',
0049     DBUS_SYSTEM_SERVICES_INSTALL_DIR => 'DBUSSYSTEMSERVICEDIR',
0050     SYSCONF_INSTALL_DIR => 'SYSCONFDIR',
0051     CONFIG_INSTALL_DIR => 'CONFDIR',
0052     AUTOSTART_INSTALL_DIR => 'AUTOSTARTDIR',
0053     SHARE_INSTALL_PREFIX => 'DATAROOTDIR',
0054     SYSTEMD_UNIT_INSTALL_DIR => 'SYSTEMDUNITDIR',
0055     SYSTEMD_USER_UNIT_INSTALL_DIR => 'SYSTEMDUSERUNITDIR',
0056 );
0057 
0058 my @new_var_suffixes = (
0059     'METAINFODIR',
0060     'INFODIR',
0061     'DBUSDIR',
0062     'LOCALSTATEDIR',
0063     'SHAREDSTATEDIR',
0064     'LIBEXECDIR_KF5',
0065 );
0066 push(@new_var_suffixes, values %old_var_map);
0067 
0068 my %extra_changes = (
0069     INSTALL_TARGETS_DEFAULT_ARGS => 'KDE_INSTALL_TARGETS_DEFAULT_ARGS'
0070 );
0071 
0072 foreach my $file (@ARGV) {
0073 open(my $FILE, "<", $file) || die;
0074 my $modified = 0;
0075 my @l = map {
0076     my $orig = $_;
0077     my $updated = $_;
0078 
0079     # all variables we care about have "INSTALL" in their name
0080     if (/INSTALL/) {
0081         while (my ($oldvar,$suffix) = each(%old_var_map)) {
0082             $updated =~ s/\${$oldvar}/\${KDE_INSTALL_$suffix}/;
0083         }
0084         foreach (@new_var_suffixes) {
0085             $updated =~ s/\${CMAKE_INSTALL_$_}/\${KDE_INSTALL_$_}/;
0086         }
0087         while (my ($oldvalue,$newvalue) = each(%extra_changes)) {
0088             $updated =~ s/\${$oldvalue}/\${$newvalue}/;
0089         }
0090     }
0091 
0092     $modified ||= $orig ne $updated;
0093     $updated;
0094 } <$FILE>;
0095 
0096 if ($modified) {
0097     open (my $OUT, ">", $file);
0098     print $OUT @l;
0099     close ($OUT);
0100 }
0101 }
0102 # vi:et:sts=4:sw=4