ECDH: Add Everest Curve25519 to VS project files

This being the first 3rdparty-contribution, we may want to consider the
structure of the project file generation scripts. Perhaps add small,
constribution-specific scripts to each directory in 3rdparty instead of adding
all constraints to generate_visualc_files.pl?
This commit is contained in:
Christoph M. Wintersteiger 2018-12-06 18:59:19 +00:00 committed by Janos Follath
parent 79acf95199
commit 48d26c21c6
38 changed files with 182 additions and 159 deletions

View file

@ -22,6 +22,8 @@ my $programs_dir = 'programs';
my $mbedtls_header_dir = 'include/mbedtls';
my $psa_header_dir = 'include/psa';
my $source_dir = 'library';
my $everest_header_dir = '3rdparty/everest/include/everest';
my @everest_source_dirs = ('3rdparty/everest/library', '3rdparty/everest/library/kremlib', '3rdparty/everest/library/vs2010');
# Need windows line endings!
my $vsx_hdr_tpl = <<EOT;
@ -53,9 +55,11 @@ EOT
exit( main() );
sub check_dirs {
foreach my $d (@everest_source_dirs) { if (not (-d $d)) { return 0; } }
return -d $vsx_dir
&& -d $mbedtls_header_dir
&& -d $psa_header_dir
&& -d $everest_header_dir
&& -d $source_dir
&& -d $programs_dir;
}
@ -139,12 +143,14 @@ sub gen_entry_list {
}
sub gen_main_file {
my ($mbedtls_headers, $psa_headers, $source_headers, $sources, $hdr_tpl, $src_tpl, $main_tpl, $main_out) = @_;
my ($mbedtls_headers, $psa_headers, $source_headers, $everest_headers, $sources, $everest_sources, $hdr_tpl, $src_tpl, $main_tpl, $main_out) = @_;
my $header_entries = gen_entry_list( $hdr_tpl, @$mbedtls_headers );
$header_entries .= gen_entry_list( $hdr_tpl, @$psa_headers );
$header_entries .= gen_entry_list( $hdr_tpl, @$source_headers );
$header_entries .= gen_entry_list( $hdr_tpl, @$everest_headers );
my $source_entries = gen_entry_list( $src_tpl, @$sources );
$source_entries .= gen_entry_list( $src_tpl, @$everest_sources );
my $out = slurp_file( $main_tpl );
$out =~ s/SOURCE_ENTRIES\r\n/$source_entries/m;
@ -205,11 +211,18 @@ sub main {
map { s!/!\\!g } @psa_headers;
map { s!/!\\!g } @sources;
my @everest_headers = <$everest_header_dir/*.h>;
my @everest_sources = ();
foreach my $d (@everest_source_dirs) { push @everest_sources, <$d/*.c>; }
@everest_sources = grep !/3rdparty\/everest\/library\/Hacl_Curve25519.c/, @everest_sources;
map { s!/!\\!g } @everest_headers;
map { s!/!\\!g } @everest_sources;
gen_app_files( @app_list );
gen_main_file( \@mbedtls_headers, \@psa_headers, \@source_headers,
\@sources, $vsx_hdr_tpl, $vsx_src_tpl,
$vsx_main_tpl_file, $vsx_main_file );
\@everest_headers, \@sources, \@everest_sources, $vsx_hdr_tpl,
$vsx_src_tpl, $vsx_main_tpl_file, $vsx_main_file );
gen_vsx_solution( @app_list );