Git commit 2a2f6fd7a956a3657908b91dfe074c544e954e74 by Andrew Shark. Committed on 17/01/2024 at 17:57. Pushed by ashark into branch 'master'.
Rename qtdir option to qt-install-dir Also remove usage of ancient environment variable QTDIR, which is not used today. CC: #142 M +1 -1 completions/zsh/_kdesrc-build M +2 -2 data/build-include/qt5.ksb M +2 -2 data/build-include/qt6.ksb M +1 -1 data/kde-env-master.sh.in M +1 -1 data/kdesrc-buildrc.in M +6 -7 doc/appendix-profile.docbook M +1 -6 doc/basic-features.docbook M +7 -7 doc/conf-options-table.docbook M +2 -2 doc/features.docbook M +0 -1 doc/index.docbook M +1 -1 doc/kdesrc-buildrc.docbook M +5 -2 modules/ksb/Application.pm M +1 -1 modules/ksb/BuildContext.pm M +8 -10 modules/ksb/BuildSystem/KDECMake.pm M +3 -3 modules/ksb/BuildSystem/Qt4.pm M +5 -5 modules/ksb/BuildSystem/Qt5.pm M +1 -1 modules/ksb/BuildSystem/Qt6.pm M +3 -3 modules/ksb/Module.pm M +1 -1 t/data/bug-395627/kdesrc-buildrc 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/2a2f6fd7a956a3657908b91dfe074c544e954e74 diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build index 3741e76f..8260529f 100644 --- a/completions/zsh/_kdesrc-build +++ b/completions/zsh/_kdesrc-build @@ -64,7 +64,7 @@ _arguments \ "--print-modules" \ "(--purge-old-logs --no-purge-old-logs)"{--purge-old-logs,--no-purge-old-logs} \ "--qmake-options"":argument:" \ - "--qtdir"":argument:" \ + "--qt-install-dir"":argument:" \ "--query"":argument:" \ "--rc-file"":::_files" \ "--rebuild-failures" \ diff --git a/data/build-include/qt5.ksb b/data/build-include/qt5.ksb index 7dee09f2..d64b3da6 100644 --- a/data/build-include/qt5.ksb +++ b/data/build-include/qt5.ksb @@ -14,8 +14,8 @@ module-set qt5-set # you cannot get it to compile by uncommenting the next line. # ignore-modules qtwebengine - # install path. This *MUST* match your qtdir setting in kdesrc-buildrc! - install-dir ${qtdir} + # install path. This *MUST* match your qt-install-dir setting in kdesrc-buildrc! + install-dir ${qt-install-dir} configure-flags -release -reduce-relocations -force-debug-info -separate-debug-info -skip qtdocgallery diff --git a/data/build-include/qt6.ksb b/data/build-include/qt6.ksb index 4259b401..26c7384d 100644 --- a/data/build-include/qt6.ksb +++ b/data/build-include/qt6.ksb @@ -9,8 +9,8 @@ module-set qt6-set repository qt6-copy # as defined in kdesrc-buildrc-kf6-sample branch 6.6 - # install path. This *MUST* match your qtdir setting in kdesrc-buildrc! - install-dir ${qtdir} + # install path. This *MUST* match your qt-install-dir setting in kdesrc-buildrc! + install-dir ${qt-install-dir} # These have been manually placed in dependency order based on the # .gitmodules file in https://code.qt.io/cgit/qt/qt5.git/tree/.gitmodules diff --git a/data/kde-env-master.sh.in b/data/kde-env-master.sh.in index df107888..70e8452e 100644 --- a/data/kde-env-master.sh.in +++ b/data/kde-env-master.sh.in @@ -32,7 +32,7 @@ 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. -qt_prefix="<% qtdir %>" # E.g. "$HOME/qt5" or "/usr" on many systems. +qt_prefix="<% qt-install-dir %>" # E.g. "$HOME/qt5" or "/usr" on many systems. else # kdesrc-build: filter kde_prefix="$HOME/kf5" # kdesrc-build: filter qt_prefix="$HOME/qt5" # kdesrc-build: filter diff --git a/data/kdesrc-buildrc.in b/data/kdesrc-buildrc.in index 62de3d1a..771d5aa9 100644 --- a/data/kdesrc-buildrc.in +++ b/data/kdesrc-buildrc.in @@ -21,7 +21,7 @@ global # relative to source-dir by default build-dir %{build-dir} - # qtdir ~/kde/qt # Where to install Qt6 if kdesrc-build supplies it + # qt-install-dir ~/kde/qt # Where to install Qt6 if kdesrc-build supplies it cmake-options -DCMAKE_BUILD_TYPE=RelWithDebInfo diff --git a/doc/appendix-profile.docbook b/doc/appendix-profile.docbook index a9293a92..517465fc 100644 --- a/doc/appendix-profile.docbook +++ b/doc/appendix-profile.docbook @@ -28,25 +28,24 @@ and add to the end of the file: 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. -PATH=${install-dir}/bin:$QTDIR/bin:$PATH -MANPATH=$QTDIR/doc/man:$MANPATH +PATH=${install-dir}/bin:${qt-install-dir}/bin:$PATH +MANPATH=${qt-install-dir}/doc/man:$MANPATH # Act appropriately if LD_LIBRARY_PATH is not already set. if [ -z $LD_LIBRARY_PATH ]; then - LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib + LD_LIBRARY_PATH=${install-dir}:/lib:${qt-install-dir}/lib else - LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib:$LD_LIBRARY_PATH + LD_LIBRARY_PATH=${install-dir}:/lib:${qt-install-dir}/lib:$LD_LIBRARY_PATH fi -export QTDIR PATH MANPATH LD_LIBRARY_PATH +export PATH MANPATH LD_LIBRARY_PATH </programlisting> or, if you are not building qt (and are using your system &Qt; instead), add this instead: <programlisting> -PATH=${install-dir}/bin:$QTDIR/bin:$PATH +PATH=${install-dir}/bin:${qt-install-dir}/bin:$PATH # Act appropriately if LD_LIBRARY_PATH is not already set. if [ -z $LD_LIBRARY_PATH ]; then diff --git a/doc/basic-features.docbook b/doc/basic-features.docbook index 2331e2ab..f9ce58c1 100644 --- a/doc/basic-features.docbook +++ b/doc/basic-features.docbook @@ -12,7 +12,7 @@ located at <ulink url="http://code.qt.io/cgit/qt/">http://code.qt.io/cgit/qt/</ulink>.</para></note> <para>In order to build &Qt;, you should make sure that the -<link linkend="conf-qtdir">qtdir</link> setting is set to the directory you'd +<link linkend="conf-qt-install-dir">qt-install-dir</link> option is set to the directory you'd like to install &Qt; to, as described in <xref linkend="configure-data"/>.</para> <para>You should then ensure that the qt module is added to @@ -75,11 +75,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 &qtdir; is automatically propagated to the <envar>QTDIR</envar> -environment variable while building. -</para></listitem> - </itemizedlist> </sect2> diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index 7ee10c94..be58e68b 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -316,8 +316,8 @@ 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">install-dir/bin</filename> and -<filename class="directory">$<envar>QTDIR</envar>/bin</filename> are automatically added. You +toolchain. The paths <filename class="directory">${install-dir}/bin</filename> and +<filename class="directory">${install-dir}/bin</filename> are automatically added. You may use the tilde (~) for any paths you add using this option.</para> </entry> </row> @@ -811,7 +811,7 @@ in the path to have them expanded to the module's name.</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 ${install-dir} and $<envar>QTDIR</envar>. On many systems this is either +inside ${install-dir} and ${qt-install-dir}. 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> @@ -827,7 +827,7 @@ but if the guess is wrong then it can be changed with this setting.</para> <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">${install-dir}/$<envar>LIBNAME</envar></filename> and <filename -class="directory">$<envar>QTDIR</envar>/$<envar>LIBNAME</envar></filename> are automatically added. +class="directory">${qt-install-dir}/$<envar>LIBNAME</envar></filename> are automatically added. You may use the tilde (~) for any paths you add using this option.</para> </entry> </row> @@ -1033,13 +1033,13 @@ installs the module. </entry> </row> -<row id="conf-qtdir"> -<entry><link linkend="conf-qtdir">qtdir</link></entry> +<row id="conf-qt-install-dir"> +<entry><link linkend="conf-qt-install-dir">qt-install-dir</link></entry> <entry> <simplelist type='horiz' columns='2'> <member>Type</member><member>String</member> </simplelist> -<para>Set this option to set the environment variable <envar>QTDIR</envar> while building. +<para>This option controls where to install qt modules after build. If you do not specify this option, &kdesrc-build; will assume that &Qt; is provided by the operating system. </para> diff --git a/doc/features.docbook b/doc/features.docbook index 723cb706..cbc46429 100644 --- a/doc/features.docbook +++ b/doc/features.docbook @@ -145,7 +145,7 @@ a base &kde; single-user installation from the anonymous source repositories. <listitem><para> Tilde-expansion for your configuration options. For example, you can specify: -<programlisting>qtdir ~/kdesrc/build/qt</programlisting> +<programlisting>install-dir ~/kde/usr</programlisting> </para></listitem> <listitem><para> @@ -166,7 +166,7 @@ Forced full rebuilds, by running <listitem><para> You can specify various environment values to be used during the build, -including <envar>QTDIR</envar>, <envar>DO_NOT_COMPILE</envar>, +including <envar>DO_NOT_COMPILE</envar> and <envar>CXXFLAGS</envar>. </para></listitem> diff --git a/doc/index.docbook b/doc/index.docbook index cd6ecdb9..e6164101 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -39,7 +39,6 @@ <!ENTITY configure-flags '<link linkend="conf-configure-flags">configure-flags</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>'> <!ENTITY colorful-output '<link linkend="conf-colorful-output">colorful-output</link>'> diff --git a/doc/kdesrc-buildrc.docbook b/doc/kdesrc-buildrc.docbook index 68cd4d7e..1ad21432 100644 --- a/doc/kdesrc-buildrc.docbook +++ b/doc/kdesrc-buildrc.docbook @@ -239,7 +239,7 @@ option to find out more about it. To see the full list of options, see <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-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-qt-install-dir">qt-install-dir</link>, to set the directory to install &Qt; to.</para></listitem> <listitem><para><link linkend="conf-source-dir">source-dir</link>, to change where to download the source code to.</para></listitem> </itemizedlist> diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index 92c63258..f3283cd3 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -963,6 +963,9 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, $endRE=undef) if ($option eq "prefix") { # todo This message is temporary. Remove it after 14.04.2024. error "r[Please edit your config. Replace \"b[prefix]r[\" with \"b[install-dir]r[\"."; } + if ($option eq "qtdir") { # todo This message is temporary. Remove it after 17.04.2024. + error "r[Please edit your config. Replace \"b[qtdir]r[\" with \"b[qt-install-dir]r[\"."; + } die ksb::BuildException::Config->new($option, "Unrecognized option \"$option\" found at $current_file:$."); } @@ -1864,8 +1867,8 @@ sub _checkForEssentialBuildPrograms { my $ctx = assert_isa(shift, 'ksb::BuildContext'); my $installdir = $ctx->getOption('install-dir'); - my $qtdir = $ctx->getOption('qtdir'); - my @preferred_paths = ("$installdir/bin", "$qtdir/bin"); + my $qt_installdir = $ctx->getOption('qt-install-dir'); + my @preferred_paths = ("$installdir/bin", "$qt_installdir/bin"); return 1 if pretending(); diff --git a/modules/ksb/BuildContext.pm b/modules/ksb/BuildContext.pm index aa499548..4b7419a2 100644 --- a/modules/ksb/BuildContext.pm +++ b/modules/ksb/BuildContext.pm @@ -167,7 +167,7 @@ our %GlobalOptions_with_parameter = ( "override-build-system" => "", "persistent-data-file" => "", "qmake-options" => "", - "qtdir" => "", + "qt-install-dir" => "", "remove-after-install" => "none", # { none, builddir, all } "revision" => "", # Was only useful for Subversion modules at cmdline. TODO Implement for git? "source-dir" => "$ENV{HOME}/kde/src", diff --git a/modules/ksb/BuildSystem/KDECMake.pm b/modules/ksb/BuildSystem/KDECMake.pm index be94fe58..0c65534f 100644 --- a/modules/ksb/BuildSystem/KDECMake.pm +++ b/modules/ksb/BuildSystem/KDECMake.pm @@ -251,10 +251,8 @@ sub prepareModuleBuildEnvironment { my ($self, $ctx, $module, $prefix) = @_; - # - # Suppress injecting qtdir/install-dir related environment variables if a toolchain is also set + # Suppress injecting qt-install-dir/install-dir related environment variables if a toolchain is also set # Let the toolchain files/definitions take care of themselves. - # return if $self->hasToolchain(); # Avoid moving /usr up in env vars @@ -268,11 +266,11 @@ sub prepareModuleBuildEnvironment $ctx->prependEnvironmentValue('XDG_DATA_DIRS', "$prefix/share"); } - my $qtdir = $module->getOption('qtdir'); - if ($qtdir && $qtdir ne $prefix) { + my $qt_installdir = $module->getOption('qt-install-dir'); + if ($qt_installdir && $qt_installdir ne $prefix) { # Ensure we can find Qt5's own CMake modules - $ctx->prependEnvironmentValue('CMAKE_PREFIX_PATH', $qtdir); - $ctx->prependEnvironmentValue('CMAKE_MODULE_PATH', "$qtdir/lib/cmake"); + $ctx->prependEnvironmentValue('CMAKE_PREFIX_PATH', $qt_installdir); + $ctx->prependEnvironmentValue('CMAKE_MODULE_PATH', "$qt_installdir/lib/cmake"); } } @@ -547,12 +545,12 @@ sub _safe_run_cmake push @commands, "-DCMAKE_INSTALL_PREFIX=$installdir"; # Add custom Qt to the prefix (but don't overwrite a user-set install-dir) - my $qtdir = $module->getOption('qtdir'); - if ($qtdir && $qtdir ne $installdir && + my $qt_installdir = $module->getOption('qt-install-dir'); + if ($qt_installdir && $qt_installdir ne $installdir && !grep { /^\s*-DCMAKE_PREFIX_PATH/ } (@commands) ) { - push @commands, "-DCMAKE_PREFIX_PATH=$qtdir"; + push @commands, "-DCMAKE_PREFIX_PATH=$qt_installdir"; } if ($module->getOption('run-tests') && diff --git a/modules/ksb/BuildSystem/Qt4.pm b/modules/ksb/BuildSystem/Qt4.pm index 72e1ab74..25a06ccc 100644 --- a/modules/ksb/BuildSystem/Qt4.pm +++ b/modules/ksb/BuildSystem/Qt4.pm @@ -18,7 +18,7 @@ sub needsInstalled { my $self = assert_isa(shift, 'ksb::BuildSystem::Qt4'); my $module = $self->module(); - return $module->getOption('qtdir') ne $module->fullpath('build'); + return $module->getOption('qt-install-dir') ne $module->fullpath('build'); } sub name @@ -52,11 +52,11 @@ sub configureInternal my $cxxflags = $module->getOption('cxxflags'); $module->buildContext()->queueEnvironmentVariable('CXXFLAGS', $cxxflags); - my $prefix = $module->getOption('qtdir'); + my $prefix = $module->getOption('qt-install-dir'); if (!$prefix) { - error ("\tThe b[qtdir] option must be set to determine where to install r[b[$module]"); + error ("\tThe b[qt-install-dir] option must be set to determine where to install r[b[$module]"); return 0; } diff --git a/modules/ksb/BuildSystem/Qt5.pm b/modules/ksb/BuildSystem/Qt5.pm index 658fe633..8c0b1172 100644 --- a/modules/ksb/BuildSystem/Qt5.pm +++ b/modules/ksb/BuildSystem/Qt5.pm @@ -45,22 +45,22 @@ sub configureInternal $module->buildContext()->queueEnvironmentVariable('CXXFLAGS', $cxxflags); my $installdir = $module->getOption('install-dir'); - my $qtdir = $module->getOption('qtdir'); + my $qt_installdir = $module->getOption('qt-install-dir'); - if ($installdir && $qtdir && $installdir ne $qtdir) { + if ($installdir && $qt_installdir && $installdir ne $qt_installdir) { warning (<<EOF); b[y[*] b[y[*] Building the Qt module, but the install directory for Qt is not set to the b[y[*] Qt directory to use. b[y[*] install directory ('install-dir' option): b[$installdir] -b[y[*] Qt install to use ('qtdir' option): b[$qtdir] +b[y[*] Qt install to use ('qt-install-dir' option): b[$qt_installdir] b[y[*] -b[y[*] Try setting b[qtdir] to the same setting as the Qt module's b[install-dir]. +b[y[*] Try setting b[qt-install-dir] to the same setting as the Qt module's b[install-dir]. b[y[*] EOF } - $installdir ||= $qtdir; # Use qtdir for install if install-dir not set + $installdir ||= $qt_installdir; # Use qt-install-dir for install if install-dir not set # Some users have added -prefix manually to their flags, they # probably shouldn't anymore. :) diff --git a/modules/ksb/BuildSystem/Qt6.pm b/modules/ksb/BuildSystem/Qt6.pm index 9d317d50..b3d814e3 100644 --- a/modules/ksb/BuildSystem/Qt6.pm +++ b/modules/ksb/BuildSystem/Qt6.pm @@ -16,7 +16,7 @@ sub prepareModuleBuildEnvironment ($self, $ctx, $module, $prefix) { # We're installing Qt6 modules, make sure our Qt directory matches our # install prefix so that environment variables are properly set. - $module->setOption('qtdir', $prefix); + $module->setOption('qt-install-dir', $prefix); return $self->SUPER::prepareModuleBuildEnvironment($ctx, $module, $prefix); } diff --git a/modules/ksb/Module.pm b/modules/ksb/Module.pm index 6d831d29..2c1d84b7 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/install-dir related environment variables if a toolchain is also set + # Suppress injecting qt-install-dir/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 $installdir = $self->getOption('install-dir'); - my $qtdir = $self->getOption('qtdir'); + my $qt_installdir = $self->getOption('qt-install-dir'); 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, $installdir) { + for my $platformDir ($qt_installdir, $installdir) { next unless $platformDir; # OK, assume system platform is usable next if $platformDir eq '/usr'; # Don't 'fix' things if system platform # manually set diff --git a/t/data/bug-395627/kdesrc-buildrc b/t/data/bug-395627/kdesrc-buildrc index ad9891c2..449ed519 100644 --- a/t/data/bug-395627/kdesrc-buildrc +++ b/t/data/bug-395627/kdesrc-buildrc @@ -1,6 +1,6 @@ global source-dir /tmp - qtdir /tmp/qt5 + qt-install-dir /tmp/qt5 git-repository-base fake git://localhost/git-set/ override-build-system KDE # Use CMake everywhere w/out source probing end global diff --git a/t/unit/build-environment/platform-env-prepend.t b/t/unit/build-environment/platform-env-prepend.t index f2c76a23..32db31b0 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 install-dir and/or qtdir do not cause empty /bin settings to be +# Test that empty install-dir and/or qt-install-dir do not cause empty /bin settings to be # configured in environment. use ksb; @@ -34,7 +34,7 @@ sub no_bare_bin local $ENV{PATH} = $newPath; $ctx->setOption('install-dir', ''); # must be set but empty - $ctx->setOption('qtdir', '/dev/null'); + $ctx->setOption('qt-install-dir', '/dev/null'); $mod->setupEnvironment(); @@ -53,7 +53,7 @@ $ctx->resetEnvironment(); $newPath =~ s(:/bin:)()g; local $ENV{PATH} = $newPath; - $ctx->setOption('qtdir', ''); # must be set but empty + $ctx->setOption('qt-install-dir', ''); # must be set but empty $ctx->setOption('install-dir', '/dev/null'); $mod->setupEnvironment(); @@ -73,7 +73,7 @@ $ctx->resetEnvironment(); $newPath =~ s(:/bin:)()g; local $ENV{PATH} = $newPath; - $ctx->setOption('qtdir', '/dev/null'); + $ctx->setOption('qt-install-dir', '/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 cb701fb4..8abd40ca 100644 --- a/vim/syntax/kdesrc-buildrc.vim +++ b/vim/syntax/kdesrc-buildrc.vim @@ -40,7 +40,7 @@ syn keyword ksbrcOption contained skipwhite nextgroup=ksbrcStringValue \ 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 + \ override-build-system prefix qt-install-dir repository \ revision source-dir tag remove-after-install \ qmake-options git-user directory-layout