blob: ad6d42200f87c4952ce42c5be2c540131b6562c8 [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)
57 set(CMAKE_C_FLAGS_CHECK "${CMAKE_C_FLAGS_CHECK} -Wmissing-declarations -Wmissing-prototypes")
58 set(CMAKE_C_FLAGS_CHECKFULL "${CMAKE_C_FLAGS_CHECK} -Wcast-qual")
59endif(CMAKE_COMPILER_IS_GNUCC)
Paul Bakker9d3a7e42011-01-05 15:24:43 +000060
hasufell97a11c12014-03-06 15:49:08 +010061if (NOT USE_STATIC_POLARSSL_LIBRARY AND NOT USE_SHARED_POLARSSL_LIBRARY)
62 message(FATAL_ERROR "Need to choose static or shared polarssl build!")
63endif(NOT USE_STATIC_POLARSSL_LIBRARY AND NOT USE_SHARED_POLARSSL_LIBRARY)
Paul Bakker9d3a7e42011-01-05 15:24:43 +000064
hasufell97a11c12014-03-06 15:49:08 +010065if(USE_STATIC_POLARSSL_LIBRARY AND USE_SHARED_POLARSSL_LIBRARY)
66 # if we build both static an shared, then let
67 # tests and programs link to the shared lib target
68 set(polarssl_static_target "polarssl_static")
69elseif(USE_STATIC_POLARSSL_LIBRARY)
70 set(polarssl_static_target "polarssl")
71endif()
Paul Bakker9d3a7e42011-01-05 15:24:43 +000072
hasufell97a11c12014-03-06 15:49:08 +010073if(USE_STATIC_POLARSSL_LIBRARY)
74 add_library(${polarssl_static_target} STATIC ${src})
75 set_target_properties(${polarssl_static_target} PROPERTIES OUTPUT_NAME polarssl)
Paul Bakker8cb73202014-03-17 15:11:13 +010076 target_link_libraries(${polarssl_static_target} ${libs})
77
78 if(ZLIB_FOUND)
79 target_link_libraries(${polarssl_static_target} ${ZLIB_LIBRARIES})
80 endif(ZLIB_FOUND)
81
Paul Bakker9d3a7e42011-01-05 15:24:43 +000082
hasufell97a11c12014-03-06 15:49:08 +010083 install(TARGETS ${polarssl_static_target}
84 DESTINATION ${LIB_INSTALL_DIR}
85 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
86endif()
Paul Bakker9d3a7e42011-01-05 15:24:43 +000087
hasufell97a11c12014-03-06 15:49:08 +010088if(USE_SHARED_POLARSSL_LIBRARY)
89 add_library(polarssl SHARED ${src})
90 set_target_properties(polarssl PROPERTIES VERSION 1.2.10 SOVERSION 3)
Paul Bakker2a5c7a82012-05-10 21:54:28 +000091
hasufell97a11c12014-03-06 15:49:08 +010092 target_link_libraries(polarssl ${libs})
93
94 if(ZLIB_FOUND)
95 target_link_libraries(polarssl ${ZLIB_LIBRARIES})
96 endif(ZLIB_FOUND)
97
98 install(TARGETS polarssl
99 DESTINATION ${LIB_INSTALL_DIR}
100 PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
101endif(USE_SHARED_POLARSSL_LIBRARY)