Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 1 | option(USE_STATIC_MBEDTLS_LIBRARY "Build mbed TLS static library." ON) |
| 2 | option(USE_SHARED_MBEDTLS_LIBRARY "Build mbed TLS shared library." OFF) |
Manuel Pégourié-Gonnard | cfa9a45 | 2015-01-23 13:33:31 +0000 | [diff] [blame] | 3 | option(LINK_WITH_PTHREAD "Explicitly link mbed TLS library to pthread." OFF) |
Paul Bakker | 9d3a7e4 | 2011-01-05 15:24:43 +0000 | [diff] [blame] | 4 | |
| 5 | set(src |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 6 | aes.c |
Manuel Pégourié-Gonnard | 92ac76f | 2013-12-16 17:12:53 +0100 | [diff] [blame] | 7 | aesni.c |
Paul Bakker | 367dae4 | 2009-06-28 21:50:27 +0000 | [diff] [blame] | 8 | arc4.c |
Paul Bakker | efc3029 | 2011-11-10 14:43:23 +0000 | [diff] [blame] | 9 | asn1parse.c |
Paul Bakker | bdb912d | 2012-02-13 23:11:30 +0000 | [diff] [blame] | 10 | asn1write.c |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 11 | base64.c |
| 12 | bignum.c |
Paul Bakker | a9379c0 | 2012-07-04 11:02:11 +0000 | [diff] [blame] | 13 | blowfish.c |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 14 | camellia.c |
Manuel Pégourié-Gonnard | a6916fa | 2014-05-02 15:17:29 +0200 | [diff] [blame] | 15 | ccm.c |
Paul Bakker | 367dae4 | 2009-06-28 21:50:27 +0000 | [diff] [blame] | 16 | certs.c |
Paul Bakker | 8123e9d | 2011-01-06 15:37:30 +0000 | [diff] [blame] | 17 | cipher.c |
| 18 | cipher_wrap.c |
Paul Bakker | 0e04d0e | 2011-11-27 14:46:59 +0000 | [diff] [blame] | 19 | ctr_drbg.c |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 20 | debug.c |
| 21 | des.c |
Paul Bakker | 367dae4 | 2009-06-28 21:50:27 +0000 | [diff] [blame] | 22 | dhm.c |
Manuel Pégourié-Gonnard | 39d2adb | 2012-10-31 09:26:55 +0100 | [diff] [blame] | 23 | ecp.c |
Manuel Pégourié-Gonnard | 32b04c1 | 2013-12-02 15:49:09 +0100 | [diff] [blame] | 24 | ecp_curves.c |
Manuel Pégourié-Gonnard | 0bad5c2 | 2013-01-26 15:30:46 +0100 | [diff] [blame] | 25 | ecdh.c |
Manuel Pégourié-Gonnard | 2aea141 | 2013-01-26 16:33:44 +0100 | [diff] [blame] | 26 | ecdsa.c |
Paul Bakker | 6083fd2 | 2011-12-03 21:45:14 +0000 | [diff] [blame] | 27 | entropy.c |
| 28 | entropy_poll.c |
Paul Bakker | 9d78140 | 2011-05-09 16:17:09 +0000 | [diff] [blame] | 29 | error.c |
Paul Bakker | 89e80c9 | 2012-03-20 13:50:09 +0000 | [diff] [blame] | 30 | gcm.c |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 31 | havege.c |
Manuel Pégourié-Gonnard | 490bdf3 | 2014-01-27 14:03:10 +0100 | [diff] [blame] | 32 | hmac_drbg.c |
Paul Bakker | 1737385 | 2011-01-06 14:20:01 +0000 | [diff] [blame] | 33 | md.c |
| 34 | md_wrap.c |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 35 | md2.c |
Paul Bakker | 367dae4 | 2009-06-28 21:50:27 +0000 | [diff] [blame] | 36 | md4.c |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 37 | md5.c |
Paul Bakker | 6e339b5 | 2013-07-03 13:37:05 +0200 | [diff] [blame] | 38 | memory_buffer_alloc.c |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 39 | net.c |
Paul Bakker | c70b982 | 2013-04-07 22:00:46 +0200 | [diff] [blame] | 40 | oid.c |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 41 | padlock.c |
Paul Bakker | f518b16 | 2012-08-23 13:03:18 +0000 | [diff] [blame] | 42 | pbkdf2.c |
Paul Bakker | 5a1494f | 2011-02-25 09:48:49 +0000 | [diff] [blame] | 43 | pem.c |
Paul Bakker | b0c19a4 | 2013-06-24 19:26:38 +0200 | [diff] [blame] | 44 | pkcs5.c |
Paul Bakker | b06819b | 2011-01-18 16:18:38 +0000 | [diff] [blame] | 45 | pkcs11.c |
Paul Bakker | f1f21fe | 2013-06-24 19:17:19 +0200 | [diff] [blame] | 46 | pkcs12.c |
Manuel Pégourié-Gonnard | 12e0ed9 | 2013-07-04 13:31:32 +0200 | [diff] [blame] | 47 | pk.c |
Manuel Pégourié-Gonnard | d73b3c1 | 2013-08-12 17:06:05 +0200 | [diff] [blame] | 48 | pk_wrap.c |
Paul Bakker | 1a7550a | 2013-09-15 13:01:22 +0200 | [diff] [blame] | 49 | pkparse.c |
Paul Bakker | c7bb02b | 2013-09-15 14:54:56 +0200 | [diff] [blame] | 50 | pkwrite.c |
Paul Bakker | 747a83a | 2014-02-01 22:50:07 +0100 | [diff] [blame] | 51 | platform.c |
Paul Bakker | 61b699e | 2014-01-22 13:35:29 +0100 | [diff] [blame] | 52 | ripemd160.c |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 53 | rsa.c |
| 54 | sha1.c |
Paul Bakker | d2681d8 | 2013-06-30 14:49:12 +0200 | [diff] [blame] | 55 | sha256.c |
| 56 | sha512.c |
Paul Bakker | 0a59707 | 2012-09-25 21:55:46 +0000 | [diff] [blame] | 57 | ssl_cache.c |
Manuel Pégourié-Gonnard | 232edd4 | 2014-07-23 16:56:27 +0200 | [diff] [blame] | 58 | ssl_cookie.c |
Paul Bakker | 68884e3 | 2013-01-07 18:20:04 +0100 | [diff] [blame] | 59 | ssl_ciphersuites.c |
Paul Bakker | 7c6b2c3 | 2013-09-16 13:49:26 +0200 | [diff] [blame] | 60 | ssl_cli.c |
| 61 | ssl_srv.c |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 62 | ssl_tls.c |
Paul Bakker | 2466d93 | 2013-09-28 14:40:38 +0200 | [diff] [blame] | 63 | threading.c |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 64 | timing.c |
Paul Bakker | 3ac1b2d | 2010-06-18 22:47:29 +0000 | [diff] [blame] | 65 | version.c |
Paul Bakker | 0f90d7d | 2014-04-30 11:49:44 +0200 | [diff] [blame] | 66 | version_features.c |
Paul Bakker | 7c6b2c3 | 2013-09-16 13:49:26 +0200 | [diff] [blame] | 67 | x509.c |
| 68 | x509_crt.c |
| 69 | x509_crl.c |
| 70 | x509_csr.c |
| 71 | x509_create.c |
Paul Bakker | 9556d3d | 2013-09-18 13:50:13 +0200 | [diff] [blame] | 72 | x509write_crt.c |
| 73 | x509write_csr.c |
Paul Bakker | 396c52f | 2009-07-11 19:54:40 +0000 | [diff] [blame] | 74 | xtea.c |
Paul Bakker | 367dae4 | 2009-06-28 21:50:27 +0000 | [diff] [blame] | 75 | ) |
Paul Bakker | 547f73d | 2011-01-05 15:07:54 +0000 | [diff] [blame] | 76 | |
Paul Bakker | 2a5c7a8 | 2012-05-10 21:54:28 +0000 | [diff] [blame] | 77 | if(WIN32) |
| 78 | set(libs ws2_32) |
| 79 | endif(WIN32) |
| 80 | |
Paul Bakker | 76f0311 | 2013-11-28 17:20:04 +0100 | [diff] [blame] | 81 | if(CMAKE_COMPILER_IS_GNUCC) |
Manuel Pégourié-Gonnard | 98aa191 | 2014-11-14 16:34:36 +0100 | [diff] [blame] | 82 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations -Wmissing-prototypes") |
Paul Bakker | 76f0311 | 2013-11-28 17:20:04 +0100 | [diff] [blame] | 83 | endif(CMAKE_COMPILER_IS_GNUCC) |
| 84 | |
Manuel Pégourié-Gonnard | 3185545 | 2014-06-25 15:59:50 +0200 | [diff] [blame] | 85 | if(CMAKE_COMPILER_IS_CLANG) |
Manuel Pégourié-Gonnard | edb7ed3 | 2015-01-20 16:45:20 +0000 | [diff] [blame] | 86 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations -Wmissing-prototypes -Wdocumentation -Wno-documentation-deprecated-sync -Wunreachable-code") |
Manuel Pégourié-Gonnard | 3185545 | 2014-06-25 15:59:50 +0200 | [diff] [blame] | 87 | endif(CMAKE_COMPILER_IS_CLANG) |
| 88 | |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 89 | if (NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY) |
| 90 | message(FATAL_ERROR "Need to choose static or shared mbedtls build!") |
| 91 | endif(NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY) |
Paul Bakker | 9d3a7e4 | 2011-01-05 15:24:43 +0000 | [diff] [blame] | 92 | |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 93 | if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY) |
hasufell | 3c6409b | 2014-03-06 15:49:08 +0100 | [diff] [blame] | 94 | # if we build both static an shared, then let |
| 95 | # tests and programs link to the shared lib target |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 96 | set(mbedtls_static_target "mbedtls_static") |
| 97 | elseif(USE_STATIC_MBEDTLS_LIBRARY) |
| 98 | set(mbedtls_static_target "mbedtls") |
hasufell | 3c6409b | 2014-03-06 15:49:08 +0100 | [diff] [blame] | 99 | endif() |
Paul Bakker | 9d3a7e4 | 2011-01-05 15:24:43 +0000 | [diff] [blame] | 100 | |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 101 | if(USE_STATIC_MBEDTLS_LIBRARY) |
| 102 | add_library(${mbedtls_static_target} STATIC ${src}) |
| 103 | set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls) |
| 104 | target_link_libraries(${mbedtls_static_target} ${libs}) |
Paul Bakker | 6c1f69b | 2014-03-17 15:11:13 +0100 | [diff] [blame] | 105 | |
| 106 | if(ZLIB_FOUND) |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 107 | target_link_libraries(${mbedtls_static_target} ${ZLIB_LIBRARIES}) |
Paul Bakker | 6c1f69b | 2014-03-17 15:11:13 +0100 | [diff] [blame] | 108 | endif(ZLIB_FOUND) |
| 109 | |
Paul Bakker | d6917f0 | 2014-06-09 23:46:41 +0200 | [diff] [blame] | 110 | if(LINK_WITH_PTHREAD) |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 111 | target_link_libraries(${mbedtls_static_target} pthread) |
Paul Bakker | d6917f0 | 2014-06-09 23:46:41 +0200 | [diff] [blame] | 112 | endif() |
Paul Bakker | 9d3a7e4 | 2011-01-05 15:24:43 +0000 | [diff] [blame] | 113 | |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 114 | install(TARGETS ${mbedtls_static_target} |
hasufell | 3c6409b | 2014-03-06 15:49:08 +0100 | [diff] [blame] | 115 | DESTINATION ${LIB_INSTALL_DIR} |
| 116 | PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) |
| 117 | endif() |
Paul Bakker | 9d3a7e4 | 2011-01-05 15:24:43 +0000 | [diff] [blame] | 118 | |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 119 | if(USE_SHARED_MBEDTLS_LIBRARY) |
| 120 | add_library(mbedtls SHARED ${src}) |
Manuel Pégourié-Gonnard | 2a0718d | 2015-01-29 11:29:12 +0000 | [diff] [blame] | 121 | set_target_properties(mbedtls PROPERTIES VERSION 1.4.0 SOVERSION 8) |
Paul Bakker | 9d3a7e4 | 2011-01-05 15:24:43 +0000 | [diff] [blame] | 122 | |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 123 | target_link_libraries(mbedtls ${libs}) |
Paul Bakker | 2a5c7a8 | 2012-05-10 21:54:28 +0000 | [diff] [blame] | 124 | |
hasufell | 3c6409b | 2014-03-06 15:49:08 +0100 | [diff] [blame] | 125 | if(ZLIB_FOUND) |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 126 | target_link_libraries(mbedtls ${ZLIB_LIBRARIES}) |
hasufell | 3c6409b | 2014-03-06 15:49:08 +0100 | [diff] [blame] | 127 | endif(ZLIB_FOUND) |
Steffan Karger | c245834 | 2013-11-14 10:34:46 +0100 | [diff] [blame] | 128 | |
Paul Bakker | d6917f0 | 2014-06-09 23:46:41 +0200 | [diff] [blame] | 129 | if(LINK_WITH_PTHREAD) |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 130 | target_link_libraries(mbedtls pthread) |
Paul Bakker | d6917f0 | 2014-06-09 23:46:41 +0200 | [diff] [blame] | 131 | endif() |
| 132 | |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 133 | install(TARGETS mbedtls |
hasufell | 3c6409b | 2014-03-06 15:49:08 +0100 | [diff] [blame] | 134 | DESTINATION ${LIB_INSTALL_DIR} |
| 135 | PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) |
Manuel Pégourié-Gonnard | 9014b6f | 2015-01-27 15:44:46 +0000 | [diff] [blame] | 136 | endif(USE_SHARED_MBEDTLS_LIBRARY) |
Manuel Pégourié-Gonnard | 2a9c8b6 | 2015-01-28 14:42:13 +0100 | [diff] [blame] | 137 | |
| 138 | if(UNIX) |
| 139 | add_custom_target(polarssl |
| 140 | DEPENDS mbedtls # TODO: and mbedtls_static is shared is defined |
| 141 | COMMAND ${CMAKE_SOURCE_DIR}/scripts/polarssl_symlinks.sh ${CMAKE_BINARY_DIR}/library |
| 142 | ) |
| 143 | |
| 144 | if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY) |
| 145 | add_dependencies(polarssl mbedtls_static) |
| 146 | endif() |
| 147 | |
| 148 | add_custom_target(polarssl-clean |
| 149 | COMMAND make clean |
| 150 | COMMAND rm -f ${CMAKE_BINARY_DIR}/library/libpolarssl.* |
| 151 | ) |
| 152 | |
| 153 | add_custom_target(polarssl-install |
| 154 | COMMAND make install |
| 155 | COMMAND ${CMAKE_SOURCE_DIR}/scripts/polarssl_symlinks.sh ${DESTDIR}/${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR} |
| 156 | ) |
| 157 | endif(UNIX) |