app: Add a static library for the PSA tests

This allows external build systems (like Zephyr) to easily pick up and
build the PSA tests in their own context.

Signed-off-by: Øyvind Rønningstad <oyvind.ronningstad@nordicsemi.no>
Change-Id: Ic376c8943f53dd729665e99148f8de55e2d0c061
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 1a5b836..7906a91 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -104,12 +104,39 @@
 
 ############################# TFM NS app #######################################
 
+if (TEST_PSA_API)
+    add_library(tfm_ns_psa_test STATIC)
+
+    target_sources(tfm_ns_psa_test
+        PRIVATE
+            psa_api_test.c
+    )
+
+    target_link_libraries(tfm_ns_psa_test
+        PRIVATE
+            val_nspe
+            pal_nspe
+            test_combine
+            platform_ns
+            psa_api_ns
+    )
+
+    target_include_directories(tfm_ns_psa_test
+        PUBLIC
+            .
+    )
+
+    target_compile_definitions(tfm_ns_psa_test
+        PUBLIC
+            PSA_API_TEST_NS
+    )
+endif()
+
 add_executable(tfm_ns)
 
 target_sources(tfm_ns
     PRIVATE
         main_ns.c
-        $<$<BOOL:${TEST_PSA_API}>:psa_api_test.c>
 )
 
 target_link_libraries(tfm_ns
@@ -117,19 +144,12 @@
         platform_ns
         CMSIS_5_tfm_ns
         $<$<OR:$<BOOL:${TEST_NS}>,$<BOOL:${TEST_S}>>:tfm_ns_integration_test>
-        $<$<BOOL:${TEST_PSA_API}>:val_nspe>
-        $<$<BOOL:${TEST_PSA_API}>:pal_nspe>
-        $<$<BOOL:${TEST_PSA_API}>:test_combine>
+        $<$<BOOL:${TEST_PSA_API}>:tfm_ns_psa_test>
         $<$<NOT:$<BOOL:${TFM_MULTI_CORE_TOPOLOGY}>>:tfm_s_veneers>
         psa_api_ns
         tfm_ns_log
 )
 
-target_compile_definitions(tfm_ns
-    PUBLIC
-    $<$<BOOL:${TEST_PSA_API}>:PSA_API_TEST_NS>
-)
-
 set_target_properties(tfm_ns PROPERTIES
     SUFFIX ".axf"
     RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"