Git commit e5c028cd18fa9f5e508e7b88d64033880eca7fa6 by Andrew Shark. Committed on 03/01/2024 at 19:43. Pushed by ashark into branch 'master'.
Rename option "kdedir" to "install-dir" The kdedir is ambiguous, it is not clear if it is source, build or install dir. The kdedir naming dates back to the 2003 era when you had to define KDEDIR to define where KDE 3 was installed, just as QTDIR was used to define the location of the Qt 3 install. mpyne later added prefix for non-KDE modules and should have switched things over afterwards but never got around to it. By KDE SC 5 the requirement to use KDEDIR (or as it was by then, KDEDIRS) was dropped in favor of searching PATH. See https://invent.kde.org/sdk/kdesrc-build/-/commit/2f7b9477b7d44a2f88c148846c8f80f6921fd4ef#note_839381 M +2 -2 data/build-include/custom-qt5-libs.ksb M +4 -4 data/build-include/custom-qt6-libs.ksb M +1 -1 data/kde-env-master.sh.in M +1 -1 data/kdesrc-buildrc.in M +21 -30 doc/index.docbook M +2 -2 doc/man-kdesrc-build.1.docbook M +1 -1 doc/source-reference/ksb/Module.adoc M +2 -2 modules/ksb/Application.pm M +2 -2 modules/ksb/BuildContext.pm M +1 -1 modules/ksb/BuildSystem/KDECMake.pm M +1 -1 modules/ksb/Cmdline.pm M +2 -2 modules/ksb/FirstRun.pm M +5 -5 modules/ksb/Module.pm M +4 -4 t/unit/build-environment/platform-env-prepend.t M +1 -1 vim/syntax/kdesrc-buildrc.vim https://invent.kde.org/sdk/kdesrc-build/-/commit/e5c028cd18fa9f5e508e7b88d64033880eca7fa6 diff --git a/data/build-include/custom-qt5-libs.ksb b/data/build-include/custom-qt5-libs.ksb index 74a16b0e..114077b7 100644 --- a/data/build-include/custom-qt5-libs.ksb +++ b/data/build-include/custom-qt5-libs.ksb @@ -38,12 +38,12 @@ end module module libaccounts-qt repository https://gitlab.com/accounts-sso/libaccounts-qt.git - qmake-options PREFIX=${kdedir} + qmake-options PREFIX=${install-dir} end module module signond repository https://gitlab.com/accounts-sso/signond.git - qmake-options PREFIX=${kdedir} + qmake-options PREFIX=${install-dir} end module # For apper diff --git a/data/build-include/custom-qt6-libs.ksb b/data/build-include/custom-qt6-libs.ksb index 02ea74e5..1bac5d50 100644 --- a/data/build-include/custom-qt6-libs.ksb +++ b/data/build-include/custom-qt6-libs.ksb @@ -27,7 +27,7 @@ end module module libaccounts-qt repository https://gitlab.com/nicolasfella/libaccounts-qt.git branch qt6 - qmake-options PREFIX=${kdedir} + qmake-options PREFIX=${install-dir} override-build-system qmake6 end module @@ -35,7 +35,7 @@ end module module signond repository https://gitlab.com/nicolasfella/signond.git branch qt6 - qmake-options PREFIX=${kdedir} CONFIG+=no_etc + qmake-options PREFIX=${install-dir} CONFIG+=no_etc override-build-system qmake6 end module @@ -50,7 +50,7 @@ end module module libsignon-glib # this one does depend on qt, it seems repository https://gitlab.com/accounts-sso/libsignon-glib.git - qmake-options PREFIX=${kdedir} + qmake-options PREFIX=${install-dir} end module # Mandatory for krita @@ -112,7 +112,7 @@ end module module appstream repository https://github.com/ximion/appstream configure-flags -Dqt=true - set-env LDFLAGS -Wl,-rpath=${kdedir}/${libname} + set-env LDFLAGS -Wl,-rpath=${install-dir}/${libname} branch main end module diff --git a/data/kde-env-master.sh.in b/data/kde-env-master.sh.in index db0ee225..df107888 100644 --- a/data/kde-env-master.sh.in +++ b/data/kde-env-master.sh.in @@ -28,7 +28,7 @@ export XDG_CONFIG_HOME # be executable by testsuite. It is filtered from destination. # kdesrc-build: filter if ! test -n "$KDESRC_BUILD_TESTING"; then # kdesrc-build: filter # Where KDE libraries and applications are installed to. -kde_prefix="<% kdedir %>" # E.g. "$HOME/kf5" +kde_prefix="<% install-dir %>" # E.g. "$HOME/kf5" # Where Qt is installed to. If using the system Qt, leave blank and this script # will try to auto-detect. diff --git a/data/kdesrc-buildrc.in b/data/kdesrc-buildrc.in index 228475ab..72eef3af 100644 --- a/data/kdesrc-buildrc.in +++ b/data/kdesrc-buildrc.in @@ -12,7 +12,7 @@ global include-dependencies %{include-dependencies} # Install directory for KDE software - kdedir %{kdedir} + install-dir %{install-dir} # Directory for downloaded source code source-dir %{source-dir} diff --git a/doc/index.docbook b/doc/index.docbook index 058937d4..55e0c874 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -38,7 +38,7 @@ --> <!ENTITY configure-flags '<link linkend="conf-configure-flags">configure-flags</link>'> - <!ENTITY kdedir '<link linkend="conf-kdedir">kdedir</link>'> + <!ENTITY install-dir '<link linkend="conf-install-dir">install-dir</link>'> <!ENTITY qtdir '<link linkend="conf-qtdir">qtdir</link>'> <!ENTITY build-dir '<link linkend="conf-build-dir">build-dir</link>'> <!ENTITY source-dir '<link linkend="conf-source-dir">source-dir</link>'> @@ -452,7 +452,7 @@ The default settings should be appropriate to perform a </para> <itemizedlist> -<listitem><para><link linkend="conf-kdedir">kdedir</link>, which changes the +<listitem><para><link linkend="conf-install-dir">install-dir</link>, which changes the destination directory that your &kde; software is installed to. This defaults to <filename class="directory">~/kde/usr</filename>, which is a single-user installation.</para></listitem> @@ -1406,7 +1406,7 @@ Forced full rebuilds, by running <listitem><para> You can specify various environment values to be used during the build, -including <envar>KDEDIR</envar>, <envar>QTDIR</envar>, <envar>DO_NOT_COMPILE</envar>, +including <envar>QTDIR</envar>, <envar>DO_NOT_COMPILE</envar>, and <envar>CXXFLAGS</envar>. </para></listitem> @@ -1722,7 +1722,7 @@ option to find out more about it. To see the full list of options, see <listitem><para><link linkend="conf-cmake-options">cmake-options</link> to define what flags to configure a module with using &cmake;.</para></listitem> <listitem><para><link linkend="conf-branch">branch</link>, to checkout from a branch instead of <literal>master</literal>.</para></listitem> <listitem><para><link linkend="conf-configure-flags">configure-flags</link> to define what flags to configure &Qt; with.</para></listitem> -<listitem><para><link linkend="conf-kdedir">kdedir</link>, to set the directory to install &kde; to.</para></listitem> +<listitem><para><link linkend="conf-install-dir">install-dir</link>, to set the directory to install &kde; to.</para></listitem> <listitem><para><link linkend="conf-make-options">make-options</link>, to pass options to the &make; program (such as number of CPUs to use).</para></listitem> <listitem><para><link linkend="conf-qtdir">qtdir</link>, to set the path to &Qt;.</para></listitem> <listitem><para><link linkend="conf-source-dir">source-dir</link>, to change where to download the source code to.</para></listitem> @@ -2048,7 +2048,7 @@ running times for &kdesrc-build;.</para> You cannot override this setting in a module option. The default value is the $<envar>PATH</envar> that is set when the script starts. This environment variable should include the colon-separated paths of your development -toolchain. The paths <filename class="directory">$<envar>KDEDIR</envar>/bin</filename> and +toolchain. The paths <filename class="directory">install-dir/bin</filename> and <filename class="directory">$<envar>QTDIR</envar>/bin</filename> are automatically added. You may use the tilde (~) for any paths you add using this option.</para> </entry> @@ -2515,8 +2515,8 @@ flag.</para> </entry> </row> -<row id="conf-kdedir"> -<entry>kdedir</entry> +<row id="conf-install-dir"> +<entry>install-dir</entry> <entry> <simplelist type='horiz' columns='2'> <member>Type</member><member>String</member> @@ -2538,7 +2538,7 @@ well.</para> <member>Default value</member><member>Auto detected</member> </simplelist> <para>Set this option to change the default name of the installed library directory -inside $<envar>KDEDIR</envar> and $<envar>QTDIR</envar>. On many systems this is either +inside ${install-dir} and $<envar>QTDIR</envar>. On many systems this is either "lib" or "lib64". Auto-detection is attempted to set the correct name by default, but if the guess is wrong then it can be changed with this setting.</para> </entry> @@ -2553,7 +2553,7 @@ but if the guess is wrong then it can be changed with this setting.</para> <para>Set this option to set the environment variable <envar>LD_LIBRARY_PATH</envar> while building. You cannot override this setting in a module option. The default value is blank, but the paths <filename -class="directory">$<envar>KDEDIR</envar>/$<envar>LIBNAME</envar></filename> and <filename +class="directory">${install-dir}/$<envar>LIBNAME</envar></filename> and <filename class="directory">$<envar>QTDIR</envar>/$<envar>LIBNAME</envar></filename> are automatically added. You may use the tilde (~) for any paths you add using this option.</para> </entry> @@ -2739,7 +2739,7 @@ the auto-detection. In this case you can manually specify the correct build type <member>Type</member><member>String</member> </simplelist> <para>This option controls where to install the module (normally the -<option><link linkend="conf-kdedir">kdedir</link></option> setting is used). +<option><link linkend="conf-install-dir">install-dir</link></option> setting is used). Using this option allows you to install a module to a different directory than where the KDE Platform libraries are installed, such as if you were using &kdesrc-build; only to build applications.</para> @@ -3816,7 +3816,7 @@ environment as normal, and then execute the given program.</para> <para>This will not work to start a shell with the &kdesrc-build; environment in most cases however, since interactive shells typically reset at least part of the environment variables (such as <envar>PATH</envar> and -<envar>KDEDIRS</envar>) in the startup sequence. +${install-dir}) in the startup sequence. </para> <tip><para>If you want to see the environment used by &kdesrc-build;, you @@ -4031,11 +4031,6 @@ automatically to <envar>PKG_CONFIG_PATH</envar>. This means that you do not need to use &set-env; to add these. </para></listitem> -<listitem><para> -The setting for &kdedir; is automatically propagated to the <envar>KDEDIR</envar> -environment variable while building. (<envar>KDEDIRS</envar> is not affected). -</para></listitem> - <listitem><para> The setting for &qtdir; is automatically propagated to the <envar>QTDIR</envar> environment variable while building. @@ -4970,37 +4965,33 @@ If you are building the qt module (you are by default), add instead: <programlisting> QTDIR=(path to qtdir) # Such as ~/kdesrc/build/qt by default. -KDEDIR=(path to kdedir) # Such as ~/kde/usr by default. -KDEDIRS=$KDEDIR -PATH=$KDEDIR/bin:$QTDIR/bin:$PATH +PATH=${install-dir}/bin:$QTDIR/bin:$PATH MANPATH=$QTDIR/doc/man:$MANPATH # Act appropriately if LD_LIBRARY_PATH is not already set. if [ -z $LD_LIBRARY_PATH ]; then - LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib + LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib else - LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH + LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib:$LD_LIBRARY_PATH fi -export QTDIR KDEDIRS PATH MANPATH LD_LIBRARY_PATH +export QTDIR PATH MANPATH LD_LIBRARY_PATH </programlisting> or, if you are not building qt (and are using your system &Qt; instead), add this instead: <programlisting> -KDEDIR=(path to kdedir) # Such as ~/kde/usr by default. -KDEDIRS=$KDEDIR -PATH=$KDEDIR/bin:$QTDIR/bin:$PATH +PATH=${install-dir}/bin:$QTDIR/bin:$PATH # Act appropriately if LD_LIBRARY_PATH is not already set. if [ -z $LD_LIBRARY_PATH ]; then - LD_LIBRARY_PATH=$KDEDIR/lib + LD_LIBRARY_PATH=${install-dir}/lib else - LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH + LD_LIBRARY_PATH=${install-dir}/lib:$LD_LIBRARY_PATH fi -export KDEDIRS PATH LD_LIBRARY_PATH +export PATH LD_LIBRARY_PATH </programlisting> </para> @@ -5024,7 +5015,7 @@ variables in your <filename>.bash_profile</filename>: <programlisting> XDG_CONFIG_DIRS="/etc/xdg" -XDG_DATA_DIRS="${KDEDIR}/share:/usr/share" +XDG_DATA_DIRS="${install-dir}/share:/usr/share" export XDG_CONFIG_DIRS XDG_DATA_DIRS </programlisting> @@ -5046,7 +5037,7 @@ Open the <filename>.xinitrc</filename> text file from the home directory, or create it if necessary. Add the line: <programlisting> -<command>exec</command> <option>${KDEDIR}/bin/startkde</option> +<command>exec</command> <option>${install-dir}/bin/startkde</option> </programlisting> </para> diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook index 803583f6..fd0cb45f 100644 --- a/doc/man-kdesrc-build.1.docbook +++ b/doc/man-kdesrc-build.1.docbook @@ -613,12 +613,12 @@ Edit the "~/.bashrc" (or other shell rc file) to add &kdesrc-build; to your $PAT <listitem> <para> - Overrides the <option>kdedir</option> setting to be + Overrides the <option>install-dir</option> setting to be <replaceable>foo</replaceable> for this run. In addition, implies <option>--reconfigure</option>. It <emphasis>does not</emphasis> actually perform the action you would think it does (overriding the <option>prefix</option> option to change where modules are installed), - although by default modules are installed to the <option>kdedir</option> + although by default modules are installed to the <option>install-dir</option> setting if <option>prefix</option> is not set. </para> </listitem> diff --git a/doc/source-reference/ksb/Module.adoc b/doc/source-reference/ksb/Module.adoc index a1c65fe1..fe73d9ac 100644 --- a/doc/source-reference/ksb/Module.adoc +++ b/doc/source-reference/ksb/Module.adoc @@ -133,7 +133,7 @@ just from the method name, sadly. otherwise would have been the dest-dir. * ``installationPath``, as labeled on the tin. Prefers the 'prefix' option but - falls back to 'kdedir' if not set. + falls back to 'install-dir' if not set. ==== USER AND PERSISTENT OPTIONS diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index fa6cdaf1..8630caa5 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -1848,9 +1848,9 @@ sub _installCustomSessionDriver sub _checkForEssentialBuildPrograms { my $ctx = assert_isa(shift, 'ksb::BuildContext'); - my $kdedir = $ctx->getOption('kdedir'); + my $installdir = $ctx->getOption('install-dir'); my $qtdir = $ctx->getOption('qtdir'); - my @preferred_paths = ("$kdedir/bin", "$qtdir/bin"); + my @preferred_paths = ("$installdir/bin", "$qtdir/bin"); return 1 if pretending(); diff --git a/modules/ksb/BuildContext.pm b/modules/ksb/BuildContext.pm index 564547a2..ce78ac60 100644 --- a/modules/ksb/BuildContext.pm +++ b/modules/ksb/BuildContext.pm @@ -86,7 +86,7 @@ my $SCRIPT_VERSION = scriptVersion(); # There doesn't seem to be a great way to get this from CMake easily but we can # reason that if there's a /usr/lib64 (and it's not just a compat symlink), -# there will likely end up being a ${kdedir}/lib64 once kdesrc-build gets +# there will likely end up being a ${install-dir}/lib64 once kdesrc-build gets # done installing it my $libname = "lib"; $libname = "lib64" if (-d "/usr/lib64" and not -l "/usr/lib64"); @@ -157,7 +157,7 @@ our %defaultGlobalOptions = ( "dest-dir" => '${MODULE}', # single quotes used on purpose! "do-not-compile" => "", "http-proxy" => '', # Proxy server to use for HTTP. - "kdedir" => "$ENV{HOME}/kde/usr", + "install-dir" => "$ENV{HOME}/kde/usr", "libname" => $libname, "libpath" => "", "log-dir" => "log", diff --git a/modules/ksb/BuildSystem/KDECMake.pm b/modules/ksb/BuildSystem/KDECMake.pm index ecf4d844..67bc51c2 100644 --- a/modules/ksb/BuildSystem/KDECMake.pm +++ b/modules/ksb/BuildSystem/KDECMake.pm @@ -252,7 +252,7 @@ sub prepareModuleBuildEnvironment my ($self, $ctx, $module, $prefix) = @_; # - # Suppress injecting qtdir/kdedir related environment variables if a toolchain is also set + # Suppress injecting qtdir/install-dir related environment variables if a toolchain is also set # Let the toolchain files/definitions take care of themselves. # return if $self->hasToolchain(); diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm index fff3ecda..daa04aa7 100644 --- a/modules/ksb/Cmdline.pm +++ b/modules/ksb/Cmdline.pm @@ -189,7 +189,7 @@ sub readCommandLineOptionsAndSelectors (@options) prefix => sub { my ($optName, $arg) = @_; $auxOptions{prefix} = $arg; - $foundOptions{kdedir} = $arg; #TODO: Still needed for compat? + $foundOptions{'install-dir'} = $arg; #TODO: Still needed for compat? $foundOptions{reconfigure} = 1; }, query => sub { diff --git a/modules/ksb/FirstRun.pm b/modules/ksb/FirstRun.pm index 90592eed..743bd015 100644 --- a/modules/ksb/FirstRun.pm +++ b/modules/ksb/FirstRun.pm @@ -297,10 +297,10 @@ DONE $sampleRc =~ s/%\{build_include_dir}/$build_include_dir/g; my $gl = ksb::BuildContext->new()->{"build_options"}->{"global"}; # real global defaults - $gl->{$_} =~ s|^$ENV{HOME}|~| foreach qw(kdedir source-dir build-dir); + $gl->{$_} =~ s|^$ENV{HOME}|~| foreach qw(install-dir source-dir build-dir); $sampleRc =~ s/%\{include-dependencies}/$gl->{"include-dependencies"}/g; - $sampleRc =~ s/%\{kdedir}/$gl->{"kdedir"}/g; + $sampleRc =~ s/%\{install-dir}/$gl->{"install-dir"}/g; $sampleRc =~ s/%\{source-dir}/$gl->{"source-dir"}/g; $sampleRc =~ s/%\{build-dir}/$gl->{"build-dir"}/g; $sampleRc =~ s/%\{install-session-driver}/$gl->{"install-session-driver"}/g; diff --git a/modules/ksb/Module.pm b/modules/ksb/Module.pm index 58629e9a..0dd11afc 100644 --- a/modules/ksb/Module.pm +++ b/modules/ksb/Module.pm @@ -670,18 +670,18 @@ sub setupEnvironment ($self) # Build system's environment injection my $buildSystem = $self->buildSystem(); - # Suppress injecting qtdir/kdedir related environment variables if a toolchain is also set + # Suppress injecting qtdir/install-dir related environment variables if a toolchain is also set # Let the toolchain files/definitions take care of themselves. if ($buildSystem->hasToolchain()) { whisper ("\tNot setting environment variables for b[$self]: a custom toolchain is used"); } else { - my $kdedir = $self->getOption('kdedir'); + my $installdir = $self->getOption('install-dir'); my $qtdir = $self->getOption('qtdir'); my $libname = $self->getOption('libname'); # e.g. "lib" or "lib64" # Ensure the platform libraries we're building can be found, as long as they # are not the system's own libraries. - for my $platformDir ($qtdir, $kdedir) { + for my $platformDir ($qtdir, $installdir) { next unless $platformDir; # OK, assume system platform is usable next if $platformDir eq '/usr'; # Don't 'fix' things if system platform # manually set @@ -1024,7 +1024,7 @@ sub destDir ($self) # Subroutine to return the installation path of a given module (the value # that is passed to the CMAKE_INSTALL_PREFIX CMake option). -# It is based on the "prefix" and, if it is not set, the "kdedir" option. +# It is based on the "prefix" and, if it is not set, the "install-dir" option. # The user may use '$MODULE' or '${MODULE}' in the "prefix" option to have # them replaced by the name of the module in question. sub installationPath @@ -1034,7 +1034,7 @@ sub installationPath if (!$path) { - return $self->getOption('kdedir'); + return $self->getOption('install-dir'); } my $moduleName = $self->name(); diff --git a/t/unit/build-environment/platform-env-prepend.t b/t/unit/build-environment/platform-env-prepend.t index 0645dfa4..1cb0b2e5 100644 --- a/t/unit/build-environment/platform-env-prepend.t +++ b/t/unit/build-environment/platform-env-prepend.t @@ -1,4 +1,4 @@ -# Test that empty kdedir and/or qtdir do not cause empty /bin settings to be +# Test that empty install-dir and/or qtdir do not cause empty /bin settings to be # configured in environment. use ksb; @@ -31,7 +31,7 @@ sub no_bare_bin $newPath =~ s(:/bin:)()g; local $ENV{PATH} = $newPath; - $ctx->setOption('kdedir', ''); # must be set but empty + $ctx->setOption('install-dir', ''); # must be set but empty $ctx->setOption('qtdir', '/dev/null'); $mod->setupEnvironment(); @@ -52,7 +52,7 @@ $ctx->resetEnvironment(); local $ENV{PATH} = $newPath; $ctx->setOption('qtdir', ''); # must be set but empty - $ctx->setOption('kdedir', '/dev/null'); + $ctx->setOption('install-dir', '/dev/null'); $mod->setupEnvironment(); @@ -72,7 +72,7 @@ $ctx->resetEnvironment(); local $ENV{PATH} = $newPath; $ctx->setOption('qtdir', '/dev/null'); - $ctx->setOption('kdedir', '/dev/null'); + $ctx->setOption('install-dir', '/dev/null'); $mod->setupEnvironment(); diff --git a/vim/syntax/kdesrc-buildrc.vim b/vim/syntax/kdesrc-buildrc.vim index 49483e04..cb701fb4 100644 --- a/vim/syntax/kdesrc-buildrc.vim +++ b/vim/syntax/kdesrc-buildrc.vim @@ -37,7 +37,7 @@ setlocal iskeyword+=- " Keywords syn keyword ksbrcOption contained skipwhite nextgroup=ksbrcStringValue \ binpath branch build-dir cmake-options configure-flags - \ custom-build-command cxxflags dest-dir do-not-compile kdedir libname + \ custom-build-command cxxflags dest-dir do-not-compile install-dir libname \ libpath log-dir make-install-prefix make-options \ cmake-generator cmake-toolchain ninja-options \ override-build-system prefix qtdir repository