CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT (TX_PROJECT) SET(CMAKE_SYSTEM_NAME Linux) #SET(CMAKE_C_COMPILER arm-linux-gcc) #SET(CMAKE_CXX_COMPILER arm-linux-g++) SET(CMAKE_C_FLAGS "-std=gnu99") #add_definitions(-D _GNU_SOURCE) #SET(CMAKE_C_FLAGS "-g") AUX_SOURCE_DIRECTORY(uart_utils DIR_SRC_UART_UTILS) AUX_SOURCE_DIRECTORY(uart_can DIR_SRC_UART_CAN) AUX_SOURCE_DIRECTORY(queue DIR_SRC_QUEUE) AUX_SOURCE_DIRECTORY(cmd DIR_SRC_COMMAND) AUX_SOURCE_DIRECTORY(sqlite_utils DIR_SRC_SQLITE_UTILS) AUX_SOURCE_DIRECTORY(mqtt_utils DIR_SRC_MQTT_UTILS) AUX_SOURCE_DIRECTORY(md5sum DIR_SRC_MD5SUM) AUX_SOURCE_DIRECTORY(json-c DIR_SRC_JSONC) AUX_SOURCE_DIRECTORY(json_utils DIR_SRC_JSON_UTILS) AUX_SOURCE_DIRECTORY(escape_unescape DIR_SRC_ESCAPE_UNESCAPE) AUX_SOURCE_DIRECTORY(net_utils DIR_SRC_NET_UTILS) AUX_SOURCE_DIRECTORY(debug_print DIR_SRC_DEBUG_PRINT) SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin) SET(MQTT_SRC_PATH ${CMAKE_CURRENT_LIST_DIR}/mqtt) IF (PAHO_WITH_SSL) SET(OPENSSL_SEARCH_PATH "./openssl" CACHE PATH "Directory containing OpenSSL libraries and includes") IF (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") SET(OPENSSL_SEARCH_PATH "/usr/local/opt/openssl") ENDIF (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") IF (WIN32) SET(OPENSSL_SEARCH_PATH "C:/OpenSSL-Win64") SET(OPENSSL_SEARCH_LIB_PATH "${OPENSSL_SEARCH_PATH}/lib64") IF (DEFINED ENV{PAHO_WINDOWS_BUILD_BIT}) IF ($ENV{PAHO_WINDOWS_BUILD_BIT} STREQUAL "x86") SET(OPENSSL_SEARCH_PATH "C:/OpenSSL-Win32") SET(OPENSSL_SEARCH_LIB_PATH "${OPENSSL_SEARCH_PATH}/lib32") ENDIF () ENDIF () ELSE() SET(OPENSSL_SEARCH_LIB_PATH "${OPENSSL_SEARCH_PATH}/lib") ENDIF () FIND_PATH(OPENSSL_INCLUDE_DIR openssl/ssl.h HINTS ${OPENSSL_SEARCH_PATH}/include) FIND_LIBRARY(OPENSSL_LIB NAMES ssl libssl ssleay32 HINTS ${OPENSSL_SEARCH_PATH}/lib ${OPENSSL_SEARCH_LIB_PATH}) FIND_LIBRARY(OPENSSLCRYPTO_LIB NAMES crypto libcrypto libeay32 HINTS ${OPENSSL_SEARCH_PATH}/lib ${OPENSSL_SEARCH_LIB_PATH}) MESSAGE(STATUS "OpenSSL hints: ${OPENSSL_SEARCH_PATH}") MESSAGE(STATUS "OpenSSL headers found at ${OPENSSL_INCLUDE_DIR}") MESSAGE(STATUS "OpenSSL library found at ${OPENSSL_LIB}") MESSAGE(STATUS "OpenSSL Crypto library found at ${OPENSSLCRYPTO_LIB}") # INCLUDE_DIRECTORIES( # ${OPENSSL_INCLUDE_DIR} # ) add_definitions(-DOPENSSL=1) ENDIF() INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_LIST_DIR}/ ${CMAKE_BINARY_DIR}/ ${MQTT_SRC_PATH}/ ${OPENSSL_INCLUDE_DIR}/ ${CMAKE_CURRENT_LIST_DIR}/uart_utils ${CMAKE_CURRENT_LIST_DIR}/uart_can ${CMAKE_CURRENT_LIST_DIR}/queue ${CMAKE_CURRENT_LIST_DIR}/cmd ${CMAKE_CURRENT_LIST_DIR}/mqtt_utils ${CMAKE_CURRENT_LIST_DIR}/md5sum ${CMAKE_CURRENT_LIST_DIR}/json-c ${CMAKE_CURRENT_LIST_DIR}/json_utils ${CMAKE_CURRENT_LIST_DIR}/escape_unescape ${CMAKE_CURRENT_LIST_DIR}/net_utils ${CMAKE_CURRENT_LIST_DIR}/debug_print ${CMAKE_CURRENT_LIST_DIR}/openssl ) SET(MQTT_COMMON_SRC ${MQTT_SRC_PATH}/MQTTProtocolClient.c ${MQTT_SRC_PATH}/Clients.c ${MQTT_SRC_PATH}/utf-8.c ${MQTT_SRC_PATH}/StackTrace.c ${MQTT_SRC_PATH}/MQTTPacket.c ${MQTT_SRC_PATH}/MQTTPacketOut.c ${MQTT_SRC_PATH}/Messages.c ${MQTT_SRC_PATH}/Tree.c ${MQTT_SRC_PATH}/Socket.c ${MQTT_SRC_PATH}/Log.c ${MQTT_SRC_PATH}/MQTTPersistence.c ${MQTT_SRC_PATH}/Thread.c ${MQTT_SRC_PATH}/MQTTProtocolOut.c ${MQTT_SRC_PATH}/MQTTPersistenceDefault.c ${MQTT_SRC_PATH}/SocketBuffer.c ${MQTT_SRC_PATH}/Heap.c ${MQTT_SRC_PATH}/LinkedList.c ${MQTT_SRC_PATH}/MQTTProperties.c ${MQTT_SRC_PATH}/MQTTReasonCodes.c ${MQTT_SRC_PATH}/Base64.c ${MQTT_SRC_PATH}/Hmacsha1.c ${MQTT_SRC_PATH}/SHA1.c ${MQTT_SRC_PATH}/WebSocket.c ) SET(MQTT_MQTTAsync_SRC ${MQTT_SRC_PATH}/MQTTAsync.c ${MQTT_SRC_PATH}/SSLSocket.c ) SET(SRC_TX_SERVER ${DIR_SRC_UART_UTILS} ${DIR_SRC_COMMAND} ${DIR_SRC_QUEUE} ${DIR_SRC_UART_CAN} ${DIR_SRC_SQLITE_UTILS} ${MQTT_COMMON_SRC} ${MQTT_MQTTAsync_SRC} ${DIR_SRC_MQTT_UTILS} ${DIR_SRC_MD5SUM} ${DIR_SRC_JSONC} ${DIR_SRC_JSON_UTILS} ${DIR_SRC_ESCAPE_UNESCAPE} ${DIR_SRC_NET_UTILS} ${DIR_SRC_DEBUG_PRINT} ${CMAKE_CURRENT_LIST_DIR}/main.c ) ADD_EXECUTABLE(mt_server ${SRC_TX_SERVER}) TARGET_LINK_LIBRARIES(mt_server pthread dl "-L${CMAKE_CURRENT_LIST_DIR}/openssl/lib" "-lssl" "-lcrypto")