]> www.wagner.pp.ru Git - openssl-gost/engine.git/blob - CMakeLists.txt
Fix compiler warnings
[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 -Qunused-arguments -Wno-unused-function -Wno-missing-braces -Wall")
5 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -Werror -Wall -Qunused-arguments -Wno-unused-function -Wno-missing-braces -ggdb")
6
7 include (TestBigEndian)
8 TEST_BIG_ENDIAN(IS_BIG_ENDIAN)
9 if(IS_BIG_ENDIAN)
10  message(STATUS "BIG_ENDIAN")
11 else()
12  message(STATUS "LITTLE_ENDIAN")
13  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c98 -O3 -Werror -Wall")
14  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DL_ENDIAN")
15 endif()
16
17 set(BIN_DIRECTORY bin)
18
19 set(OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/${BIN_DIRECTORY})
20
21 #set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY})
22 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY})
23 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY})
24
25 set(GOST_89_SOURCE_FILES
26         gost89.c
27         gost89.h
28         )
29
30 set(GOST_HASH_SOURCE_FILES
31         gosthash.c
32         gosthash.h
33         )
34
35 set(GOST_HASH_2012_SOURCE_FILES
36         gosthash2012.c
37         gosthash2012.h
38         gosthash2012_const.h
39         gosthash2012_precalc.h
40         gosthash2012_ref.h
41         gosthash2012_sse2.h
42         )
43
44 set(GOST_GRASSHOPPER_SOURCE_FILES
45         gost_grasshopper.h
46         gost_grasshopper_core.h
47         gost_grasshopper_core.c
48         gost_grasshopper_defines.h
49         gost_grasshopper_defines.c
50         gost_grasshopper_math.h
51         gost_grasshopper_galois_precompiled.c
52         gost_grasshopper_precompiled.c
53         gost_grasshopper_cipher.h
54         gost_grasshopper_cipher.c
55         gost_grasshopper_mac.h
56         gost_grasshopper_mac.c
57         )
58
59 set(GOST_CORE_SOURCE_FILES
60         e_gost_err.c
61         e_gost_err.h
62         gost_asn1.c
63         gost_crypt.c
64         gost_ctl.c
65         gost_eng.c
66         gost_keywrap.c
67         gost_keywrap.h
68         gost_lcl.h
69         gost_params.c
70         )
71
72 set(GOST_EC_SOURCE_FILES
73         gost_ec_keyx.c
74         gost_ec_sign.c
75         )
76
77 set(GOST_LIB_SOURCE_FILES
78         ${GOST_EC_SOURCE_FILES}
79         ${GOST_89_SOURCE_FILES}
80         ${GOST_HASH_SOURCE_FILES}
81         ${GOST_GRASSHOPPER_SOURCE_FILES}
82         ${GOST_HASH_2012_SOURCE_FILES})
83
84 set(GOST_ENGINE_SOURCE_FILES
85         ${GOST_CORE_SOURCE_FILES}
86         gost_ameth.c
87         gost_md.c
88         gost_md2012.c
89         gost_pmeth.c)
90
91 add_library(gost STATIC ${GOST_LIB_SOURCE_FILES})
92 set_target_properties(gost PROPERTIES POSITION_INDEPENDENT_CODE ON)
93
94 add_library(gost_engine MODULE ${GOST_ENGINE_SOURCE_FILES})
95 set_target_properties(gost_engine PROPERTIES PREFIX "" OUTPUT_NAME "gost")
96
97 target_link_libraries(gost_engine crypto gost)
98
99 set(GOST_12_SUM_SOURCE_FILES
100         gost12sum.c
101         )
102
103 add_executable(gost12sum ${GOST_12_SUM_SOURCE_FILES})
104
105 target_link_libraries(gost12sum gost)
106
107 set(GOST_SUM_SOURCE_FILES
108         gostsum.c
109         )
110
111 add_executable(gostsum ${GOST_SUM_SOURCE_FILES})
112
113 target_link_libraries(gostsum gost)
114
115 set(GOST_SUM_12_SOURCE_FILES
116         gostsum12.c
117         )
118
119 add_executable(gostsum12 ${GOST_SUM_12_SOURCE_FILES})
120
121 target_link_libraries(gostsum12 gost)