1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
project(eiskaltdcpp-daemon)
cmake_minimum_required(VERSION 3.5)
# ######### General setup ##########
include_directories(${PROJECT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/..
${GETTEXT_INCLUDE_DIR})
aux_source_directory(${PROJECT_SOURCE_DIR} nasdc_SRCS)
if (JSONRPC_DAEMON AND XMLRPC_DAEMON)
message(" Build both JSONRPC and XMLRPC interfaces is prohibited for now, set XMLRPC_DAEMON=OFF")
set (XMLRPC_DAEMON OFF CACHE BOOL "Make daemon as xmlrpc server" FORCE)
endif (JSONRPC_DAEMON AND XMLRPC_DAEMON)
if (JSONRPC_DAEMON)
message (STATUS "Build daemon with JSONRPC interface")
set(JSONRPCLIBS jsonrpc-cpp)
add_definitions (-DJSONRPC_DAEMON)
include_directories(${JSONCPP_INCLUDE_DIR})
if (LOCAL_JSONCPP)
include_directories(${PROJECT_SOURCE_DIR}/../json/jsoncpp)
else(LOCAL_JSONCPP)
include_directories(${JSONCPP_INCLUDE_DIR})
set(JSONRPCLIBS ${JSONCPP_LIBRARY} ${JSONRPCLIBS})
endif (LOCAL_JSONCPP)
else (JSONRPC_DAEMON)
list (REMOVE_ITEM nasdc_SRCS ${PROJECT_SOURCE_DIR}/jsonrpcmethods.cpp)
endif (JSONRPC_DAEMON)
if (XMLRPC_DAEMON)
message (STATUS "Build daemon with XMLRPC interface")
if (NOT NO_UI_DAEMON)
set (NO_UI_DAEMON 1 CACHE BOOL "Daemon without anyone ui" FORCE)
endif (NOT NO_UI_DAEMON)
set (xmlrpclibs "abyss-server")
find_package (XMLRPC REQUIRED c++2 ${xmlrpclibs})
include_directories(${XMLRPC_INCLUDE_DIRS})
set (XMLRPCLIBS ${XMLRPC_LIBRARIES})
add_definitions (-DXMLRPC_DAEMON )
endif (XMLRPC_DAEMON)
if (HAVE_DAEMON)
add_definitions(-DHAVE_DAEMON)
endif(HAVE_DAEMON)
if (WIN32)
if (OPENSSL_MSVC)
list (APPEND nasdc_SRCS ../windows/applink.c)
endif (OPENSSL_MSVC)
endif (WIN32)
if (LUA_SCRIPT)
include_directories (${LUA_INCLUDE_DIR})
endif (LUA_SCRIPT)
if (ENABLE_STACKTRACE)
set_property(SOURCE ${PROJECT_SOURCE_DIR}/src/nasdc.cpp PROPERTY COMPILE_DEFINITIONS ENABLE_STACKTRACE)
endif (ENABLE_STACKTRACE)
# actual target:
add_executable (${PROJECT_NAME} MACOSX_BUNDLE WIN32
${nasdc_SRCS}
)
list(APPEND LIBS
${XMLRPCLIBS}
${JSONRPCLIBS}
${ICONV_LIBRARIES}
)
if (BUILD_STATIC)
if (UNIX AND NOT APPLE AND NOT HAIKU)
list (APPEND LIBS -lssl -lcrypto -lm -ldl)
endif (UNIX AND NOT APPLE AND NOT HAIKU)
endif (BUILD_STATIC)
target_link_libraries (${PROJECT_NAME} extra dcpp ${LIBS})
if (DEBUG_DAEMON)
add_definitions(-D_DEBUG_DAEMON)
message (STATUS "Enabled debug output from eiskaltdcpp-daemon!")
endif()
install (TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION ${BINDIR}
BUNDLE DESTINATION ${BUNDLEDIR})
if (UNIX AND NOT APPLE AND NOT HAIKU)
if(COMPRESS_MANPAGES)
execute_process (
OUTPUT_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.1.gz
COMMAND "${GZIP_CMD}" -9
INPUT_FILE ${PROJECT_NAME}.1
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/)
install (FILES ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.1.gz DESTINATION ${MAN_DIR})
else(COMPRESS_MANPAGES)
install (FILES ${PROJECT_NAME}.1 DESTINATION ${MAN_DIR})
endif(COMPRESS_MANPAGES)
endif ()
if (WIN32 OR APPLE)
install (FILES manual.${PROJECT_NAME}.html DESTINATION "${CLIENT_DOCS_DIR}")
endif ()
|