#--------------------------------------------------------
# The CMakeLists.txt for:  pCCU
# 复合管控器网关：FC <-> pPowerManger
#--------------------------------------------------------

if (${WIN32})
  SET(SYSTEM_LIBS wsock32)
else (${WIN32})
  SET(SYSTEM_LIBS m pthread)
endif (${WIN32})

# 复用仓库内 pPowerManger 的公共源码（相对路径引用，避免重复维护）
SET(PM_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../pPowerManger)

SET(SHARED_SRC
  ${PM_DIR}/logc/loguru.cpp
  ${PM_DIR}/sqlit3/sqlite3.c
  ${PM_DIR}/httpserver/mongoose.c
)

SET(CCU_PROTOCOL_SRC
  protocol/Frame.cpp
  protocol/Message.cpp
  protocol/MessageRegistry.cpp
  protocol/FcProtocol.cpp
  protocol/PmProtocol.cpp
)

SET(CCU_COMM_SRC
  comm/UdpEndpoint.cpp
  comm/LinkManager.cpp
)

SET(CCU_CORE_SRC
  core/SnapshotBuilder.cpp
)

SET(CCU_STORE_SRC
  store/DbStore.cpp
)

SET(CCU_WEB_SRC
  web/WebServer.cpp
)

SET(SRC
  ${SHARED_SRC}
  ${CCU_PROTOCOL_SRC}
  ${CCU_COMM_SRC}
  ${CCU_CORE_SRC}
  ${CCU_STORE_SRC}
  ${CCU_WEB_SRC}
  CCU.cpp
  CCU_Info.cpp
  main.cpp
)

ADD_EXECUTABLE(pCCU ${SRC})

TARGET_INCLUDE_DIRECTORIES(pCCU PRIVATE
  ${PM_DIR}
  ${PM_DIR}/sqlit3
  ${PM_DIR}/httpserver
  ${PM_DIR}/logc
)

TARGET_LINK_LIBRARIES(pCCU
  ${MOOS_LIBRARIES}
  apputil
  mbutil
  m
  pthread
  jsoncpp
  dl
  ${SYSTEM_LIBS}
)