| # -*- cmake -*- |
| |
| if(WIN32) |
| if(NOT TCF_OPSYS) |
| set(TCF_OPSYS "Windows") |
| endif() |
| if(NOT TCF_MACHINE) |
| set(TCF_MACHINE "x86_64") |
| endif() |
| endif(WIN32) |
| |
| if(ANDROID) |
| if(NOT TCF_OPSYS) |
| set(TCF_OPSYS "GNU/Linux") |
| endif() |
| if(NOT TCF_MACHINE) |
| if(ARMEABI OR ARMEABI_V6 OR ARMEABI_V7A) |
| set(TCF_MACHINE "arm") |
| elseif(ARM64_V8A ) |
| set(TCF_MACHINE "a64") |
| elseif(X86 ) |
| set(TCF_MACHINE "i686") |
| elseif(X86_64 ) |
| set(TCF_MACHINE "x86_64") |
| else() |
| message( FATAL_ERROR "Unsupported ABI " ${ANDROID_ABI} ) |
| endif() |
| endif() |
| endif(ANDROID) |
| |
| if (NOT TCF_DIR) |
| set(TCF_DIR ${CMAKE_CURRENT_LIST_DIR}) |
| endif() |
| |
| if (NOT TCF_LIB_NAME) |
| set(TCF_LIB_NAME tcf) |
| endif() |
| |
| set(TCF_BASE_DIR ${TCF_DIR}/agent) |
| |
| # sources to build |
| set(TCF_SRCS) |
| |
| # get all regular source files |
| file(GLOB TCF_SRCS_REL RELATIVE ${TCF_BASE_DIR} |
| ${TCF_BASE_DIR}/system/${TCF_OPSYS}/tcf/*.c |
| ${TCF_BASE_DIR}/machine/${TCF_MACHINE}/tcf/*.c |
| ${TCF_BASE_DIR}/tcf/framework/*.c |
| ${TCF_BASE_DIR}/tcf/services/*.c |
| ${TCF_BASE_DIR}/tcf/main/*.c |
| ${TCF_BASE_DIR}/tcf/http/*.c) |
| |
| # remove non-library files |
| file(GLOB TCF_MAIN_REL RELATIVE ${TCF_BASE_DIR} |
| ${TCF_BASE_DIR}/tcf/main/main*.c) |
| list(REMOVE_ITEM TCF_SRCS_REL ${TCF_MAIN_REL}) |
| |
| if(DEFINED TCF_EXTRA_DIR) |
| foreach(extraDir ${TCF_EXTRA_DIR}) |
| # get extra all source files |
| file(GLOB TCF_EXTRA_SRCS_REL RELATIVE ${extraDir} |
| ${extraDir}/system/${TCF_OPSYS}/tcf/*.c |
| ${extraDir}/machine/${TCF_MACHINE}/tcf/*.c |
| ${extraDir}/tcf/framework/*.c |
| ${extraDir}/tcf/services/*.c |
| ${extraDir}/tcf/main/*.c |
| ${extraDir}/tcf/http/*.c) |
| |
| # Override regular files with extra files |
| list (LENGTH TCF_EXTRA_SRCS_REL LEN_TCF_EXTRA_SRCS_REL) |
| |
| if (NOT LEN_TCF_EXTRA_SRCS_REL EQUAL 0) |
| list(REMOVE_ITEM TCF_SRCS_REL ${TCF_EXTRA_SRCS_REL}) |
| endif () |
| |
| foreach(file ${TCF_EXTRA_SRCS_REL}) |
| list(APPEND TCF_SRCS ${extraDir}/${file}) |
| endforeach(file) |
| endforeach(extraDir) |
| endif() |
| |
| foreach(file ${TCF_SRCS_REL}) |
| list(APPEND TCF_SRCS ${TCF_BASE_DIR}/${file}) |
| endforeach(file) |
| |
| if(DEFINED TCF_EXTRA_DIR) |
| foreach(extraDir ${TCF_EXTRA_DIR}) |
| include_directories(${extraDir} ${extraDir}/system/${TCF_OPSYS} ${extraDir}/machine/${TCF_MACHINE}) |
| endforeach(extraDir) |
| endif() |
| |
| include_directories(${TCF_BASE_DIR} ${TCF_BASE_DIR}/system/${TCF_OPSYS} ${TCF_BASE_DIR}/machine/${TCF_MACHINE}) |
| |
| set_source_files_properties(${TCF_SRCS} PROPERTIES |
| COMPILE_FLAGS "${MULTI_THREADED_COMPILE_FLAGS}") |
| add_library(${TCF_LIB_NAME} ${TCF_LIB_TYPE} ${TCF_SRCS}) |
| target_link_libraries(${TCF_LIB_NAME} |
| ${UUID_LIB_NAME} ${MULTI_THREADED_LINK_LIBS} ${SOCKET_LINK_LIBS}) |
| |
| if(SSL_LIB_NAME) |
| target_link_libraries(${TCF_LIB_NAME} ${SSL_LIB_NAME}) |
| else() |
| add_definitions("-DENABLE_SSL=0") |
| endif() |
| |
| if(DEFINED TCF_PLUGIN_PATH) |
| add_definitions(-DPATH_Plugins=${TCF_PLUGIN_PATH}) |
| if (UNIX) |
| target_link_libraries(${TCF_LIB_NAME} dl) |
| endif() |
| endif() |
| |
| if (LIBWEBSOCKETSDIR) |
| find_library(LIBWEBSOCKETS NAME "websockets" PATHS ${LIBWEBSOCKETSDIR}/lib NO_DEFAULT_PATH) |
| if (${LIBWEBSOCKETS} STREQUAL "LIBWEBSOCKETS-NOTFOUND") |
| message(FATAL_ERROR "ERROR: Could not find libwebsockets library in directory: " ${LIBWEBSOCKETSDIR}) |
| else() |
| message(STATUS "Found libwebsockets library: ${LIBWEBSOCKETS}") |
| endif() |
| include_directories(${LIBWEBSOCKETSDIR}/include/) |
| target_link_libraries(${TCF_LIB_NAME} ${LIBWEBSOCKETS}) |
| add_definitions("-DENABLE_LibWebSockets=1") |
| INCLUDE (${CMAKE_ROOT}/Modules/FindOpenSSL.cmake) |
| if (NOT OPENSSL_FOUND) |
| message(FATAL_ERROR "ERROR: Could not find OpenSSL!!!") |
| endif(NOT OPENSSL_FOUND) |
| include_directories(${OPENSSL_INCLUDE_DIR}) |
| target_link_libraries(${TCF_LIB_NAME} ${OPENSSL_LIBRARIES}) |
| endif() |