1project(libteec 2 VERSION 1.0.0 3 LANGUAGES C) 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(libteectgt teec) 39configure_file(libteec.pc.in libteec.pc @ONLY) 40 41set_target_properties (teec PROPERTIES 42 VERSION ${PROJECT_VERSION} 43 SOVERSION ${PROJECT_VERSION_MAJOR} 44) 45 46################################################################################ 47# Flags always set 48################################################################################ 49target_compile_definitions (teec 50 PRIVATE -D_GNU_SOURCE 51 PRIVATE -DDEBUGLEVEL_${CFG_TEE_CLIENT_LOG_LEVEL} 52 PRIVATE -DTEEC_LOG_FILE="${CFG_TEE_CLIENT_LOG_FILE}" 53 PRIVATE -DBINARY_PREFIX="LT" 54) 55 56################################################################################ 57# Optional flags 58################################################################################ 59if (CFG_TEE_BENCHMARK) 60 target_compile_definitions (teec PRIVATE -DCFG_TEE_BENCHMARK) 61endif() 62 63################################################################################ 64# Public and private header and library dependencies 65################################################################################ 66target_include_directories(teec PUBLIC include) 67 68target_link_libraries (teec 69 PUBLIC ${CMAKE_THREAD_LIBS_INIT} # this is pthreads 70 PRIVATE optee-client-headers) 71 72################################################################################ 73# Install targets 74################################################################################ 75# FIXME: This should in someway harmonize with CFG_TEE_CLIENT_LOAD_PATH 76# FIXME: Should we change this to /usr/local/lib? 77install (TARGETS teec LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" 78 ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") 79