blob: 7ac2c3d16c7029037a3ab8d8cd20d3a98cc580b8 [file] [log] [blame]
hasufell97a11c12014-03-06 15:49:08 +01001option(USE_STATIC_POLARSSL_LIBRARY "Build PolarSSL static library." ON)
2option(USE_SHARED_POLARSSL_LIBRARY "Build PolarSSL shared library." OFF)
Paul Bakker9d3a7e42011-01-05 15:24:43 +00003
4set(src
Paul Bakker396c52f2009-07-11 19:54:40 +00005 aes.c
Paul Bakker367dae42009-06-28 21:50:27 +00006 arc4.c
Paul Bakkerefc30292011-11-10 14:43:23 +00007 asn1parse.c
Paul Bakkerbdb912d2012-02-13 23:11:30 +00008 asn1write.c
Paul Bakker396c52f2009-07-11 19:54:40 +00009 base64.c
10 bignum.c
Paul Bakkera9379c02012-07-04 11:02:11 +000011 blowfish.c
Paul Bakker396c52f2009-07-11 19:54:40 +000012 camellia.c
Paul Bakker367dae42009-06-28 21:50:27 +000013 certs.c
Paul Bakker8123e9d2011-01-06 15:37:30 +000014 cipher.c
15 cipher_wrap.c
Paul Bakker0e04d0e2011-11-27 14:46:59 +000016 ctr_drbg.c
Paul Bakker396c52f2009-07-11 19:54:40 +000017 debug.c
18 des.c
Paul Bakker367dae42009-06-28 21:50:27 +000019 dhm.c
Paul Bakker6083fd22011-12-03 21:45:14 +000020 entropy.c
21 entropy_poll.c
Paul Bakker9d781402011-05-09 16:17:09 +000022 error.c
Paul Bakker89e80c92012-03-20 13:50:09 +000023 gcm.c
Paul Bakker396c52f2009-07-11 19:54:40 +000024 havege.c
Paul Bakker17373852011-01-06 14:20:01 +000025 md.c
26 md_wrap.c
Paul Bakker396c52f2009-07-11 19:54:40 +000027 md2.c
Paul Bakker367dae42009-06-28 21:50:27 +000028 md4.c
Paul Bakker396c52f2009-07-11 19:54:40 +000029 md5.c
30 net.c
31 padlock.c
Paul Bakkerf518b162012-08-23 13:03:18 +000032 pbkdf2.c
Paul Bakker5a1494f2011-02-25 09:48:49 +000033 pem.c
Paul Bakker19bd2972013-06-14 12:06:45 +020034 pkcs5.c
Paul Bakkerb06819b2011-01-18 16:18:38 +000035 pkcs11.c
Paul Bakkercf6e95d2013-06-12 13:18:15 +020036 pkcs12.c
Paul Bakker396c52f2009-07-11 19:54:40 +000037 rsa.c
38 sha1.c
39 sha2.c
Paul Bakker367dae42009-06-28 21:50:27 +000040 sha4.c
Paul Bakker0a597072012-09-25 21:55:46 +000041 ssl_cache.c
Paul Bakker396c52f2009-07-11 19:54:40 +000042 ssl_cli.c
43 ssl_srv.c
44 ssl_tls.c
45 timing.c
Paul Bakker3ac1b2d2010-06-18 22:47:29 +000046 version.c
Paul Bakker396c52f2009-07-11 19:54:40 +000047 x509parse.c
Paul Bakkerb6ad62d2012-03-20 13:41:33 +000048 x509write.c
Paul Bakker396c52f2009-07-11 19:54:40 +000049 xtea.c
Paul Bakker367dae42009-06-28 21:50:27 +000050)
Paul Bakker547f73d2011-01-05 15:07:54 +000051
Paul Bakker2a5c7a82012-05-10 21:54:28 +000052if(WIN32)
53set(libs ws2_32)
54endif(WIN32)
55
hasufell97a11c12014-03-06 15:49:08 +010056if(CMAKE_COMPILER_IS_GNUCC)
Manuel Pégourié-Gonnard6c284912014-11-17 11:15:13 +010057 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations -Wmissing-prototypes")
hasufell97a11c12014-03-06 15:49:08 +010058endif(CMAKE_COMPILER_IS_GNUCC)
Paul Bakker9d3a7e42011-01-05 15:24:43 +000059
Manuel Pégourié-Gonnard6c284912014-11-17 11:15:13 +010060if(CMAKE_COMPILER_IS_CLANG)
61 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations -Wmissing-prototypes -Wdocumentation -Wunreachable-code")
62endif(CMAKE_COMPILER_IS_CLANG)
63
hasufell97a11c12014-03-06 15:49:08 +010064if (NOT USE_STATIC_POLARSSL_LIBRARY AND NOT USE_SHARED_POLARSSL_LIBRARY)
65 message(FATAL_ERROR "Need to choose static or shared polarssl build!")
66endif(NOT USE_STATIC_POLARSSL_LIBRARY AND NOT USE_SHARED_POLARSSL_LIBRARY)
Paul Bakker9d3a7e42011-01-05 15:24:43 +000067
hasufell97a11c12014-03-06 15:49:08 +010068if(USE_STATIC_POLARSSL_LIBRARY AND USE_SHARED_POLARSSL_LIBRARY)
69 # if we build both static an shared, then let
70 # tests and programs link to the shared lib target
71 set(polarssl_static_target "polarssl_static")
72elseif(USE_STATIC_POLARSSL_LIBRARY)
73 set(polarssl_static_target "polarssl")
74endif()
Paul Bakker9d3a7e42011-01-05 15:24:43 +000075
hasufell97a11c12014-03-06 15:49:08 +010076if(USE_STATIC_POLARSSL_LIBRARY)
77 add_library(${polarssl_static_target} STATIC ${src})
78 set_target_properties(${polarssl_static_target} PROPERTIES OUTPUT_NAME polarssl)
Paul Bakker8cb73202014-03-17 15:11:13 +010079 target_link_libraries(${polarssl_static_target} ${libs})
80
81 if(ZLIB_FOUND)
82 target_link_libraries(${polarssl_static_target} ${ZLIB_LIBRARIES})
83 endif(ZLIB_FOUND)
84
Paul Bakker9d3a7e42011-01-05 15:24:43 +000085
hasufell97a11c12014-03-06 15:49:08 +010086 install(TARGETS ${polarssl_static_target}
87 DESTINATION ${LIB_INSTALL_DIR}
88 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
89endif()
Paul Bakker9d3a7e42011-01-05 15:24:43 +000090
hasufell97a11c12014-03-06 15:49:08 +010091if(USE_SHARED_POLARSSL_LIBRARY)
92 add_library(polarssl SHARED ${src})
Simon Butchera36ae082016-01-04 23:15:43 +000093 set_target_properties(polarssl PROPERTIES VERSION 1.2.19 SOVERSION 3)
Paul Bakker2a5c7a82012-05-10 21:54:28 +000094
hasufell97a11c12014-03-06 15:49:08 +010095 target_link_libraries(polarssl ${libs})
96
97 if(ZLIB_FOUND)
98 target_link_libraries(polarssl ${ZLIB_LIBRARIES})
99 endif(ZLIB_FOUND)
100
101 install(TARGETS polarssl
102 DESTINATION ${LIB_INSTALL_DIR}
103 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
104endif(USE_SHARED_POLARSSL_LIBRARY)