blob: 9422eeb97aec8696744d250672bb1aff4ecf663e [file] [log] [blame]
project(libteec C)
set(PROJECT_VERSION "1.0.0")
################################################################################
# Packages
################################################################################
find_package(Threads REQUIRED)
if(NOT THREADS_FOUND)
message(FATAL_ERROR "Threads not found")
endif()
################################################################################
# Configuration flags always included
################################################################################
option (CFG_TEE_BENCHMARK "Build with benchmark support" OFF)
set (CFG_TEE_CLIENT_LOG_LEVEL "1" CACHE STRING "libteec log level")
set (CFG_TEE_CLIENT_LOG_FILE "/data/tee/teec.log" CACHE STRING "Location of libteec log")
################################################################################
# Source files
################################################################################
set (SRC
src/tee_client_api.c
src/teec_trace.c
)
if (CFG_TEE_BENCHMARK)
set (SRC ${SRC} src/teec_benchmark.c)
endif()
################################################################################
# Built library
################################################################################
add_library (teec ${SRC})
set_target_properties (teec PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION 1
)
################################################################################
# Flags always set
################################################################################
target_compile_definitions (teec
PRIVATE -D_GNU_SOURCE
PRIVATE -DCFG_TEE_CLIENT_LOG_LEVEL=${CFG_TEE_CLIENT_LOG_LEVEL}
PRIVATE -DTEEC_LOG_FILE="${CFG_TEE_CLIENT_LOG_FILE}"
PRIVATE -DBINARY_PREFIX="LT"
)
################################################################################
# Optional flags
################################################################################
if (CFG_TEE_BENCHMARK)
target_compile_definitions (teec PRIVATE -DCFG_TEE_BENCHMARK)
endif()
################################################################################
# Public and private header and library dependencies
################################################################################
target_include_directories(teec PUBLIC include)
target_link_libraries (teec
PUBLIC ${CMAKE_THREAD_LIBS_INIT} # this is pthreads
PRIVATE optee-client-headers)
################################################################################
# Install targets
################################################################################
# FIXME: This should in someway harmonize with CFG_TEE_CLIENT_LOAD_PATH
# FIXME: Should we change this to /usr/local/lib?
install (TARGETS teec LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")