map/das-dn/CMakeLists.txt
2024-10-21 10:53:15 +08:00

226 lines
6.6 KiB
CMake

cmake_minimum_required (VERSION 3.5.1)
project (application C CXX)
set (VERSION 1.0.1)
option (USE_MQTT "use mqtt protocol" ON)
option (USE_WEBSOCKET "use websocket" ON)
option (USE_SQLITE3 "use sqlite3" ON)
if (USE_SQLITE3)
option (USE_SQLITE_CONFIG "use sqlite config" OFF)
if (USE_SQLITE_CONFIG)
add_definitions(-DUSE_SQLITE_CONFIG)
message (STATUS "Using sqlite3 config file.")
endif ()
endif ()
option (USE_32BITS "Build 32Bits application?" OFF)
if (USE_32BITS)
message (STATUS "Using 32Bits Platform: ${CMAKE_SYSTEM_PROCESSOR} host: ${CMAKE_HOST_SYSTEM_PROCESSOR}")
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
add_compile_options (-m32)
add_link_options (-m32)
endif()
add_definitions(-DUSE_32BITS)
else ()
message (STATUS "Using 64Bits Platform")
add_definitions(-DNOPOLL_64BIT_PLATFORM)
endif (USE_32BITS)
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
SET (CMAKE_BUILD_TYPE "Debug")
endif ()
if (CMAKE_BUILD_TYPE AND (CMAKE_BUILD_TYPE STREQUAL "Debug"))
add_compile_options ("-O0")
add_compile_options ("-Wall")
message("Debug mode:${CMAKE_C_FLAGS_DEBUG}")
elseif (CMAKE_BUILD_TYPE AND (CMAKE_BUILD_TYPE STREQUAL "Release"))
add_compile_options ("-O3")
add_compile_options ("-Wall")
message ("Release mode:${CMAKE_C_FLAGS_RELEASE}")
else ()
message ("else:${CMAKE_BUILD_TYPE}")
message ("else:${CMAKE_C_FLAGS_RELEASE}")
endif()
option (HAVE_FTP_PROCESS "use ry ftp" ON)
if (HAVE_FTP_PROCESS)
add_definitions(-DHAVE_FTP_PROCESS)
set (APP_LIBS ${APP_LIBS} curl)
endif ()
include_directories (
inc
inc/json
inc/uuid
inc/sqlite
inc/nopoll
inc/crypto
inc/mqtt)
set (APP_SRCS
cmg/main.cpp
cmg/changemaster.cpp
cmg/ry.cpp
comm/process.cpp
comm/netproc.cpp
comm/portproc.cpp
comm/public.cpp
comm/soe.cpp
comm/ycbw.cpp
comm/yklog.cpp
comm/ytlog.cpp
comm/yxbw.cpp
comm/iec104.cpp
hostiec104/host_iec104.cpp
hostmodbusrtu/host_modbus_rtu.cpp
hostmodbustcp/host_modbus_tcp.cpp
rtustatusproc/rtustatus.cpp
subiec104/sub_iec104.cpp
zjd3100proc/zjd3100pro.cpp
)
set (APP_SRCS ${APP_SRCS}
third_party/json/jsoncpp.cpp)
set (APP_SRCS ${APP_SRCS}
third_party/base64/base64.c
third_party/md5/md5.c
third_party/aes/aes.c
third_party/aes/error.c
third_party/aes/platform_util.c)
set (APP_SRCS ${APP_SRCS}
third_party/uuid/clear.c
third_party/uuid/compare.c
third_party/uuid/copy.c
third_party/uuid/gen_uuid.c
third_party/uuid/isnull.c
third_party/uuid/pack.c
third_party/uuid/parse.c
third_party/uuid/unpack.c
third_party/uuid/unparse.c
third_party/uuid/uuid_time.c
third_party/uuid/randutils.c)
set (APP_SRCS ${APP_SRCS}
third_party/zlog/buf.c
third_party/zlog/category_table.c
third_party/zlog/category.c
third_party/zlog/conf.c
third_party/zlog/event.c
third_party/zlog/format.c
third_party/zlog/level_list.c
third_party/zlog/level.c
third_party/zlog/mdc.c
third_party/zlog/record_table.c
third_party/zlog/record.c
third_party/zlog/rotater.c
third_party/zlog/rule.c
third_party/zlog/spec.c
third_party/zlog/thread.c
third_party/zlog/zc_arraylist.c
third_party/zlog/zc_hashtable.c
third_party/zlog/zc_profile.c
third_party/zlog/zc_util.c
third_party/zlog/zlog.c)
if (USE_WEBSOCKET)
set (APP_SRCS ${APP_SRCS}
third_party/nopoll/nopoll.c
third_party/nopoll/nopoll_conn.c
third_party/nopoll/nopoll_conn_opts.c
third_party/nopoll/nopoll_listener.c
third_party/nopoll/nopoll_ctx.c
third_party/nopoll/nopoll_decl.c
third_party/nopoll/nopoll_io.c
third_party/nopoll/nopoll_log.c
third_party/nopoll/nopoll_msg.c)
set (APP_LIBS ${APP_LIBS} ssl crypto)
add_definitions(-DUSE_WEBSOCKET)
add_definitions(-DNOPOLL_OS_UNIX=1)
add_definitions(-DSHOW_DEBUG_LOG)
add_definitions(-DNOPOLL_HAVE_VASPRINTF=1)
add_definitions(-DNOPOLL_HAVE_TLSv10_ENABLED=1)
add_definitions(-DNOPOLL_HAVE_TLSv11_ENABLED=1)
add_definitions(-DNOPOLL_HAVE_TLSv12_ENABLED=1)
add_definitions(-DNOPOLL_HAVE_TLS_FLEXIBLE_ENABLED=1)
endif ()
if (USE_MQTT)
set(APP_SRCS ${APP_SRCS}
third_party/mqtt/actions.c
third_party/mqtt/callbacks.c
third_party/mqtt/connect.c
third_party/mqtt/handle_auth.c
third_party/mqtt/handle_connack.c
third_party/mqtt/handle_disconnect.c
third_party/mqtt/handle_ping.c
third_party/mqtt/handle_pubackcomp.c
third_party/mqtt/handle_publish.c
third_party/mqtt/handle_pubrec.c
third_party/mqtt/handle_pubrel.c
third_party/mqtt/handle_suback.c
third_party/mqtt/handle_unsuback.c
third_party/mqtt/helpers.c
third_party/mqtt/logging_mosq.c
third_party/mqtt/loop.c
third_party/mqtt/memory_mosq.c
third_party/mqtt/messages_mosq.c
third_party/mqtt/misc_mosq.c
third_party/mqtt/mosquitto.c
third_party/mqtt/net_mosq_ocsp.c
third_party/mqtt/net_mosq.c
third_party/mqtt/options.c
third_party/mqtt/packet_datatypes.c
third_party/mqtt/packet_mosq.c
third_party/mqtt/property_mosq.c
third_party/mqtt/read_handle.c
third_party/mqtt/send_connect.c
third_party/mqtt/send_disconnect.c
third_party/mqtt/send_mosq.c
third_party/mqtt/send_publish.c
third_party/mqtt/send_subscribe.c
third_party/mqtt/send_unsubscribe.c
third_party/mqtt/send_mosq.c
third_party/mqtt/socks_mosq.c
third_party/mqtt/srv_mosq.c
third_party/mqtt/strings_mosq.c
third_party/mqtt/thread_mosq.c
third_party/mqtt/time_mosq.c
third_party/mqtt/tls_mosq.c
third_party/mqtt/utf8_mosq.c
third_party/mqtt/util_mosq.c
third_party/mqtt/util_topic.c
third_party/mqtt/will_mosq.c)
# set (APP_SRCS ${APP_SRCS} hwmqtt/hwmqtt.cpp)
add_definitions(-DUSE_MQTT)
add_definitions(-DWITH_SOCKS)
add_definitions(-DWITH_THREADING)
add_definitions(-DWITH_UNIX_SOCKETS)
# add_definitions(-DWITH_TLS)
# add_definitions(-DWITH_TLS_PSK)
endif (USE_MQTT)
if (USE_SQLITE3)
set (APP_SRCS ${APP_SRCS}
third_party/sqlite/KompexSQLiteBlob.cpp
third_party/sqlite/KompexSQLiteDatabase.cpp
third_party/sqlite/KompexSQLiteStatement.cpp
third_party/sqlite/sqlite3.c)
add_definitions(-DUSE_SQLITE3)
endif ()
include_directories ("${CMAKE_CURRENT_BINARY_DIR}")
link_directories (${LINK_DIR})
if (UNIX)
set (APP_LIBS ${APP_LIBS} pthread)
set (APP_LIBS ${APP_LIBS} dl)
set (APP_LIBS ${APP_LIBS} rt)
#set (APP_LIBS ${APP_LIBS} websockets)
endif()
#add_link_options (-static)
add_executable (application ${APP_SRCS})
target_link_libraries (application ${APP_LIBS})