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?
diff --git a/scripts/generate_visualc_files.pl b/scripts/generate_visualc_files.pl
index 42f3024..5d07b88 100755
--- a/scripts/generate_visualc_files.pl
+++ b/scripts/generate_visualc_files.pl
@@ -22,6 +22,8 @@
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 @@
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_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 @@
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 );