Build: allow setting of options for psa_arch_test
Don't override any of the variables that are passed to the psa_arch_test
buildsystem if they are already defined. Allows users to set -DSUITE etc
on the command-line if more fine-grained control of the psa_arch_test
build is required.
Change-Id: I141af5eae79d7f8ad797a0f46c0ba981e703ca80
Signed-off-by: Raef Coles <raef.coles@arm.com>
diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 9739744..b7e5d73 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -18,37 +18,52 @@
############################# PSA test integration #############################
-if(TEST_PSA_API)
- set(SUITE ${TEST_PSA_API})
+if(TEST_PSA_API AND NOT PSA_ARCH_TESTS_BINARY_PATH)
+ if(NOT SUITE)
+ set(SUITE ${TEST_PSA_API})
+ endif()
string(REGEX REPLACE ".*/" "" PSA_API_TEST_TARGET ${TFM_PLATFORM})
- if (NOT "${TEST_PSA_API}" STREQUAL "IPC")
- set(TARGET tgt_dev_apis_tfm_${PSA_API_TEST_TARGET})
- else()
- set(TARGET tgt_ff_tfm_${PSA_API_TEST_TARGET})
+ if(NOT TARGET)
+ if (NOT "${TEST_PSA_API}" STREQUAL "IPC")
+ set(TARGET tgt_dev_apis_tfm_${PSA_API_TEST_TARGET})
+ else()
+ set(TARGET tgt_ff_tfm_${PSA_API_TEST_TARGET})
+ endif()
endif()
- set(PSA_INCLUDE_PATHS ${CMAKE_SOURCE_DIR}/interface/include/
- ${PSA_ARCH_TESTS_PATH}/api-tests/platform/manifests/
- ${CMAKE_BINARY_DIR}/generated/interface/include
- )
- set(SP_HEAP_MEM_SUPP=0)
- set(PLATFORM_PSA_ISOLATION_LEVEL ${TFM_ISOLATION_LEVEL})
-
- if (${CMAKE_C_COMPILER_ID} STREQUAL GNU)
- set(TOOLCHAIN GNUARM)
- elseif (${CMAKE_C_COMPILER_ID} STREQUAL ARMClang)
- set(TOOLCHAIN ARMCLANG)
+ if(NOT PSA_INCLUDE_PATHS)
+ set(PSA_INCLUDE_PATHS ${CMAKE_SOURCE_DIR}/interface/include/
+ ${PSA_ARCH_TESTS_PATH}/api-tests/platform/manifests/
+ ${CMAKE_BINARY_DIR}/generated/interface/include
+ )
endif()
- if (${CMAKE_SYSTEM_ARCHITECTURE} STREQUAL armv8-m.main)
- set(CPU_ARCH armv8m_ml)
- elseif (${CMAKE_SYSTEM_ARCHITECTURE} STREQUAL armv8-m.base)
- set(CPU_ARCH armv8m_bl)
- elseif (${CMAKE_SYSTEM_ARCHITECTURE} STREQUAL armv7-m)
- set(CPU_ARCH armv7m)
+ if(NOT SP_HEAP_MEM_SUPP)
+ set(SP_HEAP_MEM_SUPP=0)
+ endif()
+ if(NOT PLATFORM_PSA_ISOLATION_LEVEL)
+ set(PLATFORM_PSA_ISOLATION_LEVEL ${TFM_ISOLATION_LEVEL})
+ endif()
+
+ if (NOT TOOLCHAIN)
+ if (${CMAKE_C_COMPILER_ID} STREQUAL GNU)
+ set(TOOLCHAIN GNUARM)
+ elseif (${CMAKE_C_COMPILER_ID} STREQUAL ARMClang)
+ set(TOOLCHAIN ARMCLANG)
+ endif()
+ endif()
+
+ if (NOT CPU_ARCH)
+ if (${CMAKE_SYSTEM_ARCHITECTURE} STREQUAL armv8-m.main)
+ set(CPU_ARCH armv8m_ml)
+ elseif (${CMAKE_SYSTEM_ARCHITECTURE} STREQUAL armv8-m.base)
+ set(CPU_ARCH armv8m_bl)
+ elseif (${CMAKE_SYSTEM_ARCHITECTURE} STREQUAL armv7-m)
+ set(CPU_ARCH armv7m)
+ endif()
endif()
add_subdirectory(${PSA_ARCH_TESTS_PATH}/api-tests ${CMAKE_CURRENT_BINARY_DIR}/psa_api_tests)