Add a option in CMakeLists.txt for switch build with static libraries or not

This commit is contained in:
zzzdong
2017-04-23 07:16:22 +08:00
committed by Max Lv
parent 7fc1d63276
commit 9db9df5f4d
2 changed files with 23 additions and 2 deletions
+15 -2
View File
@@ -83,12 +83,14 @@ set(SS_REDIR_SOURCE
)
if (WITH_STATIC)
find_library(LIBSODIUM libsodium.a)
find_library(LIBMBEDTLS libmbedtls.a)
find_library(LIBMBEDCRYPTO libmbedcrypto.a)
find_library(LIBEV libev.a)
find_library(LIBUDNS libudns.a)
find_library(LIBPCRE libpcre.a)
endif ()
find_library(LIBSODIUM_SHARED sodium)
find_library(LIBMBEDTLS_SHARED mbedtls)
@@ -98,6 +100,7 @@ find_library(LIBUDNS_SHARED udns)
find_library(LIBPCRE_SHARED pcre)
# Dependencies we need for static and shared
if (WITH_STATIC)
list(APPEND DEPS
m
bloom
@@ -108,6 +111,8 @@ list(APPEND DEPS
${LIBMBEDTLS}
${LIBMBEDCRYPTO}
)
endif ()
list(APPEND DEPS_SHARED
m
bloom-shared
@@ -121,6 +126,7 @@ list(APPEND DEPS_SHARED
find_package (Threads)
if (WITH_STATIC)
# ------------------------------------------------------------------
# Static
# By default we use normal name for static, all shared targets will add a `-shared' suffix
@@ -149,6 +155,7 @@ target_link_libraries(ss-manager m bloom cork ${LIBEV} ${LIBUDNS})
target_link_libraries(ss-local cork ipset ${DEPS})
target_link_libraries(ss-redir cork ipset ${DEPS})
target_link_libraries(shadowsocks-libev cork ipset ${DEPS})
endif ()
# ------------------------------------------------------------------
# Shared
@@ -200,9 +207,15 @@ target_link_libraries(shadowsocks-libev-shared cork-shared ipset-shared ${DEPS_S
# Recommend to install shared by default
install(DIRECTORY ${RUNTIME_SHARED_OUTPUT_DIRECTORY}/
DESTINATION bin)
install(TARGETS shadowsocks-libev shadowsocks-libev-shared
LIBRARY DESTINATION lib
if (WITH_STATIC)
install(TARGETS shadowsocks-libev
ARCHIVE DESTINATION lib)
endif ()
install(TARGETS shadowsocks-libev-shared
LIBRARY DESTINATION lib)
install(FILES shadowsocks.h DESTINATION include)