1project(ckteec
2	VERSION 0.1.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
13include(GNUInstallDirs)
14
15################################################################################
16# Source files
17################################################################################
18set (SRC
19	src/pkcs11_api.c
20	src/ck_debug.c
21	src/ck_helpers.c
22	src/invoke_ta.c
23	src/pkcs11_processing.c
24	src/pkcs11_token.c
25	src/serializer.c
26	src/serialize_ck.c
27)
28
29################################################################################
30# Built library
31################################################################################
32add_library (ckteec ${SRC})
33
34set_target_properties (ckteec PROPERTIES
35	VERSION ${PROJECT_VERSION}
36	SOVERSION ${PROJECT_VERSION_MAJOR}
37)
38
39################################################################################
40# Flags always set
41################################################################################
42target_compile_definitions (ckteec
43	PRIVATE -D_GNU_SOURCE
44	PRIVATE -DBINARY_PREFIX="LT"
45)
46
47################################################################################
48# Optional flags
49################################################################################
50
51################################################################################
52# Public and private header and library dependencies
53################################################################################
54target_include_directories(ckteec
55	PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
56	$<INSTALL_INTERFACE:include>
57	PRIVATE src
58)
59
60target_include_directories(teec
61	PUBLIC include
62)
63
64target_link_libraries (ckteec
65	PRIVATE pthread
66	PRIVATE teec
67	PRIVATE m
68)
69
70################################################################################
71# Install targets
72################################################################################
73install (TARGETS ckteec
74	DESTINATION ${CMAKE_INSTALL_LIBDIR}
75)
76
77add_subdirectory(include)
78