| set(SUB "sai-server")
set(CPACK_DEBIAN_SERVER_PACKAGE_NAME ${SUB})
set(SRCS
s-sai.c
s-conf.c
s-notification.c
s-comms.c
s-helpers.c
s-power.c
s-ws-builder.c
s-task.c
s-task-helpers.c
s-central.c
s-ws-web.c
s-webops.c
s-resource.c
../common/c-utils.c
../common/c-sqlite3.c
../common/struct-metadata.c
)
include(CheckCCompilerFlag)
include(CheckFunctionExists)
include(CheckSymbolExists)
include(CheckIncludeFile)
include(CheckIncludeFiles)
include(CheckLibraryExists)
include(CheckTypeSize)
include(CheckCSourceCompiles)
include(GNUInstallDirs)
set(requirements 1)
require_lws_config(LWS_WITH_SERVER 1 requirements)
require_lws_config(LWS_WITH_GENCRYPTO 1 requirements)
require_lws_config(LWS_WITH_UNIX_SOCK 1 requirements)
require_lws_config(LWS_WITH_STRUCT_SQLITE3 1 requirements)
if (requirements)
add_executable(${SUB} ${SRCS})
add_dependencies(${SUB} sai_git_hash)
if (APPLE)
set_property(TARGET sai-server PROPERTY MACOSX_RPATH YES)
endif()
#
# sqlite3 paths (server)
#
find_path( SQLITE3_INC_PATH NAMES "sqlite3.h")
find_library(SQLITE3_LIB_PATH NAMES "sqlite3")
if (SQLITE3_INC_PATH AND SQLITE3_LIB_PATH)
include_directories(BEFORE "${SQLITE3_INC_PATH}")
else()
message(FATAL_ERROR " Unable to find sqlite3")
endif()
target_link_libraries(${SUB} websockets ${SQLITE3_LIB_PATH})
include_directories(BEFORE "${SAI_LWS_INC_PATH}")
# set(CMAKE_C_FLAGS "-ffunction-sections -Wl,--gc-sections -Wl,--print-gc-sections ${CMAKE_C_FLAGS}" )
CHECK_C_SOURCE_COMPILES("#include <libwebsockets.h>\nint
main(void) {\n#if defined(LWS_HAVE_LIBCAP)\n return
0;\n#else\n fail;\n#endif\n return 0;\n}\n" HAS_LIBCAP)
if (HAS_LIBCAP)
find_library(CAP_LIB_PATH NAMES "cap")
endif()
target_link_libraries(${SUB} ${SAI_LWS_LIB_PATH})
if (LWS_OPENSSL_LIBRARIES)
target_link_libraries(${SUB} ${LWS_OPENSSL_LIBRARIES})
endif()
if (SAI_EXT_PTHREAD_LIBRARIES)
target_link_libraries(${SUB} ${SAI_EXT_PTHREAD_LIBRARIES})
endif()
if (HAS_LIBCAP)
target_link_libraries(${SUB} ${CAP_LIB_PATH})
endif()
if (MSVC)
target_link_libraries(${SUB} ws2_32.lib userenv.lib psapi.lib iphlpapi.lib)
endif()
install(TARGETS ${SUB} RUNTIME DESTINATION "${BIN_DIR}" COMPONENT server)
endif(requirements)
|