From 5cae2d349b561a84dbfc93d6b6abc5fb7263fb7c Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Tue, 22 Jan 2019 15:46:54 +0100 Subject: [PATCH] Build: change remaining $unified_info{install} checks to use attributes Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/8063) --- Configurations/common.tmpl | 36 ++++++++++-------------------- Configurations/descrip.mms.tmpl | 12 +++++----- Configurations/platform/Unix.pm | 4 +--- Configurations/platform/VMS.pm | 4 +--- Configurations/platform/Windows.pm | 4 +--- 5 files changed, 21 insertions(+), 39 deletions(-) diff --git a/Configurations/common.tmpl b/Configurations/common.tmpl index 132852ce75..53384c7307 100644 --- a/Configurations/common.tmpl +++ b/Configurations/common.tmpl @@ -52,18 +52,6 @@ map { $replace{$_} // $_; } @newlist; } - # is_installed checks if a given file will be installed (i.e. they are - # not defined _NO_INST in build.info) - sub is_installed { - my $product = shift; - if (grep { $product eq $_ } - map { (@{$unified_info{install}->{$_}}) } - keys %{$unified_info{install}}) { - return 1; - } - return 0; - } - # dogenerate is responsible for producing all the recipes that build # generated source files. It recurses in case a dependency is also a # generated source file. @@ -132,14 +120,14 @@ $OUT .= $obj2shlib->(lib => $lib, attrs => $unified_info{attributes}->{$lib}, objs => $unified_info{shared_sources}->{$lib}, - deps => [ reducedepends(resolvedepends($lib)) ], - installed => is_installed($lib)); + deps => [ reducedepends(resolvedepends($lib)) ]); foreach ((@{$unified_info{shared_sources}->{$lib}}, @{$unified_info{sources}->{$lib}})) { # If this is somehow a compiled object, take care of it that way # Otherwise, it might simply be generated if (defined $unified_info{sources}->{$_}) { - doobj($_, $lib, intent => "shlib", installed => is_installed($lib)); + doobj($_, $lib, intent => "shlib", + attrs => $unified_info{attributes}->{$lib}); } else { dogenerate($_, undef, undef, intent => "lib"); } @@ -149,7 +137,8 @@ attrs => $unified_info{attributes}->{$lib}, objs => [ @{$unified_info{sources}->{$lib}} ]); foreach (@{$unified_info{sources}->{$lib}}) { - doobj($_, $lib, intent => "lib", installed => is_installed($lib)); + doobj($_, $lib, intent => "lib", + attrs => $unified_info{attributes}->{$lib}); } $cache{$lib} = 1; } @@ -163,13 +152,13 @@ $OUT .= obj2dso(lib => $lib, attrs => $unified_info{attributes}->{$lib}, objs => $unified_info{shared_sources}->{$lib}, - deps => [ resolvedepends($lib) ], - installed => is_installed($lib)); + deps => [ resolvedepends($lib) ]); foreach (@{$unified_info{shared_sources}->{$lib}}) { # If this is somehow a compiled object, take care of it that way # Otherwise, it might simply be generated if (defined $unified_info{sources}->{$_}) { - doobj($_, $lib, intent => "dso", installed => is_installed($lib)); + doobj($_, $lib, intent => "dso", + attrs => $unified_info{attributes}->{$lib}); } else { dogenerate($_, undef, $lib, intent => "dso"); } @@ -186,10 +175,10 @@ $OUT .= obj2bin(bin => $bin, attrs => $unified_info{attributes}->{$bin}, objs => [ @{$unified_info{sources}->{$bin}} ], - deps => $deps, - installed => is_installed($bin)); + deps => $deps); foreach (@{$unified_info{sources}->{$bin}}) { - doobj($_, $bin, intent => "bin", installed => is_installed($bin)); + doobj($_, $bin, intent => "bin", + attrs => $unified_info{attributes}->{$bin}); } $cache{$bin} = 1; } @@ -201,8 +190,7 @@ return "" if $cache{$script}; $OUT .= in2script(script => $script, attrs => $unified_info{attributes}->{$script}, - sources => $unified_info{sources}->{$script}, - installed => is_installed($script)); + sources => $unified_info{sources}->{$script}); $cache{$script} = 1; } diff --git a/Configurations/descrip.mms.tmpl b/Configurations/descrip.mms.tmpl index c63f4bd5fe..acb5997106 100644 --- a/Configurations/descrip.mms.tmpl +++ b/Configurations/descrip.mms.tmpl @@ -877,16 +877,16 @@ EOF } my $cflags; - if ($args{installed}) { - $cflags = { shlib => '$(LIB_CFLAGS)', - lib => '$(LIB_CFLAGS)', - dso => '$(DSO_CFLAGS)', - bin => '$(BIN_CFLAGS)' } -> {$args{intent}}; - } else { + if ($args{attrs}->{noinst}) { $cflags = { shlib => '$(NO_INST_LIB_CFLAGS)', lib => '$(NO_INST_LIB_CFLAGS)', dso => '$(NO_INST_DSO_CFLAGS)', bin => '$(NO_INST_BIN_CFLAGS)' } -> {$args{intent}}; + } else { + $cflags = { shlib => '$(LIB_CFLAGS)', + lib => '$(LIB_CFLAGS)', + dso => '$(DSO_CFLAGS)', + bin => '$(BIN_CFLAGS)' } -> {$args{intent}}; } $cflags .= { shlib => '$(LIB_CPPFLAGS)', lib => '$(LIB_CPPFLAGS)', diff --git a/Configurations/platform/Unix.pm b/Configurations/platform/Unix.pm index 7f69cacdd4..ca8d6bb65b 100644 --- a/Configurations/platform/Unix.pm +++ b/Configurations/platform/Unix.pm @@ -44,9 +44,7 @@ sub staticname { # Non-installed libraries are *always* static, and their names remain # the same, except for the mandatory extension my $in_libname = platform::BASE->staticname($_[1]); - return $in_libname - unless ( grep { platform::BASE->staticname($_) eq $in_libname } - @{$unified_info{install}->{libraries}} ); + return $in_libname if $unified_info{attributes}->{$_[1]}->{noinst}; # We currently return the same name anyway... but we might choose to # append '_static' or '_a' some time in the future. diff --git a/Configurations/platform/VMS.pm b/Configurations/platform/VMS.pm index 03e57e3ddb..7aeb20bb3b 100644 --- a/Configurations/platform/VMS.pm +++ b/Configurations/platform/VMS.pm @@ -39,9 +39,7 @@ sub staticname { # Non-installed libraries are *always* static, and their names remain # the same, except for the mandatory extension my $in_libname = platform::BASE->staticname($_[1]); - return $in_libname - unless ( grep { platform::BASE->staticname($_) eq $in_libname } - @{$unified_info{install}->{libraries}} ); + return $in_libname if $unified_info{attributes}->{$_[1]}->{noinst}; return platform::BASE::__concat($_[0]->osslprefix(), platform::BASE->staticname($_[1]), diff --git a/Configurations/platform/Windows.pm b/Configurations/platform/Windows.pm index 3e13f6e86f..d1932a9200 100644 --- a/Configurations/platform/Windows.pm +++ b/Configurations/platform/Windows.pm @@ -30,9 +30,7 @@ sub staticname { # Non-installed libraries are *always* static, and their names remain # the same, except for the mandatory extension my $in_libname = platform::BASE->staticname($_[1]); - return $in_libname - unless ( grep { platform::BASE->staticname($_) eq $in_libname } - @{$unified_info{install}->{libraries}} ); + return $in_libname if $unified_info{attributes}->{$_[1]}->{noinst}; # To make sure not to clash with an import library, we make the static # variant of our installed libraries get '_static' added to their names. -- 2.25.1