diff options
author | Adam Langley <agl@chromium.org> | 2014-06-20 23:00:00 +0400 |
---|---|---|
committer | Adam Langley <agl@chromium.org> | 2014-06-21 00:17:32 +0400 |
commit | 95c29f3cd1f6c08c6c0927868683392eea727ccb (patch) | |
tree | 012767320ced9abca61472a4daa4c4a56b7ebe2b /crypto/CMakeLists.txt |
Inital import.
Initial fork from f2d678e6e89b6508147086610e985d4e8416e867 (1.0.2 beta).
(This change contains substantial changes from the original and
effectively starts a new history.)
Diffstat (limited to 'crypto/CMakeLists.txt')
-rw-r--r-- | crypto/CMakeLists.txt | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt new file mode 100644 index 00000000..8fb78f1a --- /dev/null +++ b/crypto/CMakeLists.txt @@ -0,0 +1,159 @@ +include_directories(. ../include) + +if (UNIX) + set(PERLASM_STYLE elf) + set(ASM_EXT S) + enable_language(ASM) +else() + if (CMAKE_CL_64) + message("Using masm") + set(PERLASM_STYLE masm) + else() + message("Using win32n") + set(PERLASM_STYLE win32n) + endif() + set(ASM_EXT asm) + enable_language(ASM_MASM) +endif() + +function(perlasm dest src) + add_custom_command( + OUTPUT ${dest} + COMMAND perl ${CMAKE_CURRENT_SOURCE_DIR}/${src} ${PERLASM_STYLE} ${ARGN} > ${dest} + DEPENDS + ${src} + ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86_64-xlate.pl + ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86gas.pl + ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86asm.pl + ${PROJECT_SOURCE_DIR}/crypto/perlasm/x86asm.pl + WORKING_DIRECTORY . + ) +endfunction() + +if (${ARCH} STREQUAL "x86_64") + set( + CRYPTO_ARCH_SOURCES + + cpu-x86_64-asm.${ASM_EXT} + cpu-intel.c + ) +endif() + +if (${ARCH} STREQUAL "x86") + set( + CRYPTO_ARCH_SOURCES + + cpu-x86-asm.${ASM_EXT} + cpu-intel.c + ) +endif() + +if (${ARCH} STREQUAL "arm") + set( + CRYPTO_ARCH_SOURCES + + cpu-x86-asm.${ASM_EXT} + cpu-arm.c + ) +endif() + +# Level 0.1 - depends on nothing outside this set. +add_subdirectory(stack) +add_subdirectory(lhash) +add_subdirectory(err) +add_subdirectory(buf) +add_subdirectory(comp) +add_subdirectory(base64) +add_subdirectory(bytestring) + +# Level 0.2 - depends on nothing but itself +add_subdirectory(sha) +add_subdirectory(md5) +add_subdirectory(modes) +add_subdirectory(aes) +add_subdirectory(des) +add_subdirectory(rc4) +add_subdirectory(conf) + +# Level 1, depends only on 0.* +add_subdirectory(digest) +add_subdirectory(cipher) +add_subdirectory(rand) +add_subdirectory(bio) +add_subdirectory(bn) +add_subdirectory(obj) +add_subdirectory(asn1) + +# Level 2 +add_subdirectory(engine) +add_subdirectory(dh) +add_subdirectory(dsa) +add_subdirectory(rsa) +add_subdirectory(ec) +add_subdirectory(ecdh) +add_subdirectory(ecdsa) +add_subdirectory(hmac) + +# Level 3 +add_subdirectory(evp) +add_subdirectory(pem) +add_subdirectory(x509) +add_subdirectory(x509v3) + +# Level 4 +add_subdirectory(pkcs8) + +add_library( + crypto + STATIC + + crypto_error.c + mem.c + mem_clear.c + thread.c + ex_data.c + ex_data_impl.c + time_support.c + directory_posix.c + directory_win.c + + ${CRYPTO_ARCH_SOURCES} + + $<TARGET_OBJECTS:stack> + $<TARGET_OBJECTS:lhash> + $<TARGET_OBJECTS:err> + $<TARGET_OBJECTS:comp> + $<TARGET_OBJECTS:base64> + $<TARGET_OBJECTS:bytestring> + $<TARGET_OBJECTS:sha> + $<TARGET_OBJECTS:md5> + $<TARGET_OBJECTS:digest> + $<TARGET_OBJECTS:cipher> + $<TARGET_OBJECTS:modes> + $<TARGET_OBJECTS:aes> + $<TARGET_OBJECTS:des> + $<TARGET_OBJECTS:rc4> + $<TARGET_OBJECTS:conf> + $<TARGET_OBJECTS:buf> + $<TARGET_OBJECTS:bn> + $<TARGET_OBJECTS:bio> + $<TARGET_OBJECTS:rand> + $<TARGET_OBJECTS:obj> + $<TARGET_OBJECTS:asn1> + $<TARGET_OBJECTS:engine> + $<TARGET_OBJECTS:dh> + $<TARGET_OBJECTS:dsa> + $<TARGET_OBJECTS:rsa> + $<TARGET_OBJECTS:ec> + $<TARGET_OBJECTS:ecdh> + $<TARGET_OBJECTS:ecdsa> + $<TARGET_OBJECTS:hmac> + $<TARGET_OBJECTS:evp> + $<TARGET_OBJECTS:pem> + $<TARGET_OBJECTS:x509> + $<TARGET_OBJECTS:x509v3> + $<TARGET_OBJECTS:pkcs8> +) + +perlasm(cpu-x86_64-asm.${ASM_EXT} cpu-x86_64-asm.pl) +perlasm(cpu-x86-asm.${ASM_EXT} cpu-x86-asm.pl) |