Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / boringssl / src / crypto / CMakeLists.txt
1 include_directories(. ../include)
2
3 if(APPLE)
4         set(PERLASM_STYLE macosx)
5         set(ASM_EXT S)
6         enable_language(ASM)
7 elseif(UNIX)
8         set(PERLASM_STYLE elf)
9         set(ASM_EXT S)
10         enable_language(ASM)
11 else()
12         if (CMAKE_CL_64)
13                 message("Using nasm")
14                 set(PERLASM_STYLE nasm)
15         else()
16                 message("Using win32n")
17                 set(PERLASM_STYLE win32n)
18         endif()
19
20         # On Windows, we use the NASM output, specifically built with Yasm.
21         set(ASM_EXT asm)
22         enable_language(ASM_NASM)
23 endif()
24
25 function(perlasm dest src)
26         add_custom_command(
27                 OUTPUT ${dest}
28                 COMMAND perl ${CMAKE_CURRENT_SOURCE_DIR}/${src} ${PERLASM_STYLE} ${ARGN} > ${dest}
29                 DEPENDS
30                 ${src}
31                 ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86_64-xlate.pl
32                 ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86asm.pl
33                 ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86gas.pl
34                 ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86masm.pl
35                 ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86nasm.pl
36                 WORKING_DIRECTORY .
37         )
38 endfunction()
39
40 if (${ARCH} STREQUAL "x86_64")
41         set(
42                 CRYPTO_ARCH_SOURCES
43
44                 cpu-x86_64-asm.${ASM_EXT}
45                 cpu-intel.c
46         )
47 endif()
48
49 if (${ARCH} STREQUAL "x86")
50         set(
51                 CRYPTO_ARCH_SOURCES
52
53                 cpu-x86-asm.${ASM_EXT}
54                 cpu-intel.c
55         )
56 endif()
57
58 if (${ARCH} STREQUAL "arm")
59         set(
60                 CRYPTO_ARCH_SOURCES
61
62                 cpu-x86-asm.${ASM_EXT}
63                 cpu-arm.c
64         )
65 endif()
66
67 # Level 0.1 - depends on nothing outside this set.
68 add_subdirectory(stack)
69 add_subdirectory(lhash)
70 add_subdirectory(err)
71 add_subdirectory(buf)
72 add_subdirectory(base64)
73 add_subdirectory(bytestring)
74
75 # Level 0.2 - depends on nothing but itself
76 add_subdirectory(sha)
77 add_subdirectory(md4)
78 add_subdirectory(md5)
79 add_subdirectory(modes)
80 add_subdirectory(aes)
81 add_subdirectory(des)
82 add_subdirectory(rc4)
83 add_subdirectory(conf)
84 add_subdirectory(chacha)
85 add_subdirectory(poly1305)
86
87 # Level 1, depends only on 0.*
88 add_subdirectory(digest)
89 add_subdirectory(cipher)
90 add_subdirectory(rand)
91 add_subdirectory(bio)
92 add_subdirectory(bn)
93 add_subdirectory(obj)
94 add_subdirectory(asn1)
95
96 # Level 2
97 add_subdirectory(engine)
98 add_subdirectory(dh)
99 add_subdirectory(dsa)
100 add_subdirectory(rsa)
101 add_subdirectory(ec)
102 add_subdirectory(ecdh)
103 add_subdirectory(ecdsa)
104 add_subdirectory(hmac)
105
106 # Level 3
107 add_subdirectory(evp)
108 add_subdirectory(pem)
109 add_subdirectory(x509)
110 add_subdirectory(x509v3)
111
112 # Level 4
113 add_subdirectory(pkcs8)
114
115 add_library(
116         crypto
117         STATIC
118
119         crypto.c
120         crypto_error.c
121         mem.c
122         thread.c
123         ex_data.c
124         ex_data_impl.c
125         time_support.c
126         directory_posix.c
127         directory_win.c
128
129         ${CRYPTO_ARCH_SOURCES}
130
131         $<TARGET_OBJECTS:stack>
132         $<TARGET_OBJECTS:lhash>
133         $<TARGET_OBJECTS:err>
134         $<TARGET_OBJECTS:base64>
135         $<TARGET_OBJECTS:bytestring>
136         $<TARGET_OBJECTS:sha>
137         $<TARGET_OBJECTS:md4>
138         $<TARGET_OBJECTS:md5>
139         $<TARGET_OBJECTS:digest>
140         $<TARGET_OBJECTS:cipher>
141         $<TARGET_OBJECTS:modes>
142         $<TARGET_OBJECTS:aes>
143         $<TARGET_OBJECTS:des>
144         $<TARGET_OBJECTS:rc4>
145         $<TARGET_OBJECTS:conf>
146         $<TARGET_OBJECTS:chacha>
147         $<TARGET_OBJECTS:poly1305>
148         $<TARGET_OBJECTS:buf>
149         $<TARGET_OBJECTS:bn>
150         $<TARGET_OBJECTS:bio>
151         $<TARGET_OBJECTS:rand>
152         $<TARGET_OBJECTS:obj>
153         $<TARGET_OBJECTS:asn1>
154         $<TARGET_OBJECTS:engine>
155         $<TARGET_OBJECTS:dh>
156         $<TARGET_OBJECTS:dsa>
157         $<TARGET_OBJECTS:rsa>
158         $<TARGET_OBJECTS:ec>
159         $<TARGET_OBJECTS:ecdh>
160         $<TARGET_OBJECTS:ecdsa>
161         $<TARGET_OBJECTS:hmac>
162         $<TARGET_OBJECTS:evp>
163         $<TARGET_OBJECTS:pem>
164         $<TARGET_OBJECTS:x509>
165         $<TARGET_OBJECTS:x509v3>
166         $<TARGET_OBJECTS:pkcs8>
167 )
168
169 perlasm(cpu-x86_64-asm.${ASM_EXT} cpu-x86_64-asm.pl)
170 perlasm(cpu-x86-asm.${ASM_EXT} cpu-x86-asm.pl)