1project(ckteec C)
2
3set(MAJOR_VERSION 0)
4set(MINOR_VERSION 1)
5set(PATCH_VERSION 0)
6
7set(PROJECT_VERSION "${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}")
8
9################################################################################
10# Packages
11################################################################################
12find_package(Threads REQUIRED)
13if(NOT THREADS_FOUND)
14	message(FATAL_ERROR "Threads not found")
15endif()
16
17include(GNUInstallDirs)
18
19################################################################################
20# Source files
21################################################################################
22set (SRC
23	src/pkcs11_api.c
24	src/ck_debug.c
25	src/ck_helpers.c
26	src/invoke_ta.c
27	src/pkcs11_processing.c
28	src/pkcs11_token.c
29	src/serializer.c
30	src/serialize_ck.c
31)
32
33################################################################################
34# Built library
35################################################################################
36add_library (ckteec ${SRC})
37
38set_target_properties (ckteec PROPERTIES
39	VERSION ${PROJECT_VERSION}
40	SOVERSION ${MAJOR_VERSION}
41)
42
43################################################################################
44# Flags always set
45################################################################################
46target_compile_definitions (ckteec
47	PRIVATE -D_GNU_SOURCE
48	PRIVATE -DBINARY_PREFIX="LT"
49)
50
51################################################################################
52# Optional flags
53################################################################################
54
55################################################################################
56# Public and private header and library dependencies
57################################################################################
58target_include_directories(ckteec
59	PUBLIC include
60	PRIVATE src
61)
62
63target_include_directories(teec
64	PUBLIC include
65)
66
67target_link_libraries (ckteec
68	PRIVATE pthread
69	PRIVATE teec
70	PRIVATE m
71)
72
73################################################################################
74# Install targets
75################################################################################
76install (TARGETS ckteec
77	DESTINATION ${CMAKE_INSTALL_LIBDIR}
78)
79
80add_subdirectory(include)
81