generate_visualc_files.pl: add mbedtls source shadowing by crypto
Running the generation script with "include_crypto" input parameter set to 1
makes the mbedtls sources being overshadowed by crypto sources.
In case of any duplicate sources, crypto ones take precedence.
diff --git a/scripts/generate_visualc_files.pl b/scripts/generate_visualc_files.pl
index 37e09a1..e6545bc 100755
--- a/scripts/generate_visualc_files.pl
+++ b/scripts/generate_visualc_files.pl
@@ -4,7 +4,8 @@
# 2010
#
# Must be run from mbedTLS root or scripts directory.
-# Takes "include_crypto" as an argument, off by default.
+# Takes "include_crypto" as an argument that can be either 0 (don't include) or
+# 1 (include). Off by default.
use warnings;
use strict;
@@ -27,10 +28,7 @@
my $programs_dir = 'programs';
my $header_dir = 'include/mbedtls';
my $source_dir = 'library';
-
-if( $include_crypto ) {
- $source_dir = 'crypto/library';
-}
+my $crypto_dir = 'crypto';
# Need windows line endings!
my $vsx_hdr_tpl = <<EOT;
@@ -204,7 +202,18 @@
my @app_list = get_app_list();
my @headers = <$header_dir/*.h>;
- my @sources = <$source_dir/*.c>;
+
+ my @sources = ();
+ if ($include_crypto) {
+ @sources = <$crypto_dir/$source_dir/*.c>;
+ foreach my $file (<$source_dir/*.c>) {
+ my $basename = $file; $basename =~ s!.*/!!;
+ push @sources, $file unless -e "$crypto_dir/$source_dir/$basename";
+ }
+ } else {
+ @sources = <$source_dir/*.c>;
+ }
+
map { s!/!\\!g } @headers;
map { s!/!\\!g } @sources;