1project(libteec C)
2
3set(PROJECT_VERSION "1.0.0")
4
5################################################################################
6# Packages
7################################################################################
8find_package(Threads REQUIRED)
9if(NOT THREADS_FOUND)
10	message(FATAL_ERROR "Threads not found")
11endif()
12
13################################################################################
14# Configuration flags always included
15################################################################################
16option (CFG_TEE_BENCHMARK "Build with benchmark support" OFF)
17
18set (CFG_TEE_CLIENT_LOG_LEVEL "1" CACHE STRING "libteec log level")
19set (CFG_TEE_CLIENT_LOG_FILE "/data/tee/teec.log" CACHE STRING "Location of libteec log")
20
21################################################################################
22# Source files
23################################################################################
24set (SRC
25	src/tee_client_api.c
26	src/teec_trace.c
27)
28
29if (CFG_TEE_BENCHMARK)
30	set (SRC ${SRC} src/teec_benchmark.c)
31endif()
32
33################################################################################
34# Built library
35################################################################################
36add_library (teec ${SRC})
37
38set_target_properties (teec PROPERTIES
39	VERSION ${PROJECT_VERSION}
40	SOVERSION 1
41)
42
43################################################################################
44# Flags always set
45################################################################################
46target_compile_definitions (teec
47	PRIVATE -D_GNU_SOURCE
48	PRIVATE -DCFG_TEE_CLIENT_LOG_LEVEL=${CFG_TEE_CLIENT_LOG_LEVEL}
49	PRIVATE -DTEEC_LOG_FILE="${CFG_TEE_CLIENT_LOG_FILE}"
50	PRIVATE -DBINARY_PREFIX="LT"
51)
52
53################################################################################
54# Optional flags
55################################################################################
56if (CFG_TEE_BENCHMARK)
57	target_compile_definitions (teec PRIVATE -DCFG_TEE_BENCHMARK)
58endif()
59
60################################################################################
61# Public and private header and library dependencies
62################################################################################
63target_include_directories(teec PUBLIC include)
64
65target_link_libraries (teec
66	PUBLIC ${CMAKE_THREAD_LIBS_INIT} # this is pthreads
67	PRIVATE optee-client-headers)
68
69################################################################################
70# Install targets
71################################################################################
72# FIXME: This should in someway harmonize with CFG_TEE_CLIENT_LOAD_PATH
73# FIXME: Should we change this to /usr/local/lib?
74install (TARGETS teec LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
75                      ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
76