AP05/CMakeLists.txt

141 lines
4.5 KiB
CMake
Raw Normal View History

2025-04-06 06:41:47 +00:00
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)
2025-04-20 13:43:28 +00:00
2025-04-06 06:41:47 +00:00
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
SET(MQTT_SRC_PATH ${CMAKE_CURRENT_LIST_DIR}/mqtt)
2025-04-20 13:43:28 +00:00
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()
2025-04-06 06:41:47 +00:00
INCLUDE_DIRECTORIES(
${CMAKE_CURRENT_LIST_DIR}/
${CMAKE_BINARY_DIR}/
${MQTT_SRC_PATH}/
2025-04-20 13:43:28 +00:00
${OPENSSL_INCLUDE_DIR}/
2025-04-06 06:41:47 +00:00
${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
2025-04-20 13:43:28 +00:00
${CMAKE_CURRENT_LIST_DIR}/openssl
2025-04-06 06:41:47 +00:00
)
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
)
2025-04-20 13:43:28 +00:00
ADD_EXECUTABLE(jd_server ${SRC_TX_SERVER})
2025-04-06 06:41:47 +00:00
2025-04-20 13:43:28 +00:00
TARGET_LINK_LIBRARIES(jd_server pthread dl "-L${CMAKE_CURRENT_LIST_DIR}/openssl/lib" "-lssl" "-lcrypto")
2025-04-06 06:41:47 +00:00