diff --git a/deployments/attestation/common/attestation_sp.h b/deployments/attestation/common/attestation_sp.h
index e949193..89424aa 100644
--- a/deployments/attestation/common/attestation_sp.h
+++ b/deployments/attestation/common/attestation_sp.h
@@ -7,8 +7,4 @@
 #ifndef ATTESTATION_SP_H
 #define ATTESTATION_SP_H
 
-#define ATTESTATION_SP_UUID_BYTES \
-	{0xa1, 0xba, 0xf1, 0x55, 0x88, 0x76, 0x46, 0x95, \
-	 0x8f, 0x7c, 0x54, 0x95, 0x5e, 0x8d, 0xb9, 0x74}
-
 #endif /* ATTESTATION_SP_H */
diff --git a/deployments/attestation/opteesp/CMakeLists.txt b/deployments/attestation/opteesp/CMakeLists.txt
index ef86ef3..c38be06 100644
--- a/deployments/attestation/opteesp/CMakeLists.txt
+++ b/deployments/attestation/opteesp/CMakeLists.txt
@@ -21,9 +21,13 @@
 add_executable(attestation)
 target_include_directories(attestation PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
 set(SP_UUID_CANON "a1baf155-8876-4695-8f7c-54955e8db974")
-set(SP_UUID_LE "0x55f1baa1 0x95467688 0x95547c8f 0x74b98d5e")
 set(SP_HEAP_SIZE "32 * 1024" CACHE STRING "SP heap size in bytes")
 set(TRACE_PREFIX "ATT" CACHE STRING "Trace prefix")
+include(${TS_ROOT}/tools/cmake/common/TargetCompileDefinitions.cmake)
+set_target_uuids(
+	SP_UUID ${SP_UUID_CANON}
+	SP_NAME "attestation"
+)
 
 #-------------------------------------------------------------------------------
 #  Default deployment specific configuration
diff --git a/deployments/attestation/opteesp/optee_sp_user_defines.h b/deployments/attestation/opteesp/optee_sp_user_defines.h
index 475a2b9..ebc7dad 100644
--- a/deployments/attestation/opteesp/optee_sp_user_defines.h
+++ b/deployments/attestation/opteesp/optee_sp_user_defines.h
@@ -6,10 +6,6 @@
 #ifndef OPTEE_SP_USER_DEFINES_H
 #define OPTEE_SP_USER_DEFINES_H
 
-#define OPTEE_SP_UUID \
-	{0xa1baf155, 0x8876, 0x4695, \
-		{0x8f, 0x7c, 0x54, 0x95, 0x5e, 0x8d, 0xb9, 0x74}}
-
 #define OPTEE_SP_FLAGS				0
 
 /* Provisioned stack size */
diff --git a/deployments/crypto/common/crypto_sp.h b/deployments/crypto/common/crypto_sp.h
index be1e097..8771f00 100644
--- a/deployments/crypto/common/crypto_sp.h
+++ b/deployments/crypto/common/crypto_sp.h
@@ -7,8 +7,4 @@
 #ifndef CRYPTO_SP_H
 #define CRYPTO_SP_H
 
-#define CRYPTO_SP_UUID_BYTES \
-	{0xd9, 0xdf, 0x52, 0xd5, 0x16, 0xa2, 0x4b, 0xb2, \
-	 0x9a, 0xa4, 0xd2, 0x6d, 0x3b, 0x84, 0xe8, 0xc0}
-
 #endif /* CRYPTO_SP_H */
diff --git a/deployments/crypto/opteesp/CMakeLists.txt b/deployments/crypto/opteesp/CMakeLists.txt
index e7039b9..9f6453a 100644
--- a/deployments/crypto/opteesp/CMakeLists.txt
+++ b/deployments/crypto/opteesp/CMakeLists.txt
@@ -21,9 +21,13 @@
 add_executable(crypto)
 target_include_directories(crypto PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
 set(SP_UUID_CANON "d9df52d5-16a2-4bb2-9aa4-d26d3b84e8c0")
-set(SP_UUID_LE "0xd552dfd9 0xb24ba216 0x6dd2a49a 0xc0e8843b")
 set(SP_HEAP_SIZE "490 * 1024" CACHE STRING "SP heap size in bytes")
 set(TRACE_PREFIX "CRYPTO" CACHE STRING "Trace prefix")
+include(${TS_ROOT}/tools/cmake/common/TargetCompileDefinitions.cmake)
+set_target_uuids(
+	SP_UUID ${SP_UUID_CANON}
+	SP_NAME "crypto"
+)
 
 #-------------------------------------------------------------------------------
 #  Components that are specific to deployment in the opteesp environment.
diff --git a/deployments/crypto/opteesp/optee_sp_user_defines.h b/deployments/crypto/opteesp/optee_sp_user_defines.h
index 29b2749..bbcc12b 100644
--- a/deployments/crypto/opteesp/optee_sp_user_defines.h
+++ b/deployments/crypto/opteesp/optee_sp_user_defines.h
@@ -6,10 +6,6 @@
 #ifndef OPTEE_SP_USER_DEFINES_H
 #define OPTEE_SP_USER_DEFINES_H
 
-#define OPTEE_SP_UUID \
-	{0xd9df52d5, 0x16a2, 0x4bb2, \
-		{0x9a, 0xa4, 0xd2, 0x6d, 0x3b, 0x84, 0xe8, 0xc0}}
-
 #define OPTEE_SP_FLAGS			0
 
 /* Provisioned stack size */
diff --git a/deployments/env-test/common/env_test.h b/deployments/env-test/common/env_test.h
index 7a25ee2..4fd9792 100644
--- a/deployments/env-test/common/env_test.h
+++ b/deployments/env-test/common/env_test.h
@@ -7,8 +7,4 @@
 #ifndef ENV_TEST_H
 #define ENV_TEST_H
 
-#define ENV_TEST_SP_UUID_BYTES \
-	{0x33, 0xc7, 0x5b, 0xaf, 0xac, 0x6a, 0x4f, 0xef, \
-	 0x8a, 0xc7, 0xe9, 0x90, 0x9b, 0xee, 0x2d, 0x17}
-
 #endif /* ENV_TEST_H */
diff --git a/deployments/env-test/opteesp/CMakeLists.txt b/deployments/env-test/opteesp/CMakeLists.txt
index cff00ff..7031a01 100644
--- a/deployments/env-test/opteesp/CMakeLists.txt
+++ b/deployments/env-test/opteesp/CMakeLists.txt
@@ -22,9 +22,13 @@
 add_executable(env-test)
 target_include_directories(env-test PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
 set(SP_UUID_CANON "33c75baf-ac6a-4fe4-8ac7-e9909bee2d17")
-set(SP_UUID_LE "0xaf5bc733 0xe44f6aac 0x90e9c78a 0x172dee9b")
 set(SP_HEAP_SIZE "32 * 1024" CACHE STRING "SP heap size in bytes")
 set(TRACE_PREFIX "ENVTEST" CACHE STRING "Trace prefix")
+include(${TS_ROOT}/tools/cmake/common/TargetCompileDefinitions.cmake)
+set_target_uuids(
+	SP_UUID ${SP_UUID_CANON}
+	SP_NAME "env-test"
+)
 
 #-------------------------------------------------------------------------------
 #  Components that are env-test specific to deployment in the opteesp
diff --git a/deployments/env-test/opteesp/optee_sp_user_defines.h b/deployments/env-test/opteesp/optee_sp_user_defines.h
index 7c78790..ebc7dad 100644
--- a/deployments/env-test/opteesp/optee_sp_user_defines.h
+++ b/deployments/env-test/opteesp/optee_sp_user_defines.h
@@ -6,10 +6,6 @@
 #ifndef OPTEE_SP_USER_DEFINES_H
 #define OPTEE_SP_USER_DEFINES_H
 
-#define OPTEE_SP_UUID \
-	{0x33c75baf, 0xac6a, 0x4fe4, \
-		{0x8a, 0xc7, 0xe9, 0x90, 0x9b, 0xee, 0x2d, 0x17}}
-
 #define OPTEE_SP_FLAGS				0
 
 /* Provisioned stack size */
diff --git a/deployments/internal-trusted-storage/common/its_sp.h b/deployments/internal-trusted-storage/common/its_sp.h
index ffaf25e..20562a4 100644
--- a/deployments/internal-trusted-storage/common/its_sp.h
+++ b/deployments/internal-trusted-storage/common/its_sp.h
@@ -8,9 +8,4 @@
 #ifndef ITS_SP_H
 #define ITS_SP_H
 
-/* UUID for the Internal Trusted Store */
-#define ITS_SP_UUID_BYTES \
-	{ 0xdc, 0x1e, 0xef, 0x48, 0xb1, 0x7a, 0x4c, 0xcf, \
-	  0xac, 0x8b, 0xdf, 0xcf, 0xf7, 0x71, 0x1b, 0x14, }
-
 #endif /* ITS_SP_H */
diff --git a/deployments/internal-trusted-storage/opteesp/CMakeLists.txt b/deployments/internal-trusted-storage/opteesp/CMakeLists.txt
index ffae662..ba3c654 100644
--- a/deployments/internal-trusted-storage/opteesp/CMakeLists.txt
+++ b/deployments/internal-trusted-storage/opteesp/CMakeLists.txt
@@ -18,9 +18,13 @@
 add_executable(internal-trusted-storage)
 target_include_directories(internal-trusted-storage PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
 set(SP_UUID_CANON "dc1eef48-b17a-4ccf-ac8b-dfcff7711b14")
-set(SP_UUID_LE "0x48ef1edc 0xcf4c7ab1 0xcfdf8bac 0x141b71f7")
 set(SP_HEAP_SIZE "32 * 1024" CACHE STRING "SP heap size in bytes")
 set(TRACE_PREFIX "ITS" CACHE STRING "Trace prefix")
+include(${TS_ROOT}/tools/cmake/common/TargetCompileDefinitions.cmake)
+set_target_uuids(
+	SP_UUID ${SP_UUID_CANON}
+	SP_NAME "internal-trusted-storage"
+)
 
 add_components(TARGET "internal-trusted-storage"
 	BASE_DIR ${TS_ROOT}
diff --git a/deployments/internal-trusted-storage/opteesp/optee_sp_user_defines.h b/deployments/internal-trusted-storage/opteesp/optee_sp_user_defines.h
index 304748a..bbcc12b 100644
--- a/deployments/internal-trusted-storage/opteesp/optee_sp_user_defines.h
+++ b/deployments/internal-trusted-storage/opteesp/optee_sp_user_defines.h
@@ -6,10 +6,6 @@
 #ifndef OPTEE_SP_USER_DEFINES_H
 #define OPTEE_SP_USER_DEFINES_H
 
-#define OPTEE_SP_UUID \
-	{ 0xdc1eef48, 0xb17a, 0x4ccf, \
-		{ 0xac, 0x8b, 0xdf, 0xcf, 0xf7, 0x71, 0x1b, 0x14 } }
-
 #define OPTEE_SP_FLAGS			0
 
 /* Provisioned stack size */
diff --git a/deployments/protected-storage/common/ps_sp.h b/deployments/protected-storage/common/ps_sp.h
index 43e257f..ebe7df3 100644
--- a/deployments/protected-storage/common/ps_sp.h
+++ b/deployments/protected-storage/common/ps_sp.h
@@ -7,8 +7,4 @@
 #ifndef PS_SP_H
 #define PS_SP_H
 
-#define PS_SP_UUID_BYTES \
-	{ 0x75, 0x1b, 0xf8, 0x01, 0x3d, 0xde, 0x47, 0x68, \
-	  0xa5, 0x14, 0x0f, 0x10, 0xae, 0xed, 0x17, 0x90 }
-
 #endif /* PS_SP_H */
diff --git a/deployments/protected-storage/opteesp/CMakeLists.txt b/deployments/protected-storage/opteesp/CMakeLists.txt
index d4813b4..a7034c0 100644
--- a/deployments/protected-storage/opteesp/CMakeLists.txt
+++ b/deployments/protected-storage/opteesp/CMakeLists.txt
@@ -18,9 +18,13 @@
 add_executable(protected-storage)
 target_include_directories(protected-storage PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
 set(SP_UUID_CANON "751bf801-3dde-4768-a514-0f10aeed1790")
-set(SP_UUID_LE "0x01f81b75 0x6847de3d 0x100f14a5 0x9017edae")
 set(SP_HEAP_SIZE "32 * 1024" CACHE STRING "SP heap size in bytes")
 set(TRACE_PREFIX "PS" CACHE STRING "Trace prefix")
+include(${TS_ROOT}/tools/cmake/common/TargetCompileDefinitions.cmake)
+set_target_uuids(
+	SP_UUID ${SP_UUID_CANON}
+	SP_NAME "protected-storage"
+)
 
 add_components(TARGET "protected-storage"
 	BASE_DIR ${TS_ROOT}
diff --git a/deployments/protected-storage/opteesp/optee_sp_user_defines.h b/deployments/protected-storage/opteesp/optee_sp_user_defines.h
index 1da382a..bbcc12b 100644
--- a/deployments/protected-storage/opteesp/optee_sp_user_defines.h
+++ b/deployments/protected-storage/opteesp/optee_sp_user_defines.h
@@ -6,10 +6,6 @@
 #ifndef OPTEE_SP_USER_DEFINES_H
 #define OPTEE_SP_USER_DEFINES_H
 
-#define OPTEE_SP_UUID \
-	{ 0x751bf801, 0x3dde, 0x4768, \
-		{ 0xa5, 0x14, 0x0f, 0x10, 0xae, 0xed, 0x17, 0x90 } }
-
 #define OPTEE_SP_FLAGS			0
 
 /* Provisioned stack size */
diff --git a/deployments/se-proxy/common/se_proxy_sp.h b/deployments/se-proxy/common/se_proxy_sp.h
index ee241b1..4ae2355 100644
--- a/deployments/se-proxy/common/se_proxy_sp.h
+++ b/deployments/se-proxy/common/se_proxy_sp.h
@@ -7,8 +7,4 @@
 #ifndef SE_PROXY_SP_H
 #define SE_PROXY_SP_H
 
-#define SE_PROXY_SP_UUID_BYTES \
-	{0x46, 0xbb, 0x39, 0xd1, 0xb4, 0xd9, 0x45, 0xb5, \
-	 0x88, 0xff, 0x04, 0x00, 0x27, 0xda, 0xb2, 0x49}
-
 #endif /* SE_PROXY_SP_H */
diff --git a/deployments/se-proxy/opteesp/CMakeLists.txt b/deployments/se-proxy/opteesp/CMakeLists.txt
index b40b7cb..1c6753a 100644
--- a/deployments/se-proxy/opteesp/CMakeLists.txt
+++ b/deployments/se-proxy/opteesp/CMakeLists.txt
@@ -22,9 +22,13 @@
 add_executable(se-proxy)
 target_include_directories(se-proxy PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
 set(SP_UUID_CANON "46bb39d1-b4d9-45b5-88ff-040027dab249")
-set(SP_UUID_LE "0xd139bb46 0xb545d9b4 0x0004ff88 0x49b2da27")
 set(SP_HEAP_SIZE "32 * 1024" CACHE STRING "SP heap size in bytes")
 set(TRACE_PREFIX "SEPROXY" CACHE STRING "Trace prefix")
+include(${TS_ROOT}/tools/cmake/common/TargetCompileDefinitions.cmake)
+set_target_uuids(
+	SP_UUID ${SP_UUID_CANON}
+	SP_NAME "se-proxy"
+)
 
 #-------------------------------------------------------------------------------
 #  Components that are specific to deployment in the opteesp environment.
diff --git a/deployments/se-proxy/opteesp/optee_sp_user_defines.h b/deployments/se-proxy/opteesp/optee_sp_user_defines.h
index 9327e78..598cbcc 100644
--- a/deployments/se-proxy/opteesp/optee_sp_user_defines.h
+++ b/deployments/se-proxy/opteesp/optee_sp_user_defines.h
@@ -6,10 +6,6 @@
 #ifndef SP_HEADER_DEFINES_H
 #define SP_HEADER_DEFINES_H
 
-#define OPTEE_SP_UUID \
-	{0x46bb39d1, 0xb4d9, 0x45b5, \
-		{0x88, 0xff, 0x04, 0x00, 0x27, 0xda, 0xb2, 0x49}}
-
 #define OPTEE_SP_FLAGS				0
 
 /* Provisioned stack size */
diff --git a/deployments/sfs-demo/common/sfs_demo_sp.h b/deployments/sfs-demo/common/sfs_demo_sp.h
index c9b4915..a4fe010 100644
--- a/deployments/sfs-demo/common/sfs_demo_sp.h
+++ b/deployments/sfs-demo/common/sfs_demo_sp.h
@@ -7,8 +7,4 @@
 #ifndef SFS_DEMO_SP_H
 #define SFS_DEMO_SP_H
 
-#define SFS_DEMO_SP_UUID_BYTES \
-	{ 0x01, 0x10, 0x9c, 0xf8, 0xe5, 0xca, 0x44, 0x6f, \
-	  0x9b, 0x55, 0xf3, 0xcd, 0xc6, 0x51, 0x10, 0xc8, }
-
 #endif /* SFS_DEMO_SP_H */
diff --git a/deployments/sfs-demo/opteesp/CMakeLists.txt b/deployments/sfs-demo/opteesp/CMakeLists.txt
index 364aa30..ac07e60 100644
--- a/deployments/sfs-demo/opteesp/CMakeLists.txt
+++ b/deployments/sfs-demo/opteesp/CMakeLists.txt
@@ -17,9 +17,13 @@
 project(trusted-services LANGUAGES C ASM)
 add_executable(sfs-demo)
 set(SP_UUID_CANON "01109cf8-e5ca-446f-9b55-f3cdc65110c8")
-set(SP_UUID_LE "0xf89c1001 0x6f44cae5 0xcdf3559b 0xc81051c6")
 set(SP_HEAP_SIZE "32 * 1024" CACHE STRING "SP heap size in bytes")
 set(TRACE_PREFIX "SFSDEMO" CACHE STRING "Trace prefix")
+include(${TS_ROOT}/tools/cmake/common/TargetCompileDefinitions.cmake)
+set_target_uuids(
+	SP_UUID ${SP_UUID_CANON}
+	SP_NAME "sfs-demo"
+)
 
 add_components(TARGET "sfs-demo"
 	BASE_DIR ${TS_ROOT}
diff --git a/deployments/sfs-demo/opteesp/optee_sp_user_defines.h b/deployments/sfs-demo/opteesp/optee_sp_user_defines.h
index b6a8929..916a78b 100644
--- a/deployments/sfs-demo/opteesp/optee_sp_user_defines.h
+++ b/deployments/sfs-demo/opteesp/optee_sp_user_defines.h
@@ -5,10 +5,6 @@
 #ifndef OPTEE_SP_USER_DEFINES_H
 #define OPTEE_SP_USER_DEFINES_H
 
-#define OPTEE_SP_UUID \
-	{ 0x01109cf8, 0xe5ca, 0x446f, \
-		{ 0x9b, 0x55, 0xf3, 0xcd, 0xc6, 0x51, 0x10, 0xc8 } }
-
 #define OPTEE_SP_FLAGS			0
 
 /* Provisioned stack size */
diff --git a/deployments/smm-gateway/common/smm_gateway_sp.h b/deployments/smm-gateway/common/smm_gateway_sp.h
index 13317e7..6f23135 100644
--- a/deployments/smm-gateway/common/smm_gateway_sp.h
+++ b/deployments/smm-gateway/common/smm_gateway_sp.h
@@ -7,8 +7,4 @@
 #ifndef SMM_GATEWAY_SP_H
 #define SMM_GATEWAY_SP_H
 
-#define SMM_GATEWAY_UUID_BYTES \
-	{0xed, 0x32, 0xd5, 0x33, 0x99, 0xe6, 0x42, 0x09, \
-	 0x9c, 0xc0, 0x2d, 0x72, 0xcd, 0xd9, 0x98, 0xa7}
-
 #endif /* SMM_GATEWAY_SP_H */
diff --git a/deployments/smm-gateway/opteesp/CMakeLists.txt b/deployments/smm-gateway/opteesp/CMakeLists.txt
index 245bf6c..8a277cd 100644
--- a/deployments/smm-gateway/opteesp/CMakeLists.txt
+++ b/deployments/smm-gateway/opteesp/CMakeLists.txt
@@ -21,9 +21,13 @@
 add_executable(smm-gateway)
 target_include_directories(smm-gateway PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
 set(SP_UUID_CANON "ed32d533-99e6-4209-9cc0-2d72cdd998a7")
-set(SP_UUID_LE "0x33d532ed 0x0942e699 0x722dc09c 0xa798d9cd")
 set(SP_HEAP_SIZE "32 * 1024" CACHE STRING "SP heap size in bytes")
 set(TRACE_PREFIX "SMMGW" CACHE STRING "Trace prefix")
+include(${TS_ROOT}/tools/cmake/common/TargetCompileDefinitions.cmake)
+set_target_uuids(
+	SP_UUID ${SP_UUID_CANON}
+	SP_NAME "smm-gateway"
+)
 
 # Setting the MM communication buffer parameters
 set(MM_COMM_BUFFER_ADDRESS "0x00000008 0x81000000" CACHE STRING "Address of MM communicte buffer in 64 bit DTS format")
diff --git a/deployments/smm-gateway/opteesp/optee_sp_user_defines.h b/deployments/smm-gateway/opteesp/optee_sp_user_defines.h
index f4dde2b..598cbcc 100644
--- a/deployments/smm-gateway/opteesp/optee_sp_user_defines.h
+++ b/deployments/smm-gateway/opteesp/optee_sp_user_defines.h
@@ -6,10 +6,6 @@
 #ifndef SP_HEADER_DEFINES_H
 #define SP_HEADER_DEFINES_H
 
-#define OPTEE_SP_UUID \
-	{0xed32d533, 0x99e6, 0x4209, \
-		{ 0x9c, 0xc0, 0x2d, 0x72, 0xcd, 0xd9, 0x98, 0xa7 }}
-
 #define OPTEE_SP_FLAGS				0
 
 /* Provisioned stack size */
diff --git a/tools/cmake/common/TargetCompileDefinitions.cmake b/tools/cmake/common/TargetCompileDefinitions.cmake
new file mode 100644
index 0000000..15d55ad
--- /dev/null
+++ b/tools/cmake/common/TargetCompileDefinitions.cmake
@@ -0,0 +1,99 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+macro(generate_uuid_formats uuid)
+	#Create a list of byte
+	string(REGEX MATCHALL "([A-Za-z0-9][A-Za-z0-9])" SEPARATED_HEX "${uuid}")
+	list(JOIN SEPARATED_HEX ", 0x" UUID_BYTES )
+	#Generate the uuid_byte string
+	#{ 0x01, 0x10, 0x9c, 0xf8, 0xe5, 0xca, 0x44, 0x6f,
+	# 0x9b, 0x55, 0xf3, 0xcd, 0xc6, 0x51, 0x10, 0xc8, }
+
+	string(PREPEND UUID_BYTES "{0x")
+	string(APPEND UUID_BYTES "}")
+
+	#Split the list of bytes in to the struct fields
+	list(SUBLIST SEPARATED_HEX 0 4 uuid_timeLow)
+	list(SUBLIST SEPARATED_HEX 4 2 uuid_timeMid)
+	list(SUBLIST SEPARATED_HEX 6 2 uuid_timeHiAndVersion)
+	list(SUBLIST SEPARATED_HEX 8 8 uuid_clockSeqAndNode)
+
+	#Combine the bytes in the fields
+	list(JOIN uuid_timeLow "" uuid_timeLow )
+	string(PREPEND uuid_timeLow "0x")
+
+	list(JOIN uuid_timeMid "" uuid_timeMid )
+	string(PREPEND uuid_timeMid " 0x")
+
+	list(JOIN uuid_timeHiAndVersion "" uuid_timeHiAndVersion )
+	string(PREPEND uuid_timeHiAndVersion " 0x")
+
+	list(JOIN uuid_clockSeqAndNode ", 0x" uuid_clockSeqAndNode )
+	string(PREPEND uuid_clockSeqAndNode " 0x")
+
+	#Combine the different fields into one uuid_struct string
+	#{ 0x01109cf8, 0xe5ca, 0x446f, \
+	#{ 0x9b, 0x55, 0xf3, 0xcd, 0xc6, 0x51, 0x10, 0xc8 } }
+
+	string(CONCAT UUID_STRUCT "{" ${uuid_timeLow} "," ${uuid_timeMid}
+		"," ${uuid_timeHiAndVersion} ", {" ${uuid_clockSeqAndNode} "}}")
+
+	# Swith endianess
+	list(SUBLIST SEPARATED_HEX 0 4 hex1)
+	list(SUBLIST SEPARATED_HEX 4 4 hex2)
+	list(SUBLIST SEPARATED_HEX 8 4 hex3)
+	list(SUBLIST SEPARATED_HEX 12 4 hex4)
+
+	list(REVERSE hex1)
+	list(REVERSE hex2)
+	list(REVERSE hex3)
+	list(REVERSE hex4)
+	string(CONCAT UUID_LE " 0x" ${hex1} " 0x" ${hex2} " 0x" ${hex3}
+		" 0x" ${hex4})
+
+endmacro()
+
+#[===[.rst:
+.. cmake:command:: set_target_uuids
+
+.. code:: cmake
+
+set_target_uuids(
+	SP_UUID <uuid>
+	SP_NAME <name>
+	)
+
+INPUTS:
+
+``SP_UUID``
+The UUID of the SP as a string.
+
+``SP_NAME``
+The name of the SP.
+
+#]===]
+
+function (set_target_uuids)
+	set(options)
+	set(oneValueArgs SP_UUID SP_NAME)
+	set(multiValueArgs)
+	cmake_parse_arguments(TARGET "${options}" "${oneValueArgs}"
+		"${multiValueArgs}" ${ARGN} )
+
+	if(NOT DEFINED TARGET_SP_UUID)
+		message(FATAL_ERROR "set_target_uuids: mandatory parameter SP_UUID not defined!")
+	endif()
+	if(NOT DEFINED TARGET_SP_NAME)
+		message(FATAL_ERROR "set_target_uuids: mandatory parameter SP_NAME not defined!")
+	endif()
+
+	generate_uuid_formats(${TARGET_SP_UUID})
+	target_compile_definitions(${TARGET_SP_NAME}
+		PRIVATE OPTEE_SP_UUID=${UUID_STRUCT}
+		PRIVATE OPTEE_SP_UUID_BYTES=${UUID_BYTES}
+	)
+	set(SP_UUID_LE ${UUID_LE} PARENT_SCOPE)
+endfunction()
