mirror of
https://github.com/3proxy/3proxy.git
synced 2025-04-20 03:02:10 +08:00
Added CMake build system support
Successfully builds 3proxy binary and relevant plugins on Windows with bobth MSVC2010 and mingw
This commit is contained in:
parent
2d1720c15f
commit
234416e2db
118
CMakeLists.txt
Normal file
118
CMakeLists.txt
Normal file
@ -0,0 +1,118 @@
|
||||
cmake_minimum_required (VERSION 3.0)
|
||||
project (3proxy)
|
||||
|
||||
set_property(GLOBAL PROPERTY COMPILE_DEFINITIONS_DEBUG "DEBUG")
|
||||
|
||||
option (3PROXY_USE_IPV6 "Compile 3proxy with IPv6 support" OFF)
|
||||
option (3PROXY_PLUGIN_FILE "Build FilePlugin" ON)
|
||||
option (3PROXY_PLUGIN_LR "Build LstFRipper plugin" OFF)
|
||||
option (3PROXY_PLUGIN_LDAP "Build LDAP plugin" OFF)
|
||||
option (3PROXY_PLUGIN_PAM "Build PAM plugin" OFF)
|
||||
option (3PROXY_PLUGIN_PCRE "Build PCRE plugin" ON)
|
||||
option (3PROXY_PLUGIN_SSL "Build SSL plugin" ON)
|
||||
option (3PROXY_PLUGIN_STRINGS "Build strings plugin" ON)
|
||||
option (3PROXY_PLUGIN_TRANSPARENT "Build transparent proxy plugin" OFF)
|
||||
option (3PROXY_PLUGIN_U2C "Build UTF8 to CP1251 conversion plugin" ON)
|
||||
option (3PROXY_PLUGIN_TRAFFIC "Build trafic counter plugin" ON)
|
||||
option (3PROXY_PLUGIN_WINAUTH "Build Windows authentication plugin" ON)
|
||||
|
||||
if(NOT WIN32)
|
||||
set (3PROXY_PLUGIN_TRAFFIC OFF)
|
||||
set (3PROXY_PLUGIN_WINAUTH OFF)
|
||||
endif(NOT WIN32)
|
||||
|
||||
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
|
||||
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||
|
||||
file(MAKE_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
||||
|
||||
# Add Windows resources file
|
||||
if (WIN32)
|
||||
set (3PROXY_RESOURCES ${CMAKE_SOURCE_DIR}/3proxy.rc)
|
||||
else (WIN32)
|
||||
set (3PROXY_RESOURCES "")
|
||||
endif (WIN32)
|
||||
|
||||
set (SOURCE_DIR ${CMAKE_SOURCE_DIR}/src)
|
||||
|
||||
set (3PROXY_SOURCES
|
||||
${SOURCE_DIR}/3proxy.c
|
||||
${SOURCE_DIR}/proxymain.c
|
||||
${SOURCE_DIR}/proxy.c
|
||||
${SOURCE_DIR}/pop3p.c
|
||||
${SOURCE_DIR}/smtpp.c
|
||||
${SOURCE_DIR}/ftppr.c
|
||||
${SOURCE_DIR}/socks.c
|
||||
${SOURCE_DIR}/tcppm.c
|
||||
${SOURCE_DIR}/icqpr.c
|
||||
${SOURCE_DIR}/udppm.c
|
||||
${SOURCE_DIR}/sockmap.c
|
||||
${SOURCE_DIR}/sockgetchar.c
|
||||
${SOURCE_DIR}/myalloc.c
|
||||
${SOURCE_DIR}/common.c
|
||||
${SOURCE_DIR}/auth.c
|
||||
${SOURCE_DIR}/conf.c
|
||||
${SOURCE_DIR}/datatypes.c
|
||||
${SOURCE_DIR}/libs/md4.c
|
||||
${SOURCE_DIR}/libs/md5.c
|
||||
${SOURCE_DIR}/mycrypt.c
|
||||
${SOURCE_DIR}/base64.c
|
||||
${SOURCE_DIR}/ftp.c
|
||||
${SOURCE_DIR}/libs/smbdes.c
|
||||
${SOURCE_DIR}/ntlm.c
|
||||
${SOURCE_DIR}/stringtable.c
|
||||
${SOURCE_DIR}/webadmin.c
|
||||
${SOURCE_DIR}/dnspr.c
|
||||
${SOURCE_DIR}/plugins.c
|
||||
)
|
||||
|
||||
set(DIGHOSTS_SOURCES
|
||||
${SOURCE_DIR}/common.c
|
||||
${SOURCE_DIR}/dighosts.c
|
||||
${SOURCE_DIR}/myalloc.c
|
||||
)
|
||||
|
||||
set(MYCRYPT_SOURCES
|
||||
${SOURCE_DIR}/libs/md4.c
|
||||
${SOURCE_DIR}/libs/md5.c
|
||||
${SOURCE_DIR}/mycrypt.c
|
||||
${SOURCE_DIR}/base64.c
|
||||
)
|
||||
|
||||
set(CMAKE_FIND_LIBRARY_PREFIXES "")
|
||||
|
||||
if (WIN32)
|
||||
if (MSVC)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".lib")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /nodefaultlib:msvcrt,msvcrtd")
|
||||
else (MSVC)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll" ".dll.a" ".a")
|
||||
endif (MSVC)
|
||||
else(WIN32)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a")
|
||||
endif(WIN32)
|
||||
|
||||
add_executable (3proxy
|
||||
${3PROXY_RESOURCES};
|
||||
${3PROXY_SOURCES})
|
||||
|
||||
target_compile_definitions(3proxy PRIVATE WINDOWS WITH_STD_MALLOC _WIN32 _CONSOLE _MBCS MODULEMAINFUNC=mainfunc)
|
||||
|
||||
add_executable(dighosts ${DIGHOSTS_SOURCES})
|
||||
target_compile_definitions(dighosts PRIVATE WINDOWS WITH_STD_MALLOC _CONSOLE _MBCS)
|
||||
|
||||
add_executable(mycrypt ${MYCRYPT_SOURCES})
|
||||
target_compile_definitions(mycrypt PRIVATE WITHMAIN)
|
||||
|
||||
if (WIN32)
|
||||
target_link_libraries(3proxy PRIVATE ws2_32 odbc32 gdi32)
|
||||
target_link_libraries(dighosts PRIVATE ws2_32 odbc32 gdi32)
|
||||
endif(WIN32)
|
||||
|
||||
if (NOT 3PROXY_USE_IPV6)
|
||||
target_compile_definitions(3proxy PRIVATE NOIPV6)
|
||||
target_compile_definitions(dighosts PRIVATE NOIPV6)
|
||||
endif (NOT 3PROXY_USE_IPV6)
|
||||
|
||||
add_subdirectory (src/plugins)
|
||||
|
44
src/plugins/CMakeLists.txt
Normal file
44
src/plugins/CMakeLists.txt
Normal file
@ -0,0 +1,44 @@
|
||||
if (3PROXY_PLUGIN_FILE)
|
||||
add_subdirectory(FilePlugin)
|
||||
endif (3PROXY_PLUGIN_FILE)
|
||||
|
||||
if(3PROXY_PLUGIN_LR)
|
||||
add_subdirectory(LastFRipper)
|
||||
endif(3PROXY_PLUGIN_LR)
|
||||
|
||||
if(3PROXY_PLUGIN_LDAP)
|
||||
add_subdirectory(LdapPlugin)
|
||||
endif(3PROXY_PLUGIN_LDAP)
|
||||
|
||||
if(3PROXY_PLUGIN_PAM)
|
||||
add_subdirectory(PamAuth)
|
||||
endif(3PROXY_PLUGIN_PAM)
|
||||
|
||||
if(3PROXY_PLUGIN_PCRE)
|
||||
add_subdirectory(PCREPlugin)
|
||||
endif(3PROXY_PLUGIN_PCRE)
|
||||
|
||||
if(3PROXY_PLUGIN_SSL)
|
||||
add_subdirectory(SSLPlugin)
|
||||
endif(3PROXY_PLUGIN_SSL)
|
||||
|
||||
if(3PROXY_PLUGIN_STRINGS)
|
||||
add_subdirectory(StringsPlugin)
|
||||
endif(3PROXY_PLUGIN_STRINGS)
|
||||
|
||||
if(3PROXY_PLUGIN_TRAFFIC)
|
||||
add_subdirectory(TrafficPlugin)
|
||||
endif(3PROXY_PLUGIN_TRAFFIC)
|
||||
|
||||
if(3PROXY_PLUGIN_TRANSPARENT)
|
||||
add_subdirectory(TransparentPlugin)
|
||||
endif(3PROXY_PLUGIN_TRANSPARENT)
|
||||
|
||||
if(3PROXY_PLUGIN_U2C)
|
||||
add_subdirectory(utf8tocp1251)
|
||||
endif(3PROXY_PLUGIN_U2C)
|
||||
|
||||
if(3PROXY_PLUGIN_WINAUTH)
|
||||
add_subdirectory(WindowsAuthentication)
|
||||
endif(3PROXY_PLUGIN_WINAUTH)
|
||||
|
3
src/plugins/FilePlugin/CMakeLists.txt
Normal file
3
src/plugins/FilePlugin/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
set(FILE_PLUGIN_SOURCES FilePlugin.c)
|
||||
add_library(FilePlugin SHARED ${FILE_PLUGIN_SOURCES})
|
||||
set_target_properties(FilePlugin PROPERTIES PREFIX "")
|
4
src/plugins/LastFRipper/CMakeLists.txt
Normal file
4
src/plugins/LastFRipper/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
||||
set(LAST_FRIPPER_SOURCES lastFripper.c)
|
||||
add_library(lastFripper SHARED ${LAST_FRIPPER_SOURCES})
|
||||
set_target_properties(lastFripper PROPERTIES PREFIX "")
|
||||
|
15
src/plugins/LdapPlugin/CMakeLists.txt
Normal file
15
src/plugins/LdapPlugin/CMakeLists.txt
Normal file
@ -0,0 +1,15 @@
|
||||
find_library(LDAP_LIBRARY
|
||||
NAMES ldap
|
||||
HINTS "${CMAKE_SOURCE_DIR}/lib"
|
||||
)
|
||||
|
||||
add_library(ldapauth SHARED ldapauth.c)
|
||||
target_include_directories(ldapauth PRIVATE ${CMAKE_SOURCE_DIR}/include/ldapwindev)
|
||||
target_link_libraries(ldapauth PRIVATE ${LDAP_LIBRARY})
|
||||
set_target_properties(ldapauth PROPERTIES PREFIX "")
|
||||
|
||||
|
||||
add_executable(getldapuser WIN32 getldapuser.c)
|
||||
target_include_directories(getldapuser PRIVATE ${CMAKE_SOURCE_DIR}/include/ldapwindev)
|
||||
target_link_libraries(getldapuser PRIVATE ${LDAP_LIBRARY})
|
||||
|
27
src/plugins/PCREPlugin/CMakeLists.txt
Normal file
27
src/plugins/PCREPlugin/CMakeLists.txt
Normal file
@ -0,0 +1,27 @@
|
||||
set(PCRE_PLUGIN_SOURCES
|
||||
pcre_compile.c
|
||||
pcre_config.c
|
||||
pcre_dfa_exec.c
|
||||
pcre_exec.c
|
||||
pcre_fullinfo.c
|
||||
pcre_get.c
|
||||
pcre_globals.c
|
||||
pcre_info.c
|
||||
pcre_maketables.c
|
||||
pcre_newline.c
|
||||
pcre_ord2utf8.c
|
||||
pcre_refcount.c
|
||||
pcre_study.c
|
||||
pcre_tables.c
|
||||
pcre_try_flipped.c
|
||||
pcre_ucp_searchfuncs.c
|
||||
pcre_valid_utf8.c
|
||||
pcre_version.c
|
||||
pcre_xclass.c
|
||||
pcre_dftables.c
|
||||
pcre_plugin.c
|
||||
pcreposix.c)
|
||||
|
||||
add_library(PCREPlugin SHARED ${PCRE_PLUGIN_SOURCES})
|
||||
set_target_properties(PCREPlugin PROPERTIES PREFIX "")
|
||||
|
10
src/plugins/PamAuth/CMakeLists.txt
Normal file
10
src/plugins/PamAuth/CMakeLists.txt
Normal file
@ -0,0 +1,10 @@
|
||||
find_library (PAM_LIBRARY
|
||||
NAMES pam libpam
|
||||
)
|
||||
|
||||
set(PAMAUTH_PLUGIN_SOURCES pamauth.c)
|
||||
|
||||
add_library(pamauth SHARED ${PAMAUTH_PLUGIN_SOURCES })
|
||||
target_link_libraries(pamauth PRIVATE ${PAM_LIBRARY})
|
||||
set_target_properties(pamauth PROPERTIES PREFIX "")
|
||||
|
22
src/plugins/SSLPlugin/CMakeLists.txt
Normal file
22
src/plugins/SSLPlugin/CMakeLists.txt
Normal file
@ -0,0 +1,22 @@
|
||||
|
||||
set(SSL_PLUGIN_SOURCES ssl_plugin.c my_ssl.c)
|
||||
|
||||
add_library(SSLPlugin SHARED ${SSL_PLUGIN_SOURCES})
|
||||
|
||||
target_include_directories (SSLPlugin PRIVATE ${CMAKE_SOURCE_DIR}/include)
|
||||
set_target_properties(SSLPlugin PROPERTIES PREFIX "")
|
||||
|
||||
find_library(LEBEAY_LIBRARY
|
||||
NAMES libeay32 libeay32mt
|
||||
HINTS "${CMAKE_SOURCE_DIR}/lib"
|
||||
)
|
||||
find_library(SSLEAY_LIBRARY
|
||||
NAMES ssleay32 ssleay32mt
|
||||
HINTS "${CMAKE_SOURCE_DIR}/lib"
|
||||
)
|
||||
|
||||
target_link_libraries (SSLPlugin PRIVATE
|
||||
ws2_32.lib
|
||||
${SSLEAY_LIBRARY}
|
||||
${LEBEAY_LIBRARY})
|
||||
|
4
src/plugins/StringsPlugin/CMakeLists.txt
Normal file
4
src/plugins/StringsPlugin/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
||||
set(STRINGS_PLUGIN_SOURCES StringsPlugin.c)
|
||||
add_library(StringsPlugin SHARED ${STRINGS_PLUGIN_SOURCES})
|
||||
set_target_properties(StringsPlugin PROPERTIES PREFIX "")
|
||||
|
3
src/plugins/TrafficPlugin/CMakeLists.txt
Normal file
3
src/plugins/TrafficPlugin/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
set(TRAFFIC_PLUGIN_SOURCES TrafficPlugin.c)
|
||||
add_library(TrafficPlugin SHARED ${TRAFFIC_PLUGIN_SOURCES})
|
||||
set_target_properties(TrafficPlugin PROPERTIES PREFIX "")
|
3
src/plugins/TransparentPlugin/CMakeLists.txt
Normal file
3
src/plugins/TransparentPlugin/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
set(TRANSPARENT_PLUGIN_SOURCES transparent_plugin.c)
|
||||
add_library(TransparentPlugin SHARED ${TRANSPARENT_PLUGIN_SOURCES})
|
||||
set_target_properties(TransparentPlugin PROPERTIES PREFIX "")
|
3
src/plugins/WindowsAuthentication/CMakeLists.txt
Normal file
3
src/plugins/WindowsAuthentication/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
set(WINDOWS_AUTHENTICATION_SOURCES WindowsAuthentication.c)
|
||||
add_library(WindowsAuthentication SHARED ${WINDOWS_AUTHENTICATION_SOURCES})
|
||||
set_target_properties(WindowsAuthentication PROPERTIES PREFIX "")
|
3
src/plugins/utf8tocp1251/CMakeLists.txt
Normal file
3
src/plugins/utf8tocp1251/CMakeLists.txt
Normal file
@ -0,0 +1,3 @@
|
||||
set(UTFCP_PLUGIN_SOURCES utf8tocp1251.c)
|
||||
add_library(utf8tocp1251 SHARED ${UTFCP_PLUGIN_SOURCES})
|
||||
set_target_properties(utf8tocp1251 PROPERTIES PREFIX "")
|
Loading…
Reference in New Issue
Block a user