Browse Source

Fix support for building with CMake and MinGW.

pull/2698/head
DDoSolitary 4 years ago
parent
commit
f1f3e9d6ca
No known key found for this signature in database GPG Key ID: 90A79E1B71BC0CB1
2 changed files with 26 additions and 3 deletions
  1. 9
      CMakeLists.txt
  2. 20
      src/CMakeLists.txt

9
CMakeLists.txt

@ -91,9 +91,13 @@ set(LIBCORK_SOURCE
libcork/src/libcork/posix/exec.c libcork/src/libcork/posix/exec.c
libcork/src/libcork/posix/files.c libcork/src/libcork/posix/files.c
libcork/src/libcork/posix/process.c libcork/src/libcork/posix/process.c
libcork/src/libcork/posix/subprocess.c
libcork/src/libcork/pthreads/thread.c libcork/src/libcork/pthreads/thread.c
) )
if (NOT MINGW)
set(LIBCORK_SOURCE ${LIBCORK_SOURCE} libcork/src/libcork/posix/subprocess.c)
else ()
set(LIBCORK_SOURCE ${LIBCORK_SOURCE} libcork/src/libcork/posix/mingw.c)
endif ()
if (WITH_STATIC) if (WITH_STATIC)
add_library(cork STATIC ${LIBCORK_SOURCE}) add_library(cork STATIC ${LIBCORK_SOURCE})
@ -103,6 +107,9 @@ endif ()
add_library(cork-shared SHARED ${LIBCORK_SOURCE}) add_library(cork-shared SHARED ${LIBCORK_SOURCE})
target_compile_definitions(cork-shared PUBLIC -DCORK_API=CORK_EXPORT) target_compile_definitions(cork-shared PUBLIC -DCORK_API=CORK_EXPORT)
set_target_properties(cork-shared PROPERTIES OUTPUT_NAME cork) set_target_properties(cork-shared PROPERTIES OUTPUT_NAME cork)
if (MINGW)
target_link_libraries(cork-shared ws2_32)
endif ()
set(LIBIPSET_SOURCE set(LIBIPSET_SOURCE
libipset/src/libipset/general.c libipset/src/libipset/general.c

20
src/CMakeLists.txt

@ -1,8 +1,10 @@
# redir need linux/* stuff # redir need linux/* stuff
if (LINUX) if (LINUX)
option(WITH_SS_REDIR "Build ss-redir" ON) option(WITH_SS_REDIR "Build ss-redir" ON)
option(WITH_SS_MANAGER "Build ss-manager" ON)
else () else ()
option(WITH_SS_REDIR "Build ss-redir" OFF) option(WITH_SS_REDIR "Build ss-redir" OFF)
option(WITH_SS_MANAGER "Build ss-manager" OFF)
endif () endif ()
@ -29,6 +31,9 @@ set(SS_SHARED_SOURCES
json.c json.c
netutils.c netutils.c
) )
if (MINGW)
set(SS_SHARED_SOURCES ${SS_SHARED_SOURCES} winsock.c)
endif ()
set(LIBSHADOWSOCKS_LIBEV_SOURCE set(LIBSHADOWSOCKS_LIBEV_SOURCE
${SS_SHARED_SOURCES} ${SS_SHARED_SOURCES}
@ -110,6 +115,9 @@ list(APPEND DEPS
${LIBMBEDTLS} ${LIBMBEDTLS}
${LIBMBEDCRYPTO} ${LIBMBEDCRYPTO}
) )
if (MINGW)
list(APPEND DEPS ws2_32)
endif ()
endif () endif ()
find_library(LIBSODIUM_SHARED sodium) find_library(LIBSODIUM_SHARED sodium)
@ -158,7 +166,11 @@ if (WITH_STATIC)
# By default we use normal name for static, all shared targets will add a `-shared' suffix # By default we use normal name for static, all shared targets will add a `-shared' suffix
add_executable(ss-server ${SS_SERVER_SOURCE}) add_executable(ss-server ${SS_SERVER_SOURCE})
add_executable(ss-tunnel ${SS_TUNNEL_SOURCE}) add_executable(ss-tunnel ${SS_TUNNEL_SOURCE})
add_executable(ss-manager ${SS_MANAGER_SOURCE})
if (WITH_SS_MANAGER)
add_executable(ss-manager ${SS_MANAGER_SOURCE})
else ()
add_executable(ss-manager EXCLUDE_FROM_ALL ${SS_MANAGER_SOURCE})
endif ()
add_executable(ss-local ${SS_LOCAL_SOURCE}) add_executable(ss-local ${SS_LOCAL_SOURCE})
if (WITH_SS_REDIR) if (WITH_SS_REDIR)
add_executable(ss-redir ${SS_REDIR_SOURCE}) add_executable(ss-redir ${SS_REDIR_SOURCE})
@ -192,7 +204,11 @@ endif ()
# For shared binary, we still use the same name as static, without `-shared', but will output to shared directory # For shared binary, we still use the same name as static, without `-shared', but will output to shared directory
add_executable(ss-server-shared ${SS_SERVER_SOURCE}) add_executable(ss-server-shared ${SS_SERVER_SOURCE})
add_executable(ss-tunnel-shared ${SS_TUNNEL_SOURCE}) add_executable(ss-tunnel-shared ${SS_TUNNEL_SOURCE})
add_executable(ss-manager-shared ${SS_MANAGER_SOURCE})
if (WITH_SS_MANAGER)
add_executable(ss-manager-shared ${SS_MANAGER_SOURCE})
else ()
add_executable(ss-manager-shared EXCLUDE_FROM_ALL ${SS_MANAGER_SOURCE})
endif ()
add_executable(ss-local-shared ${SS_LOCAL_SOURCE}) add_executable(ss-local-shared ${SS_LOCAL_SOURCE})
if (WITH_SS_REDIR) if (WITH_SS_REDIR)
add_executable(ss-redir-shared ${SS_REDIR_SOURCE}) add_executable(ss-redir-shared ${SS_REDIR_SOURCE})

Loading…
Cancel
Save