From 5461dea7f141d78d1d0bb4c4f17be9b15680fa96 Mon Sep 17 00:00:00 2001 From: Jeff Davey Date: Tue, 18 Aug 2015 13:20:19 -0600 Subject: Add install targets and shared libraries to CMake --- CMakeLists.txt | 17 +++++++++++++++++ apps/CMakeLists.txt | 2 ++ crypto/CMakeLists.txt | 10 +++++++++- include/CMakeLists.txt | 5 +++++ man/CMakeLists.txt | 9 +++++++++ ssl/CMakeLists.txt | 14 +++++++++++--- tls/CMakeLists.txt | 9 ++++++++- 7 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 include/CMakeLists.txt create mode 100644 man/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 2734bad..5560f21 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,21 @@ project (LibreSSL) enable_testing() +set(SSL_MAJOR_VERSION "35") +set(SSL_MINOR_VERSION "0") +set(SSL_REVISION "0") +set(SSL_VERSION "${SSL_MAJOR_VERSION}.${SSL_MINOR_VERSION}.${SSL_REVISION}") + +set(CRYPTO_MAJOR_VERSION "35") +set(CRYPTO_MINOR_VERSION "0") +set(CRYPTO_REVISION "0") +set(CRYPTO_VERSION "${CRYPTO_MAJOR_VERSION}.${CRYPTO_MINOR_VERSION}.${CRYPTO_REVISION}") + +set(TLS_MAJOR_VERSION "6") +set(TLS_MINOR_VERSION "0") +set(TLS_REVISION "0") +set(TLS_VERSION "${TLS_MAJOR_VERSION}.${TLS_MINOR_VERSION}.${TLS_REVISION}") + if(CMAKE_SYSTEM_NAME MATCHES "OpenBSD") add_definitions(-DHAVE_ATTRIBUTE__BOUNDED__) endif() @@ -147,6 +162,8 @@ add_subdirectory(crypto) add_subdirectory(ssl) add_subdirectory(apps) add_subdirectory(tls) +add_subdirectory(include) if(NOT MSVC) + add_subdirectory(man) add_subdirectory(tests) endif() diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt index 370cd9c..452aabd 100644 --- a/apps/CMakeLists.txt +++ b/apps/CMakeLists.txt @@ -77,3 +77,5 @@ endif() add_executable(openssl ${OPENSSL_SRC}) target_link_libraries(openssl ${OPENSSL_LIBS}) + +install(TARGETS openssl DESTINATION bin) diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index feeeb84..fabf479 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -638,4 +638,12 @@ if(NOT HAVE_TIMINGSAFE_MEMCMP) set(CRYPTO_SRC ${CRYPTO_SRC} compat/timingsafe_memcmp.c) endif() -add_library(crypto ${CRYPTO_SRC}) +add_library(crypto-objects OBJECT ${CRYPTO_SRC}) +set_property(TARGET crypto-objects PROPERTY POSITION_INDEPENDENT_CODE 1) +add_library(crypto STATIC $) +add_library(crypto-shared SHARED $) +set_target_properties(crypto-shared PROPERTIES OUTPUT_NAME crypto) +set_target_properties(crypto-shared PROPERTIES VERSION ${CRYPTO_VERSION} SOVERSION ${CRYPTO_MAJOR_VERSION}) +install(TARGETS crypto crypto-shared DESTINATION lib) + + diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt new file mode 100644 index 0000000..be442a0 --- /dev/null +++ b/include/CMakeLists.txt @@ -0,0 +1,5 @@ +install(DIRECTORY . + DESTINATION include + PATTERN "CMakeLists.txt" EXCLUDE + PATTERN "compat" EXCLUDE + PATTERN "Makefile.*" EXCLUDE) diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt new file mode 100644 index 0000000..5923f58 --- /dev/null +++ b/man/CMakeLists.txt @@ -0,0 +1,9 @@ +install(DIRECTORY . + DESTINATION share/man/man3 + FILES_MATCHING PATTERN "*.3" + ) + +install(DIRECTORY . + DESTINATION share/man/man1 + FILES_MATCHING PATTERN "*.1" + ) diff --git a/ssl/CMakeLists.txt b/ssl/CMakeLists.txt index c26f2b4..9aef592 100644 --- a/ssl/CMakeLists.txt +++ b/ssl/CMakeLists.txt @@ -4,9 +4,8 @@ include_directories( ../include/compat ) -add_library( - ssl - +set( + SSL_SRC bio_ssl.c bs_ber.c bs_cbb.c @@ -51,3 +50,12 @@ add_library( t1_reneg.c t1_srvr.c ) + +add_library(ssl-objects OBJECT ${SSL_SRC}) +set_property(TARGET ssl-objects PROPERTY POSITION_INDEPENDENT_CODE 1) +add_library(ssl STATIC $) +add_library(ssl-shared SHARED $) +set_target_properties(ssl-shared PROPERTIES OUTPUT_NAME ssl) +set_target_properties(ssl-shared PROPERTIES VERSION ${SSL_VERSION} SOVERSION ${SSL_MAJOR_VERSION}) + +install(TARGETS ssl ssl-shared DESTINATION lib) diff --git a/tls/CMakeLists.txt b/tls/CMakeLists.txt index 3e61844..7c8cf21 100644 --- a/tls/CMakeLists.txt +++ b/tls/CMakeLists.txt @@ -19,4 +19,11 @@ if(NOT HAVE_STRCASECMP) set(TLS_SRC ${TLS_SRC} strsep.c) endif() -add_library(tls ${TLS_SRC}) +add_library(tls-objects OBJECT ${TLS_SRC}) +set_property(TARGET tls-objects PROPERTY POSITION_INDEPENDENT_CODE 1) +add_library(tls STATIC $) +add_library(tls-shared SHARED $) +set_target_properties(tls-shared PROPERTIES OUTPUT_NAME tls) +set_target_properties(tls-shared PROPERTIES VERSION ${TLS_VERSION} SOVERSION ${TLS_MAJOR_VERSION}) + +install(TARGETS tls tls-shared DESTINATION lib) -- cgit v1.2.3-55-g6feb