Separate the generic part of SP deployments

Move the non opteesp environment dependent code of SP deployments into
a separate directory and split CMake files into a generic and an
environment specific part.

Signed-off-by: Imre Kis <imre.kis@arm.com>
Change-Id: I4f09d6d3adef07644e98f2a05d6cb077a92b385b
diff --git a/deployments/se-proxy/opteesp/se_proxy_sp.c b/deployments/se-proxy/common/se_proxy_sp.c
similarity index 100%
rename from deployments/se-proxy/opteesp/se_proxy_sp.c
rename to deployments/se-proxy/common/se_proxy_sp.c
diff --git a/deployments/se-proxy/common/se_proxy_sp.h b/deployments/se-proxy/common/se_proxy_sp.h
new file mode 100644
index 0000000..ee241b1
--- /dev/null
+++ b/deployments/se-proxy/common/se_proxy_sp.h
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#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/service_proxy_factory.c b/deployments/se-proxy/common/service_proxy_factory.c
similarity index 100%
rename from deployments/se-proxy/opteesp/service_proxy_factory.c
rename to deployments/se-proxy/common/service_proxy_factory.c
diff --git a/deployments/se-proxy/opteesp/service_proxy_factory.h b/deployments/se-proxy/common/service_proxy_factory.h
similarity index 100%
rename from deployments/se-proxy/opteesp/service_proxy_factory.h
rename to deployments/se-proxy/common/service_proxy_factory.h
diff --git a/deployments/se-proxy/opteesp/CMakeLists.txt b/deployments/se-proxy/opteesp/CMakeLists.txt
index 7812f32..8d6dcda 100644
--- a/deployments/se-proxy/opteesp/CMakeLists.txt
+++ b/deployments/se-proxy/opteesp/CMakeLists.txt
@@ -23,6 +23,7 @@
 target_include_directories(se-proxy PRIVATE "${TOP_LEVEL_INCLUDE_DIRS}")
 set(SP_UUID "46bb39d1-b4d9-45b5-88ff-040027dab249")
 set(SP_HEAP_SIZE "32 * 1024" CACHE STRING "SP heap size in bytes")
+set(TRACE_PREFIX "SEPROXY" CACHE STRING "Trace prefix")
 
 #-------------------------------------------------------------------------------
 #  Components that are specific to deployment in the opteesp environment.
@@ -31,59 +32,10 @@
 add_components(TARGET "se-proxy"
 	BASE_DIR ${TS_ROOT}
 	COMPONENTS
-		"components/common/fdt"
-		"components/common/trace"
-		"components/common/utils"
-		"protocols/rpc/common/packed-c"
-		"protocols/service/secure_storage/packed-c"
-		"protocols/service/crypto/protobuf"
 		"environments/opteesp"
-		"components/common/tlv"
-		"components/config/ramstore"
-		"components/config/loader/sp"
-		"components/messaging/ffa/libsp"
-		"components/rpc/ffarpc/endpoint"
-		"components/rpc/common/interface"
-		"components/rpc/common/demux"
-		"components/service/common/include"
-		"components/service/common/serializer/protobuf"
-		"components/service/common/client"
-		"components/service/common/provider"
-		"components/service/discovery/provider"
-		"components/service/discovery/provider/serializer/packed-c"
-		"components/service/crypto/include"
-		"components/service/crypto/provider"
-		"components/service/crypto/provider/serializer/protobuf"
-		"components/service/crypto/provider/serializer/packed-c"
-		"components/service/crypto/provider/extension/hash"
-		"components/service/crypto/provider/extension/hash/serializer/packed-c"
-		"components/service/crypto/provider/extension/cipher"
-		"components/service/crypto/provider/extension/cipher/serializer/packed-c"
-		"components/service/crypto/provider/extension/key_derivation"
-		"components/service/crypto/provider/extension/key_derivation/serializer/packed-c"
-		"components/service/crypto/provider/extension/mac"
-		"components/service/crypto/provider/extension/mac/serializer/packed-c"
-		"components/service/crypto/factory/full"
-		"components/service/secure_storage/include"
-		"components/service/secure_storage/frontend/secure_storage_provider"
-		"components/service/attestation/include"
-		"components/service/attestation/provider"
-		"components/service/attestation/provider/serializer/packed-c"
-
-		# Stub service provider backends
-		"components/rpc/dummy"
-		"components/rpc/common/caller"
-		"components/service/attestation/reporter/stub"
-		"components/service/attestation/key_mngr/stub"
-		"components/service/crypto/backend/stub"
-		"components/service/crypto/client/psa"
-		"components/service/secure_storage/backend/mock_store"
 )
 
-target_sources(se-proxy PRIVATE
-	se_proxy_sp.c
-	service_proxy_factory.c
-)
+include(../se-proxy.cmake REQUIRED)
 
 #-------------------------------------------------------------------------------
 #  Set target platform to provide drivers needed by the deployment
@@ -91,29 +43,12 @@
 #-------------------------------------------------------------------------------
 add_platform(TARGET "se-proxy")
 
-#-------------------------------------------------------------------------------
-#  Components used from external projects
-#
-#-------------------------------------------------------------------------------
-
-# Get libc include dir
-get_property(LIBC_INCLUDE_PATH TARGET c PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
-
-# Nanopb
-list(APPEND NANOPB_EXTERNAL_INCLUDE_PATHS ${LIBC_INCLUDE_PATH})
-include(../../../external/nanopb/nanopb.cmake)
-target_link_libraries(se-proxy PRIVATE nanopb::protobuf-nanopb-static)
-protobuf_generate_all(TGT "se-proxy" NAMESPACE "protobuf" BASE_DIR "${TS_ROOT}/protocols")
-
-#################################################################
 
 target_compile_definitions(se-proxy PRIVATE
 	ARM64=1
 )
 
 target_include_directories(se-proxy PRIVATE
-	${TS_ROOT}
-	${TS_ROOT}/components
 	${TS_ROOT}/deployments/se-proxy/opteesp
 )
 
diff --git a/deployments/se-proxy/opteesp/optee_sp_user_defines.h b/deployments/se-proxy/opteesp/optee_sp_user_defines.h
index bdeada3..9327e78 100644
--- a/deployments/se-proxy/opteesp/optee_sp_user_defines.h
+++ b/deployments/se-proxy/opteesp/optee_sp_user_defines.h
@@ -6,10 +6,10 @@
 #ifndef SP_HEADER_DEFINES_H
 #define SP_HEADER_DEFINES_H
 
-/* To get UUID definition */
-#include "se_proxy_sp.h"
+#define OPTEE_SP_UUID \
+	{0x46bb39d1, 0xb4d9, 0x45b5, \
+		{0x88, 0xff, 0x04, 0x00, 0x27, 0xda, 0xb2, 0x49}}
 
-#define OPTEE_SP_UUID				SE_PROXY_SP_UUID
 #define OPTEE_SP_FLAGS				0
 
 /* Provisioned stack size */
diff --git a/deployments/se-proxy/opteesp/se_proxy_sp.h b/deployments/se-proxy/opteesp/se_proxy_sp.h
deleted file mode 100644
index 74bbde4..0000000
--- a/deployments/se-proxy/opteesp/se_proxy_sp.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#ifndef SE_PROXY_SP_H
-#define SE_PROXY_SP_H
-
-#define SE_PROXY_SP_UUID \
-	 {0x46bb39d1, 0xb4d9, 0x45b5, \
-                {0x88, 0xff, 0x04, 0x00, 0x27, 0xda, 0xb2, 0x49}}
-
-#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/se-proxy.cmake b/deployments/se-proxy/se-proxy.cmake
new file mode 100644
index 0000000..50799f9
--- /dev/null
+++ b/deployments/se-proxy/se-proxy.cmake
@@ -0,0 +1,83 @@
+#-------------------------------------------------------------------------------
+# Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+#-------------------------------------------------------------------------------
+
+add_components(TARGET "se-proxy"
+	BASE_DIR ${TS_ROOT}
+	COMPONENTS
+		"components/common/fdt"
+		"components/common/trace"
+		"components/common/utils"
+		"protocols/rpc/common/packed-c"
+		"protocols/service/secure_storage/packed-c"
+		"protocols/service/crypto/protobuf"
+		"components/common/tlv"
+		"components/config/ramstore"
+		"components/config/loader/sp"
+		"components/messaging/ffa/libsp"
+		"components/rpc/ffarpc/endpoint"
+		"components/rpc/common/interface"
+		"components/rpc/common/demux"
+		"components/service/common/include"
+		"components/service/common/serializer/protobuf"
+		"components/service/common/client"
+		"components/service/common/provider"
+		"components/service/discovery/provider"
+		"components/service/discovery/provider/serializer/packed-c"
+		"components/service/crypto/include"
+		"components/service/crypto/provider"
+		"components/service/crypto/provider/serializer/protobuf"
+		"components/service/crypto/provider/serializer/packed-c"
+		"components/service/crypto/provider/extension/hash"
+		"components/service/crypto/provider/extension/hash/serializer/packed-c"
+		"components/service/crypto/provider/extension/cipher"
+		"components/service/crypto/provider/extension/cipher/serializer/packed-c"
+		"components/service/crypto/provider/extension/key_derivation"
+		"components/service/crypto/provider/extension/key_derivation/serializer/packed-c"
+		"components/service/crypto/provider/extension/mac"
+		"components/service/crypto/provider/extension/mac/serializer/packed-c"
+		"components/service/crypto/factory/full"
+		"components/service/secure_storage/include"
+		"components/service/secure_storage/frontend/secure_storage_provider"
+		"components/service/attestation/include"
+		"components/service/attestation/provider"
+		"components/service/attestation/provider/serializer/packed-c"
+
+		# Stub service provider backends
+		"components/rpc/dummy"
+		"components/rpc/common/caller"
+		"components/service/attestation/reporter/stub"
+		"components/service/attestation/key_mngr/stub"
+		"components/service/crypto/backend/stub"
+		"components/service/crypto/client/psa"
+		"components/service/secure_storage/backend/mock_store"
+)
+
+target_sources(se-proxy PRIVATE
+	${CMAKE_CURRENT_LIST_DIR}/common/se_proxy_sp.c
+	${CMAKE_CURRENT_LIST_DIR}/common/service_proxy_factory.c
+)
+
+#-------------------------------------------------------------------------------
+#  Components used from external projects
+#
+#-------------------------------------------------------------------------------
+
+# Get libc include dir
+get_property(LIBC_INCLUDE_PATH TARGET c PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
+
+# Nanopb
+list(APPEND NANOPB_EXTERNAL_INCLUDE_PATHS ${LIBC_INCLUDE_PATH})
+include(../../../external/nanopb/nanopb.cmake)
+target_link_libraries(se-proxy PRIVATE nanopb::protobuf-nanopb-static)
+protobuf_generate_all(TGT "se-proxy" NAMESPACE "protobuf" BASE_DIR "${TS_ROOT}/protocols")
+
+#################################################################
+
+target_include_directories(se-proxy PRIVATE
+	${TS_ROOT}
+	${TS_ROOT}/components
+)