181 lines
6.0 KiB
CMake
181 lines
6.0 KiB
CMake
CMAKE_MINIMUM_REQUIRED(VERSION 3.14 FATAL_ERROR)
|
|
IF (${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.28)
|
|
CMAKE_POLICY(SET CMP0135 NEW)
|
|
ENDIF ()
|
|
|
|
INCLUDE(FetchContent)
|
|
|
|
PKG_SEARCH_MODULE(LIBUV QUIET libuv)
|
|
PKG_SEARCH_MODULE(LIBCURL QUIET libcurl)
|
|
PKG_SEARCH_MODULE(LIBSSL QUIET libssl)
|
|
PKG_SEARCH_MODULE(LIBCRYPTO QUIET libcrypto)
|
|
IF (USED_HTTP_CLIENT)
|
|
PKG_SEARCH_MODULE(LIBZ QUIET libz)
|
|
ENDIF ()
|
|
|
|
IF ((NOT LIBCRYPTO_FOUND) OR (NOT LIBSSL_FOUND) OR (NOT LIBCURL_FOUND)
|
|
OR (NOT LIBUV_FOUND))
|
|
LINUX_INSTALL_SYSTEM_PACKAGE()
|
|
ENDIF ()
|
|
|
|
IF (USED_HTTP_CLIENT)
|
|
IF ((NOT LIBUV_FOUND))
|
|
LINUX_INSTALL_SYSTEM_PACKAGE()
|
|
ENDIF()
|
|
ENDIF ()
|
|
|
|
LIST(APPEND COMMON_LIBS "${LIBCURL_LDFLAGS} ${LIBSSL_LDFLAGS} ${LIBCRYPTO_LDFLAGS}")
|
|
|
|
IF (USED_SQLITE AND LIBSQLITE3_FOUND)
|
|
LIST(APPEND COMMON_LIBS "${LIBSQLITE3_LDFLAGS}")
|
|
ENDIF ()
|
|
|
|
LIST(APPEND COMMON_LIBS "-lm -lpthread")
|
|
|
|
PKG_SEARCH_MODULE(LIBCONFIG QUIET libconfig)
|
|
FIND_LIBRARY(LIBZLOG zlog PATHS "/usr/local/lib")
|
|
|
|
IF (USED_HTTP_CLIENT)
|
|
FIND_LIBRARY(LIBLLHTTP llhttp PATHS "/usr/local/lib")
|
|
FIND_LIBRARY(LIBTLSUV tlsuv PATHS "/usr/local/lib")
|
|
ENDIF ()
|
|
|
|
IF (USED_JSON_VALIDATE)
|
|
PKG_CHECK_MODULES(LIBJSON-C QUIET json-c>=0.13)
|
|
|
|
IF (NOT LIBJSON-C_FOUND)
|
|
FETCHCONTENT_DECLARE(libjson-c
|
|
URL file://${CMAKE_SOURCE_DIR}/depend/json-c-0.16.tar.gz
|
|
URL_MD5 a549a833f886d427148fb5710c3e613e
|
|
)
|
|
ENDIF ()
|
|
ENDIF ()
|
|
|
|
IF (USED_HTTP_CLIENT)
|
|
IF (NOT LIBLLHTTP_FOUND)
|
|
FETCHCONTENT_DECLARE(llhttp
|
|
URL file://${CMAKE_SOURCE_DIR}/depend/llhttp-release-v9.2.1.tar.gz
|
|
URL_MD5 546887e9b5760d9a7406c73eef01f522)
|
|
ENDIF ()
|
|
|
|
IF (NOT LIBTLSUV_FOUND)
|
|
FETCHCONTENT_DECLARE(tlsuv
|
|
URL file://${CMAKE_SOURCE_DIR}/depend/tlsuv-0.32.9.tar.gz
|
|
URL_MD5 7977b3c834928c46f9cf072465710a84)
|
|
ENDIF ()
|
|
ENDIF ()
|
|
|
|
IF (NOT LIBCONFIG_FOUND)
|
|
FETCHCONTENT_DECLARE(libconfig
|
|
URL file://${CMAKE_SOURCE_DIR}/depend/libconfig-1.7.3.tar.gz
|
|
URL_MD5 21ebfac0f7ed5a994e03e6a6101577e8)
|
|
ENDIF ()
|
|
|
|
IF (LIBZLOG STREQUAL "LIBZLOG-NOTFOUND")
|
|
FETCHCONTENT_DECLARE(zlog
|
|
URL file://${CMAKE_SOURCE_DIR}/depend/zlog-1.2.18.tar.gz
|
|
URL_MD5 3fbac790d550b9d95fbd1312d674b9c5)
|
|
ENDIF ()
|
|
|
|
IF (NOT LIBCONFIG_FOUND)
|
|
FETCHCONTENT_MAKEAVAILABLE(libconfig)
|
|
ENDIF ()
|
|
|
|
IF (${LIBZLOG} STREQUAL "LIBZLOG-NOTFOUND")
|
|
FETCHCONTENT_MAKEAVAILABLE(zlog)
|
|
ENDIF ()
|
|
|
|
IF (USED_HTTP_CLIENT)
|
|
IF (${LIBLLHTTP} STREQUAL "LIBLLHTTP-NOTFOUND")
|
|
FETCHCONTENT_MAKEAVAILABLE(llhttp)
|
|
ENDIF ()
|
|
|
|
IF (${LIBTLSUV} STREQUAL "LIBTLSUV-NOTFOUND")
|
|
FETCHCONTENT_MAKEAVAILABLE(tlsuv)
|
|
ENDIF ()
|
|
ENDIF ()
|
|
|
|
IF (USED_JSON_VALIDATE)
|
|
IF (NOT LIBJSON-C_FOUND)
|
|
FETCHCONTENT_MAKEAVAILABLE(libjson-c)
|
|
ENDIF ()
|
|
ENDIF ()
|
|
|
|
IF (NOT LIBCONFIG_FOUND)
|
|
MESSAGE(STATUS "libconfig not found, will be used source code to build it ...")
|
|
FETCHCONTENT_GETPROPERTIES(libconfig)
|
|
IF (NOT libconfig_POPULATED)
|
|
FETCHCONTENT_POPULATE(libconfig)
|
|
ADD_SUBDIRECTORY(${libconfig_SOURCE_DIR} ${libconfig_BINARY_DIR})
|
|
ENDIF ()
|
|
INCLUDE_DIRECTORIES(${libconfig_SOURCE_DIR}/lib)
|
|
LIST(APPEND COMMON_LIBS "config")
|
|
ELSE ()
|
|
MESSAGE(STATUS "libconfig found ${LIBCONFIG_VERSION} at ${LIBCONFIG_LIBRARY_DIRS}")
|
|
LIST(APPEND COMMON_LIBS "${LIBCONFIG_LDFLAGS}")
|
|
ENDIF ()
|
|
|
|
IF (LIBZLOG STREQUAL "LIBZLOG-NOTFOUND")
|
|
MESSAGE(STATUS "zlog not found, will be used source code to build it ...")
|
|
FETCHCONTENT_GETPROPERTIES(zlog)
|
|
IF (NOT zlog_POPULATED)
|
|
FETCHCONTENT_POPULATE(zlog)
|
|
ADD_SUBDIRECTORY(${zlog_SOURCE_DIR} ${zlog_BINARY_DIR})
|
|
ENDIF ()
|
|
INCLUDE_DIRECTORIES(${zlog_SOURCE_DIR}/src)
|
|
LIST(APPEND COMMON_LIBS "zlog_s")
|
|
ELSE ()
|
|
MESSAGE(STATUS "zlog found of ${LIBZLOG}")
|
|
LIST(APPEND COMMON_LIBS "${LIBZLOG}")
|
|
ENDIF ()
|
|
|
|
IF (USED_HTTP_CLIENT)
|
|
IF (LIBLLHTTP STREQUAL "LIBLLHTTP-NOTFOUND")
|
|
MESSAGE(STATUS "llhttp not found, will be used source code to build it ...")
|
|
FETCHCONTENT_GETPROPERTIES(llhttp)
|
|
IF (NOT llhttp_POPULATED)
|
|
FETCHCONTENT_POPULATE(llhttp)
|
|
ADD_SUBDIRECTORY(${llhttp_SOURCE_DIR} ${llhttp_BINARY_DIR})
|
|
ENDIF ()
|
|
|
|
INCLUDE_DIRECTORIES(${llhttp_SOURCE_DIR}/include)
|
|
LIST(APPEND COMMON_LIBS "llhttp_static")
|
|
ELSE ()
|
|
MESSAGE(STATUS "llhttp found of ${LIBLLHTTP}")
|
|
LIST(APPEND COMMON_LIBS "${LIBLLHTTP}")
|
|
ENDIF ()
|
|
|
|
IF (LIBTLSUV STREQUAL "LIBTLSUV-NOTFOUND")
|
|
MESSAGE(STATUS "tlsuv not found, will be used source code to build it ...")
|
|
FETCHCONTENT_GETPROPERTIES(tlsuv)
|
|
IF (NOT tlsuv_POPULATED)
|
|
FETCHCONTENT_POPULATE(tlsuv)
|
|
ADD_SUBDIRECTORY(${tlsuv_SOURCE_DIR} ${tlsuv_BINARY_DIR})
|
|
ENDIF ()
|
|
INCLUDE_DIRECTORIES(${tlsuv_SOURCE_DIR}/src)
|
|
LIST(APPEND COMMON_LIBS "tlsuv")
|
|
ELSE ()
|
|
MESSAGE(STATUS "tlsuv found of ${LIBTLSUV}")
|
|
LIST(APPEND COMMON_LIBS "${LIBTLSUV}")
|
|
ENDIF ()
|
|
ENDIF ()
|
|
|
|
IF (USED_JSON_VALIDATE)
|
|
IF (NOT LIBJSON-C_FOUND)
|
|
MESSAGE(STATUS "json-c not found, will be used source code to build it ...")
|
|
FETCHCONTENT_GETPROPERTIES(libjson-c)
|
|
IF (NOT libjson-c_POPULATED)
|
|
FETCHCONTENT_POPULATE(libjson-c)
|
|
ADD_SUBDIRECTORY(${libjson-c_SOURCE_DIR} ${libjson-c_BINARY_DIR})
|
|
ENDIF ()
|
|
EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E make_directory "json-c"
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${libjson-c_BINARY_DIR}/json.h" "./json-c/"
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different "${libjson-c_BINARY_DIR}/json_config.h" "."
|
|
WORKING_DIRECTORY ${libjson-c_SOURCE_DIR})
|
|
INCLUDE_DIRECTORIES(${libjson-c_SOURCE_DIR})
|
|
LIST(APPEND COMMON_LIBS "json-c")
|
|
ELSE ()
|
|
MESSAGE(STATUS "json-c found ${LIBJSON-C_VERSION} at ${LIBJSON-C_LIBRARY_DIRS}")
|
|
LIST(APPEND COMMON_LIBS "${LIBJSON-C_LDFLAGS}")
|
|
ENDIF ()
|
|
ENDIF () |