]> www.wagner.pp.ru Git - openssl-gost/engine.git/blob - CMakeLists.txt
Fixed sudden inability to find OpenSSL libraries by restoring manual specification of
[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 -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 # include and lib directories for OpenSSL
18 set(GOST_INCLUDE_DIRECTORIES "${OPENSSL_PATH}/include")
19 set(GOST_LINK_DIRECTORIES "${OPENSSL_PATH}/lib")
20
21 # module linker flags
22 SET (CMAKE_MODULE_LINKER_FLAGS "-L${OPENSSL_PATH}/lib" $ENV{LDFLAGS}
23      CACHE STRING "Flags used by the linker during the creation of modules.")
24 # exe linker flags
25 SET (CMAKE_EXE_LINKER_FLAGS "-L${OPENSSL_PATH}/lib" $ENV{LDFLAGS}
26      CACHE STRING "Flags used by the linker during the creation of executables.")
27 # shared lib linker flags
28 SET (CMAKE_SHARED_LINKER_FLAGS "-L${OPENSSL_PATH}/lib" $ENV{LDFLAGS}
29      CACHE STRING "Flags used by the linker during the creation of shared libraries.")
30
31
32 include_directories("${GOST_INCLUDE_DIRECTORIES}")
33 link_directories("${GOST_LINK_DIRECTORIES}")
34
35 set(BIN_DIRECTORY bin)
36
37 set(OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/${BIN_DIRECTORY})
38
39 #set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY})
40 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY})
41 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_DIRECTORY})
42
43 set(GOST_89_SOURCE_FILES
44         gost89.c
45         gost89.h
46         )
47
48 set(GOST_HASH_SOURCE_FILES
49         gosthash.c
50         gosthash.h
51         )
52
53 set(GOST_HASH_2012_SOURCE_FILES
54         gosthash2012.c
55         gosthash2012.h
56         gosthash2012_const.h
57         gosthash2012_precalc.h
58         gosthash2012_ref.h
59         gosthash2012_sse2.h
60         )
61
62 set(GOST_GRASSHOPPER_SOURCE_FILES
63         gost_grasshopper.h
64         gost_grasshopper_core.h
65         gost_grasshopper_core.c
66         gost_grasshopper_defines.h
67         gost_grasshopper_defines.c
68         gost_grasshopper_math.h
69         gost_grasshopper_galois_precompiled.c
70         gost_grasshopper_precompiled.c
71         gost_grasshopper_cipher.h
72         gost_grasshopper_cipher.c
73         gost_grasshopper_mac.h
74         gost_grasshopper_mac.c
75         )
76
77 set(GOST_CORE_SOURCE_FILES
78         e_gost_err.c
79         e_gost_err.h
80         gost_asn1.c
81         gost_crypt.c
82         gost_ctl.c
83         gost_eng.c
84         gost_keywrap.c
85         gost_keywrap.h
86         gost_lcl.h
87         gost_params.c
88         )
89
90 set(GOST_EC_SOURCE_FILES
91         gost_ec_keyx.c
92         gost_ec_sign.c
93         )
94
95 set(GOST_LIB_SOURCE_FILES
96         ${GOST_EC_SOURCE_FILES}
97         ${GOST_89_SOURCE_FILES}
98         ${GOST_HASH_SOURCE_FILES}
99         ${GOST_GRASSHOPPER_SOURCE_FILES}
100         ${GOST_HASH_2012_SOURCE_FILES})
101
102 set(GOST_ENGINE_SOURCE_FILES
103         ${GOST_CORE_SOURCE_FILES}
104         gost_ameth.c
105         gost_md.c
106         gost_md2012.c
107         gost_pmeth.c)
108
109 add_library(gost STATIC ${GOST_LIB_SOURCE_FILES})
110 set_target_properties(gost PROPERTIES POSITION_INDEPENDENT_CODE ON)
111
112 add_library(gost_engine MODULE ${GOST_ENGINE_SOURCE_FILES})
113 set_target_properties(gost_engine PROPERTIES PREFIX "" OUTPUT_NAME "gost")
114
115 target_link_libraries(gost_engine crypto gost)
116
117 set(GOST_12_SUM_SOURCE_FILES
118         gost12sum.c
119         )
120
121 add_executable(gost12sum ${GOST_12_SUM_SOURCE_FILES})
122
123 target_link_libraries(gost12sum gost)
124
125 set(GOST_SUM_SOURCE_FILES
126         gostsum.c
127         )
128
129 add_executable(gostsum ${GOST_SUM_SOURCE_FILES})
130
131 target_link_libraries(gostsum gost)
132
133 set(GOST_SUM_12_SOURCE_FILES
134         gostsum12.c
135         )
136
137 add_executable(gostsum12 ${GOST_SUM_12_SOURCE_FILES})
138
139 target_link_libraries(gostsum12 gost)