mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2024-12-14 10:13:05 +02:00
7cf955425e
This eliminates conditional loading and eases development of new library features.
82 lines
3.1 KiB
Perl
82 lines
3.1 KiB
Perl
####################################################################################################################################
|
|
# Auto-Generate Command and Option Configuration Definition Constants for Export to Perl
|
|
####################################################################################################################################
|
|
package pgBackRestLibC::Config::BuildDefine;
|
|
|
|
use strict;
|
|
use warnings FATAL => qw(all);
|
|
use Carp qw(confess);
|
|
use English '-no_match_vars';
|
|
|
|
use Cwd qw(abs_path);
|
|
use Exporter qw(import);
|
|
our @EXPORT = qw();
|
|
use File::Basename qw(dirname);
|
|
use Storable qw(dclone);
|
|
|
|
use pgBackRest::Common::Log;
|
|
use pgBackRest::Common::String;
|
|
use pgBackRestBuild::Config::Data;
|
|
use pgBackRest::Version;
|
|
|
|
use pgBackRestBuild::Build::Common;
|
|
use pgBackRestBuild::Config::BuildDefine;
|
|
|
|
####################################################################################################################################
|
|
# Constants
|
|
####################################################################################################################################
|
|
use constant BLDLCL_FILE_DEFINE => 'define';
|
|
|
|
use constant BLDLCL_CONSTANT_OPTION_TYPE => '01-constantOptionType';
|
|
|
|
####################################################################################################################################
|
|
# Definitions for constants and data to build
|
|
####################################################################################################################################
|
|
my $strSummary = 'Command and Option Definitions';
|
|
|
|
my $rhBuild =
|
|
{
|
|
&BLD_FILE =>
|
|
{
|
|
&BLDLCL_FILE_DEFINE =>
|
|
{
|
|
&BLD_SUMMARY => $strSummary,
|
|
|
|
&BLD_CONSTANT_GROUP =>
|
|
{
|
|
&BLDLCL_CONSTANT_OPTION_TYPE =>
|
|
{
|
|
&BLD_SUMMARY => 'Option type',
|
|
&BLD_CONSTANT => {},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
####################################################################################################################################
|
|
# Build configuration constants and data
|
|
####################################################################################################################################
|
|
sub buildXsConfigDefine
|
|
{
|
|
# Build option type constants
|
|
#-------------------------------------------------------------------------------------------------------------------------------
|
|
my $rhConstant = $rhBuild->{&BLD_FILE}{&BLDLCL_FILE_DEFINE}{&BLD_CONSTANT_GROUP}{&BLDLCL_CONSTANT_OPTION_TYPE}{&BLD_CONSTANT};
|
|
|
|
foreach my $strOptionType (cfgDefineOptionTypeList())
|
|
{
|
|
# Build Perl constant
|
|
my $strOptionTypeConstant = "CFGDEF_TYPE_" . uc($strOptionType);
|
|
$strOptionTypeConstant =~ s/\-/\_/g;
|
|
|
|
$rhConstant->{$strOptionTypeConstant}{&BLD_CONSTANT_VALUE} = buildConfigDefineOptionTypeEnum($strOptionType);
|
|
$rhConstant->{$strOptionTypeConstant}{&BLD_CONSTANT_EXPORT} = true;
|
|
};
|
|
|
|
return $rhBuild;
|
|
}
|
|
|
|
push @EXPORT, qw(buildXsConfigDefine);
|
|
|
|
1;
|