# SPDX-FileCopyrightText: 2019, 2022 Michael Pyne # SPDX-FileCopyrightText: 2024 Andrew Shark # # SPDX-License-Identifier: GPL-2.0-or-later package ksb::BuildSystem::Qt5 0.10; # Build system for the Qt5 toolkit use ksb; use ksb::BuildException; use ksb::BuildSystem; use ksb::Debug; use ksb::Util qw(:DEFAULT :await run_logged_p); use parent qw(ksb::BuildSystem); # OVERRIDE sub configuredModuleFileName { return 'Makefile'; } # OVERRIDE sub name { return 'Qt5'; } # Return value style: boolean sub configureInternal { my $self = assert_isa(shift, __PACKAGE__); my $module = $self->module(); my $srcdir = $module->fullpath('source'); my $script = "$srcdir/configure"; if (! -e $script && !pretending()) { error ("\tMissing configure script for r[b[$module]"); return 0; } my @commands = split (/\s+/, $module->getOption('configure-flags')); push @commands, qw(-confirm-license -opensource -nomake examples -nomake tests); # Get the user's CXXFLAGS my $cxxflags = $module->getOption('cxxflags'); $module->buildContext()->queueEnvironmentVariable('CXXFLAGS', $cxxflags); my $installdir = $module->getOption('install-dir'); my $qt_installdir = $module->getOption('qt-install-dir'); if ($installdir && $qt_installdir && $installdir ne $qt_installdir) { warning (<fullpath('build'); my $old_flags = $module->getPersistentOption('last-configure-flags') || ''; my $cur_flags = get_list_digest(@commands); if(($cur_flags eq $old_flags) && !$module->getOption('reconfigure') && -e "$builddir/Makefile" ) { return 1; } note ("\tb[r[LGPL license selected for Qt]. See $srcdir/LICENSE.LGPL"); info ("\tRunning g[configure]..."); $module->setPersistentOption('last-configure-flags', $cur_flags); return await_exitcode(run_logged_p($module, "configure", $builddir, \@commands)); } 1;