diff --git a/tf-psa-crypto/CMakeLists.txt b/tf-psa-crypto/CMakeLists.txt
index 3669da3ce..6e9789a90 100644
--- a/tf-psa-crypto/CMakeLists.txt
+++ b/tf-psa-crypto/CMakeLists.txt
@@ -35,6 +35,9 @@ if(LIB_INSTALL_DIR)
set(CMAKE_INSTALL_LIBDIR "${LIB_INSTALL_DIR}")
endif()
+# Set the project root directory.
+set(TF_PSA_CRYPTO_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+
add_subdirectory(include)
add_subdirectory(core)
add_subdirectory(drivers)
diff --git a/tf-psa-crypto/core/CMakeLists.txt b/tf-psa-crypto/core/CMakeLists.txt
index c138ab3dc..dfc292cc4 100644
--- a/tf-psa-crypto/core/CMakeLists.txt
+++ b/tf-psa-crypto/core/CMakeLists.txt
@@ -129,11 +129,11 @@ foreach(target IN LISTS target_libraries)
# from core/ and drivers/builtin/src/.
target_include_directories(${target}
PUBLIC $
- $
- $
+ $
+ $
$
- PRIVATE ${MBEDTLS_DIR}/tf-psa-crypto/core
- ${MBEDTLS_DIR}/tf-psa-crypto/drivers/builtin/src
+ PRIVATE ${TF_PSA_CRYPTO_DIR}/core
+ ${TF_PSA_CRYPTO_DIR}/drivers/builtin/src
# Needed to include psa_crypto_driver_wrappers.h
${CMAKE_CURRENT_BINARY_DIR})
# Pass-through MBEDTLS_CONFIG_FILE and MBEDTLS_USER_CONFIG_FILE
diff --git a/tf-psa-crypto/drivers/builtin/CMakeLists.txt b/tf-psa-crypto/drivers/builtin/CMakeLists.txt
index ab9895f3a..ed2c0f80d 100644
--- a/tf-psa-crypto/drivers/builtin/CMakeLists.txt
+++ b/tf-psa-crypto/drivers/builtin/CMakeLists.txt
@@ -128,8 +128,8 @@ foreach (target IN LISTS target_libraries)
PUBLIC $
$
$
- $
- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../core)
+ $
+ PRIVATE ${TF_PSA_CRYPTO_DIR}/core)
# Pass-through MBEDTLS_CONFIG_FILE and MBEDTLS_USER_CONFIG_FILE
# This must be duplicated from library/CMakeLists.txt because
diff --git a/tf-psa-crypto/drivers/everest/CMakeLists.txt b/tf-psa-crypto/drivers/everest/CMakeLists.txt
index 4958a7916..82a85974f 100644
--- a/tf-psa-crypto/drivers/everest/CMakeLists.txt
+++ b/tf-psa-crypto/drivers/everest/CMakeLists.txt
@@ -8,13 +8,13 @@ add_library(${everest_target}
target_include_directories(${everest_target}
PUBLIC $
$
- $
- $
+ $
+ $
$
PRIVATE include/everest
include/everest/kremlib
${MBEDTLS_DIR}/library
- ${MBEDTLS_DIR}/tf-psa-crypto/core)
+ ${TF_PSA_CRYPTO_DIR}/core)
# Pass-through MBEDTLS_CONFIG_FILE and MBEDTLS_USER_CONFIG_FILE
# This must be duplicated from library/CMakeLists.txt because
diff --git a/tf-psa-crypto/drivers/p256-m/CMakeLists.txt b/tf-psa-crypto/drivers/p256-m/CMakeLists.txt
index f097ed13a..165ee150f 100644
--- a/tf-psa-crypto/drivers/p256-m/CMakeLists.txt
+++ b/tf-psa-crypto/drivers/p256-m/CMakeLists.txt
@@ -8,11 +8,11 @@ target_include_directories(${p256m_target}
PUBLIC $
$
$
- $
- $
+ $
+ $
$
PRIVATE ${MBEDTLS_DIR}/library/
- ${MBEDTLS_DIR}/tf-psa-crypto/core)
+ ${TF_PSA_CRYPTO_DIR}/core)
# Pass-through MBEDTLS_CONFIG_FILE and MBEDTLS_USER_CONFIG_FILE
# This must be duplicated from library/CMakeLists.txt because