1project (xtest C)
2
3include(${OPTEE_TEST_SDK}/host_include/conf.cmake)
4
5################################################################################
6# Packages
7################################################################################
8find_package(Threads REQUIRED)
9if(NOT THREADS_FOUND)
10	message(FATAL_ERROR "Threads not found")
11endif()
12
13find_package(OpenSSL)
14if(OPENSSL_FOUND)
15	add_compile_options(-DOPENSSL_FOUND=1)
16	set (OPENSSL_PRIVATE_LINK OpenSSL::Crypto)
17endif()
18
19find_package(Python REQUIRED)
20
21include(GNUInstallDirs)
22
23macro(EMBED_8100FILE prefix infile)
24	add_custom_command(
25		OUTPUT  regression_8100_${prefix}.h
26		COMMAND ${Python_EXECUTABLE} ${OPTEE_TEST_ROOT_DIR}/scripts/file_to_c.py --inf ${infile}
27	--out ${CMAKE_CURRENT_BINARY_DIR}/regression_8100_${prefix}.h
28	--name regression_8100_${prefix}
29		DEPENDS ${OPTEE_TEST_ROOT_DIR}/scripts/file_to_c.py ${infile}
30	)
31
32	set_property(SOURCE regression_8100.c APPEND PROPERTY OBJECT_DEPENDS
33		     ${CMAKE_CURRENT_BINARY_DIR}/regression_8100_${prefix}.h)
34endmacro(EMBED_8100FILE)
35
36EMBED_8100FILE(ca_crt ${OPTEE_TEST_ROOT_DIR}/cert/ca.crt)
37EMBED_8100FILE(mid_crt ${OPTEE_TEST_ROOT_DIR}/cert/mid.crt)
38EMBED_8100FILE(my_crt ${OPTEE_TEST_ROOT_DIR}/cert/my.crt)
39EMBED_8100FILE(my_csr ${OPTEE_TEST_ROOT_DIR}/cert/my.csr)
40
41set (SRC
42	adbg/src/adbg_case.c
43	adbg/src/adbg_enum.c
44	adbg/src/adbg_expect.c
45	adbg/src/adbg_log.c
46	adbg/src/adbg_run.c
47	adbg/src/security_utils_hex.c
48	aes_perf.c
49	benchmark_1000.c
50	benchmark_2000.c
51	regression_1000.c
52	regression_4000.c
53	regression_4100.c
54	regression_5000.c
55	regression_6000.c
56	regression_8000.c
57	regression_8100.c
58	sha_perf.c
59	stats.c
60	xtest_helpers.c
61	xtest_main.c
62	xtest_test.c
63	xtest_uuid_helpers.c
64)
65
66if (WITH_GP_TESTS)
67	add_compile_options(-DWITH_GP_TESTS=1)
68
69	macro(__GEN_GP_FILE outfile xmldir name basedir)
70		add_custom_command(
71			OUTPUT	${outfile}
72			COMMAND	xalan -in ${basedir}/${name}.xml
73				      -xsl gp/${name}.xsl -out ${outfile}
74			DEPENDS ${basedir}/${name}.xml gp/${name}.xsl
75		)
76	endmacro(__GEN_GP_FILE)
77	macro(GEN_GP_FILE outfile xmldir name)
78		__GEN_GP_FILE(${outfile} ${xmldir} ${name}
79			      gp-suite/packages/${xmldir})
80		list (APPEND SRC ${outfile})
81	endmacro(GEN_GP_FILE)
82
83	GEN_GP_FILE(gp_10000.c ClientAPI/xmlstable TEE)
84	GEN_GP_FILE(gp_20000.c TrustedCoreFw/xmlstable TEE_Internal_API)
85	GEN_GP_FILE(gp_30000.c DataStorage/xmlstable TEE_DataStorage_API)
86	GEN_GP_FILE(gp_40000.c Time_Arithmetical/xmlstable TEE_TimeArithm_API)
87	GEN_GP_FILE(gp_50000.c Crypto/xmlstable TEE_Crypto_API)
88	set (GP_INCLUDES PRIVATE gp/include)
89endif()
90
91if (CFG_GP_SOCKETS)
92	list (APPEND SRC
93		regression_2000.c
94		sock_server.c
95		rand_stream.c
96	)
97endif()
98
99if (CFG_SECSTOR_TA_MGMT_PTA)
100	list (APPEND SRC install_ta.c)
101endif()
102
103if (CFG_SECURE_DATA_PATH)
104	list (APPEND SRC sdp_basic.c)
105endif()
106
107if (CFG_PKCS11_TA)
108	add_compile_options(-DCFG_PKCS11_TA)
109	list (APPEND SRC pkcs11_1000.c)
110endif()
111
112################################################################################
113# Built binary
114################################################################################
115add_executable (${PROJECT_NAME} ${SRC})
116
117target_compile_options (${PROJECT_NAME} PRIVATE -include conf.h)
118
119target_include_directories(${PROJECT_NAME}
120	PRIVATE .
121	PRIVATE ../supp_plugin/include
122	PRIVATE adbg/include
123	PRIVATE ${OPTEE_TEST_SDK}/host_include
124	PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
125	${GP_INCLUDES}
126)
127
128target_link_libraries (${PROJECT_NAME}
129	PRIVATE ${CMAKE_THREAD_LIBS_INIT}
130	PRIVATE xtest-ta-headers
131	PRIVATE teec
132	PRIVATE m
133	PRIVATE ${OPENSSL_PRIVATE_LINK}
134	PRIVATE ckteec
135)
136
137################################################################################
138# Install targets
139################################################################################
140install (TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
141