diff options
Diffstat (limited to 'make')
-rw-r--r-- | make/configure.pm | 14 | ||||
-rw-r--r-- | make/directive.pm | 33 |
2 files changed, 27 insertions, 20 deletions
diff --git a/make/configure.pm b/make/configure.pm index fd1833d5f..763423be6 100644 --- a/make/configure.pm +++ b/make/configure.pm @@ -52,6 +52,8 @@ our @EXPORT = qw(CONFIGURE_CACHE_FILE run_test test_file test_header + module_expand + module_shrink write_configure_cache get_compiler_info find_compiler @@ -221,6 +223,18 @@ sub test_header($$;$) { return !$?; } +sub module_expand($) { + my $module = shift; + $module = "m_$module" unless $module =~ /^(?:m|core)_/; + $module = "$module.cpp" unless $module =~ /\.cpp$/; + return $module; +} + +sub module_shrink($) { + my $module = basename shift; + return $module =~ s/(?:^m_|\.cpp$)//gr; +} + sub write_configure_cache(%) { unless (-e CONFIGURE_DIRECTORY) { print_format "Creating <|GREEN ${\abs2rel CONFIGURE_DIRECTORY, CONFIGURE_ROOT}|> ...\n"; diff --git a/make/directive.pm b/make/directive.pm index 76ba72907..2af221511 100644 --- a/make/directive.pm +++ b/make/directive.pm @@ -27,7 +27,7 @@ use feature ':5.10'; use strict; use warnings FATAL => qw(all); -use File::Basename qw(basename dirname); +use File::Basename qw(dirname); use File::Spec::Functions qw(catdir); use Exporter qw(import); @@ -89,13 +89,6 @@ sub __environment { return $prefix . uc $suffix; } -sub __module { - my $file = shift; - my $name = basename $file, '.cpp'; - $name =~ s/^m_//; - return $name; -} - sub __error { my ($file, @message) = @_; push @message, ''; @@ -133,7 +126,7 @@ sub __error { push @message, 'at https://github.com/inspircd/inspircd/issues'; push @message, ''; push @message, 'You can also refer to the documentation page for this module at'; - push @message, "https://docs.inspircd.org/3/modules/${\__module $file}"; + push @message, "https://docs.inspircd.org/3/modules/${\module_shrink $file}"; } push @message, ''; @@ -184,25 +177,25 @@ sub __function_find_compiler_flags { # Try to look up the compiler flags with pkg-config... chomp(my $flags = `pkg-config --cflags $name ${\DIRECTIVE_ERROR_PIPE}`); unless ($?) { - print_format "Found the <|GREEN $name|> compiler flags for <|GREEN ${\__module $file}|> using pkg-config: <|BOLD $flags|>\n"; + print_format "Found the <|GREEN $name|> compiler flags for <|GREEN ${\module_shrink $file}|> using pkg-config: <|BOLD $flags|>\n"; return $flags; } # If looking up with pkg-config fails then check the environment... my $key = __environment 'INSPIRCD_CXXFLAGS_', $name; if (defined $ENV{$key}) { - print_format "Found the <|GREEN $name|> compiler flags for <|GREEN ${\__module $file}|> using the environment: <|BOLD $ENV{$key}|>\n"; + print_format "Found the <|GREEN $name|> compiler flags for <|GREEN ${\module_shrink $file}|> using the environment: <|BOLD $ENV{$key}|>\n"; return $ENV{$key}; } # If all else fails then look for the defaults.. if (defined $defaults) { - print_format "Using the default <|GREEN $name|> compiler flags for <|GREEN ${\__module $file}|>: <|BOLD $defaults|>\n"; + print_format "Using the default <|GREEN $name|> compiler flags for <|GREEN ${\module_shrink $file}|>: <|BOLD $defaults|>\n"; return $defaults; } # We can't find it via pkg-config, via the environment, or via the defaults so give up. - __error $file, "unable to find the <|GREEN $name|> compiler flags for <|GREEN ${\__module $file}|>!"; + __error $file, "unable to find the <|GREEN $name|> compiler flags for <|GREEN ${\module_shrink $file}|>!"; } sub __function_find_linker_flags { @@ -211,25 +204,25 @@ sub __function_find_linker_flags { # Try to look up the linker flags with pkg-config... chomp(my $flags = `pkg-config --libs $name ${\DIRECTIVE_ERROR_PIPE}`); unless ($?) { - print_format "Found the <|GREEN $name|> linker flags for <|GREEN ${\__module $file}|> using pkg-config: <|BOLD $flags|>\n"; + print_format "Found the <|GREEN $name|> linker flags for <|GREEN ${\module_shrink $file}|> using pkg-config: <|BOLD $flags|>\n"; return $flags; } # If looking up with pkg-config fails then check the environment... my $key = __environment 'INSPIRCD_CXXFLAGS_', $name; if (defined $ENV{$key}) { - print_format "Found the <|GREEN $name|> linker flags for <|GREEN ${\__module $file}|> using the environment: <|BOLD $ENV{$key}|>\n"; + print_format "Found the <|GREEN $name|> linker flags for <|GREEN ${\module_shrink $file}|> using the environment: <|BOLD $ENV{$key}|>\n"; return $ENV{$key}; } # If all else fails then look for the defaults.. if (defined $defaults) { - print_format "Using the default <|GREEN $name|> linker flags for <|GREEN ${\__module $file}|>: <|BOLD $defaults|>\n"; + print_format "Using the default <|GREEN $name|> linker flags for <|GREEN ${\module_shrink $file}|>: <|BOLD $defaults|>\n"; return $defaults; } # We can't find it via pkg-config, via the environment, or via the defaults so give up. - __error $file, "unable to find the <|GREEN $name|> linker flags for <|GREEN ${\__module $file}|>!"; + __error $file, "unable to find the <|GREEN $name|> linker flags for <|GREEN ${\module_shrink $file}|>!"; } sub __function_require_compiler { @@ -297,18 +290,18 @@ sub __function_vendor_directory { # Try to look the directory up in the environment... my $key = __environment 'INSPIRCD_VENDOR_', $name; if (defined $ENV{$key}) { - print_format "Found the <|GREEN $name|> vendor directory for <|GREEN ${\__module $file}|> using the environment: <|BOLD $ENV{$key}|>\n"; + print_format "Found the <|GREEN $name|> vendor directory for <|GREEN ${\module_shrink $file}|> using the environment: <|BOLD $ENV{$key}|>\n"; return $ENV{$key}; } my $directory = catdir(VENDOR_DIRECTORY, $name); if (-d $directory) { - print_format "Using the default <|GREEN $name|> vendor directory for <|GREEN ${\__module $file}|>: <|BOLD $directory|>\n"; + print_format "Using the default <|GREEN $name|> vendor directory for <|GREEN ${\module_shrink $file}|>: <|BOLD $directory|>\n"; return $directory; } # We can't find it via the environment or via the filesystem so give up. - __error $file, "unable to find the <|GREEN $name|> vendor directory for <|GREEN ${\__module $file}|>!"; + __error $file, "unable to find the <|GREEN $name|> vendor directory for <|GREEN ${\module_shrink $file}|>!"; } sub __function_warning { |