#--------------------------------------------------------
# The CMakeLists.txt for:                       pPowerManger
# Author(s):                              
#--------------------------------------------------------

# Set System Specific Libraries
if (${WIN32})
  # Windows Libraries
  SET(SYSTEM_LIBS
     wsock32 )
else (${WIN32})
  # Linux and Apple Libraries
  SET(SYSTEM_LIBS
      m
      pthread )
endif (${WIN32})

# Use local SQLite3 source
SET(SQLITE_SRC
  sqlit3/SQLite.cpp
  sqlit3/sqlite3.c
)

SET(HTTP_SRC
  httpserver/mongoose.c
  httpserver/httpserver.cpp)

SET(LOG_SRC
  logc/loguru.cpp)

SET(UDP_COMM_SRC
  udpcomm/udpComm.cpp)

SET(FSMLIB_SRC
  fsm/PowerManagerFsm.cpp  
  fsm/CruiseMode.cpp
  fsm/DJMode.cpp
  fsm/FaultState.cpp
  fsm/FloatAdjust.cpp
  fsm/FloatDown.cpp
  fsm/HighSpeedMode.cpp
  fsm/InitState.cpp
  fsm/RemoteControl.cpp
  fsm/ShoreBasedReady.cpp
  fsm/StandbyState.cpp
  fsm/SurfaceSurvey.cpp
  fsm/UnderwaterSurvey.cpp
  fsm/WaterBasedReady.cpp
)

SET(SRC
  ${FSMLIB_SRC}
  ${SQLITE_SRC}
  ${HTTP_SRC}
  ${UDP_COMM_SRC}
  ${LOG_SRC}
  PowerManger.cpp
  PowerManger_Info.cpp
  # udpComm.cpp
  main.cpp
  # SQLiteDB.cpp
  driver.cpp
  LowerCommManager.cpp
  UpperCommManager.cpp
  # loguru.cpp
)

ADD_EXECUTABLE(pPowerManger ${SRC})

TARGET_INCLUDE_DIRECTORIES(pPowerManger PRIVATE sqlit3)

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

# Add SQLiteDB static library
SET(UDPCOMM_SRC
  udpComm.cpp
)

# SET(SQLITEDB_SRC
#   SQLiteDB.cpp
# )

SET(DRIVER_SRC
  driver.cpp)

# SET(POWERMANGE_SRC
#   PowerManger.cpp
#   PowerManger_Info.cpp
#   udpComm.cpp
#   SQLiteDB.cpp
#   driver.cpp
#   PowerManagerFsm.cpp)

# ADD_LIBRARY(SQLiteDB STATIC ${SQLITEDB_SRC})
# ADD_LIBRARY(UDPComm STATIC ${UDPCOMM_SRC})
# # ADD_LIBRARY(FSMLib STATIC ${FSMLIB_SRC})
# ADD_LIBRARY(Driver STATIC ${DRIVER_SRC})
# ADD_LIBRARY(PowerMange STATIC ${POWERMANGE_SRC})
