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