Merge pull request #10225 from valeriosetti/issue229-mbedtls

[development] Move Everest headers to a private subdirectory (1/2)
diff --git a/framework b/framework
index 1a83e0c..977db0c 160000
--- a/framework
+++ b/framework
@@ -1 +1 @@
-Subproject commit 1a83e0c84d4b7aa11c7cfd3771322486fc87d281
+Subproject commit 977db0c8bcb083b436652d9339bd142f46bf64bb
diff --git a/scripts/generate_visualc_files.pl b/scripts/generate_visualc_files.pl
index 8152189..5a18afc 100755
--- a/scripts/generate_visualc_files.pl
+++ b/scripts/generate_visualc_files.pl
@@ -49,9 +49,20 @@
 my $test_drivers_header_dir = 'framework/tests/include/test/drivers';
 my $test_drivers_source_dir = 'framework/tests/src/drivers';
 
-my @thirdparty_header_dirs = qw(
-    tf-psa-crypto/drivers/everest/include/everest
-);
+# This is a dirty patch to allow mbedtls#10091 to be merged without updating
+# tf-psa-crypto to psa#235. Once psa#235 will be merged, this dirty fix can
+# be removed.
+# The same holds also for @include_directories below.
+my @thirdparty_header_dirs;
+if (-d "tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest") {
+    @thirdparty_header_dirs = qw(
+        tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest
+    );
+} else {
+    @thirdparty_header_dirs = qw(
+        tf-psa-crypto/drivers/everest/include/everest
+    );
+}
 my @thirdparty_source_dirs = qw(
     tf-psa-crypto/drivers/everest/library
     tf-psa-crypto/drivers/everest/library/kremlib
@@ -61,19 +72,36 @@
 # Directories to add to the include path.
 # Order matters in case there are files with the same name in more than
 # one directory: the compiler will use the first match.
-my @include_directories = qw(
-    include
-    tf-psa-crypto/include
-    tf-psa-crypto/drivers/builtin/include
-    tf-psa-crypto/drivers/everest/include/
-    tf-psa-crypto/drivers/everest/include/everest
-    tf-psa-crypto/drivers/everest/include/everest/vs2013
-    tf-psa-crypto/drivers/everest/include/everest/kremlib
-    tests/include
-    tf-psa-crypto/tests/include
-    framework/tests/include
-    framework/tests/programs
-);
+my @include_directories;
+if (-d "tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest") {
+    @include_directories = qw(
+        include
+        tf-psa-crypto/include
+        tf-psa-crypto/drivers/builtin/include
+        tf-psa-crypto/drivers/everest/include/
+        tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest
+        tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/vs2013
+        tf-psa-crypto/drivers/everest/include/tf-psa-crypto/private/everest/kremlib
+        tests/include
+        tf-psa-crypto/tests/include
+        framework/tests/include
+        framework/tests/programs
+    );
+} else {
+    @include_directories = qw(
+        include
+        tf-psa-crypto/include
+        tf-psa-crypto/drivers/builtin/include
+        tf-psa-crypto/drivers/everest/include/
+        tf-psa-crypto/drivers/everest/include/everest
+        tf-psa-crypto/drivers/everest/include/everest/vs2013
+        tf-psa-crypto/drivers/everest/include/everest/kremlib
+        tests/include
+        tf-psa-crypto/tests/include
+        framework/tests/include
+        framework/tests/programs
+    );
+}
 my $include_directories = join(';', map {"../../$_"} @include_directories);
 
 # Directories to add to the include path when building the libraries, but not