]> www.wagner.pp.ru Git - openssl-gost/engine.git/blob - CMakeLists.txt
Merge remote-tracking branch 'origin/openssl_1_1_0'
[openssl-gost/engine.git] / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.8)
2 project(ccgost)
3
4 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c98 -O3 -Werror -Wall")
5 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -Werror")
6
7 set(GOST_INCLUDE_DIRECTORIES "${OPENSSL_PATH}/include" "${OPENSSL_PATH}/crypto/include")
8
9 set(GOST_LINK_DIRECTORIES "${OPENSSL_PATH}")
10
11 include_directories("${GOST_INCLUDE_DIRECTORIES}")
12
13 set(BIN_DIRECTORY bin)
14
15 set(OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/${BIN_DIRECTORY})
16
17 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY})
18 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY})
19 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY})
20
21 set(GOST_89_SOURCE_FILES
22         gost89.c
23         gost89.h
24         )
25
26 set(GOST_HASH_SOURCE_FILES
27         gosthash.c
28         gosthash.h
29         )
30
31 set(GOST_HASH_2012_SOURCE_FILES
32         gosthash2012.c
33         gosthash2012.h
34         gosthash2012_const.h
35         gosthash2012_precalc.h
36         gosthash2012_ref.h
37         gosthash2012_sse2.h
38         )
39
40 set(GOST_GRASSHOPPER_SOURCE_FILES
41         gost_grasshopper.h
42         gost_grasshopper_core.h
43         gost_grasshopper_core.c
44         gost_grasshopper_defines.h
45         gost_grasshopper_defines.c
46         gost_grasshopper_math.h
47         gost_grasshopper_galois_precompiled.c
48         gost_grasshopper_precompiled.c
49         gost_grasshopper_cipher.h
50         gost_grasshopper_cipher.c
51         gost_grasshopper_mac.h
52         gost_grasshopper_mac.c
53         )
54
55 set(GOST_CORE_SOURCE_FILES
56         e_gost_err.c
57         e_gost_err.h
58         gost_asn1.c
59         gost_crypt.c
60         gost_ctl.c
61         gost_eng.c
62         gost_keywrap.c
63         gost_keywrap.h
64         gost_lcl.h
65         gost_params.c
66         )
67
68 set(GOST_EC_SOURCE_FILES
69         gost_ec_keyx.c
70         gost_ec_sign.c
71         )
72
73 set(GOST_ENGINE_SOURCE_FILES
74         ${GOST_CORE_SOURCE_FILES}
75         ${GOST_EC_SOURCE_FILES}
76         ${GOST_89_SOURCE_FILES}
77         gost_ameth.c
78         gost_md.c
79         gost_md2012.c
80         gost_pmeth.c
81         ${GOST_HASH_SOURCE_FILES}
82         ${GOST_GRASSHOPPER_SOURCE_FILES}
83         ${GOST_HASH_2012_SOURCE_FILES})
84
85 link_directories(${GOST_LINK_DIRECTORIES})
86
87 add_library(gost_engine SHARED ${GOST_ENGINE_SOURCE_FILES})
88
89 target_link_libraries(gost_engine crypto)
90
91 set(GOST_12_SUM_SOURCE_FILES
92         gost12sum.c
93         )
94
95 add_executable(gost12sum ${GOST_12_SUM_SOURCE_FILES})
96
97 target_link_libraries(gost12sum gost_engine)
98
99 set(GOST_SUM_SOURCE_FILES
100         gostsum.c
101         )
102
103 add_executable(gostsum ${GOST_SUM_SOURCE_FILES})
104
105 target_link_libraries(gostsum gost_engine)
106
107 set(GOST_SUM_12_SOURCE_FILES
108         gostsum12.c
109         )
110
111 add_executable(gostsum12 ${GOST_SUM_12_SOURCE_FILES})
112
113 target_link_libraries(gostsum12 gost_engine)