From 2ca532122d60cff4dbdc7f24fbc5783bcc5ad68d Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Tue, 12 Apr 2016 20:06:47 +0200 Subject: Soil Moisture: Adding support for controlling lights. Bluetooth: refectorying, trying to be more c++ idiomatic and modern. SM/Diller: adding bluetooth to Diller bridge. --- apps/CMakeLists.txt | 80 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 35 deletions(-) (limited to 'apps/CMakeLists.txt') diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt index 34fbd30..98c9915 100644 --- a/apps/CMakeLists.txt +++ b/apps/CMakeLists.txt @@ -1,21 +1,3 @@ -list(APPEND APPS ble-inspect-device) -list(APPEND APPS ble-scan) -list(APPEND APPS sample-add-timestamp) -list(APPEND APPS sample-convert) -list(APPEND APPS sample-select) -list(APPEND APPS sm-db-insert) -list(APPEND APPS sm-db-select) -list(APPEND APPS sm-get-value) -list(APPEND APPS sm-serial-read) -list(APPEND APPS sm-serial-read-all) - -list(APPEND INCLUDE_DIRECTORIES - ${CMAKE_CURRENT_SOURCE_DIR} - "${PROJECT_SOURCE_DIR}/include" - "${PROJECT_SOURCE_DIR}/json/src" - "${PROJECT_SOURCE_DIR}/gsl/include" - "${PROJECT_SOURCE_DIR}/sensor/include") - #### Find all packages function(find_header_and_lib PREFIX HEADER_NAME LIBRARY_NAME) @@ -70,8 +52,6 @@ list(APPEND LIBRARIES "${LOG4CPLUS_LIBRARY}") find_header_and_lib(MOSQUITTO mosquitto.h mosquitto) if(MOSQUITTO_OK STREQUAL "OK") - list(APPEND APPS mqtt-publish) - set(mqtt-publish_SOURCES mqtt_support.cpp mqtt_support.h) list(APPEND INCLUDE_DIRECTORIES "${MOSQUITTO_INCLUDE_DIRECTORY}") list(APPEND LIBRARIES "${MOSQUITTO_LIBRARY}") else() @@ -81,26 +61,56 @@ endif() message(STATUS "Dependency summary:") message(STATUS "Log4cplus: -I${LOG4CPLUS_INCLUDE_DIRECTORY}, -L${LOG4CPLUS_LIBRARY}") message(STATUS "Mosquitto: -I${MOSQUITTO_INCLUDE_DIRECTORY}, -L${MOSQUITTO_LIBRARY}") -message(STATUS "Mosquittopp: -I${MOSQUITTOPP_INCLUDE_DIRECTORY}, -L${MOSQUITTOPP_LIBRARY}") add_library(apps OBJECT apps.cpp apps.h - SoilMoisture.cpp SoilMoisture.h) -target_include_directories(apps PUBLIC ${INCLUDE_DIRECTORIES}) + SoilMoisture.cpp SoilMoisture.h + diller_util.cpp diller_util.h) +target_include_directories(apps PUBLIC + "${PROJECT_SOURCE_DIR}/include" + "${PROJECT_SOURCE_DIR}/json/src" + ) -foreach(app ${APPS}) - add_executable(${app} ${app}.cpp $ ${${app}_SOURCES}) +function(add_app) + cmake_parse_arguments(ADD_APP "" "NAME" "EXTRA" ${ARGN}) - target_include_directories(${app} PUBLIC ${INCLUDE_DIRECTORIES}) + set(app "${ADD_APP_NAME}") - target_link_libraries(${app} - ble - trygvis-sensor - ${LIBRARIES} - ${Boost_LIBRARIES} - ${BLUEZ_LIBRARIES} - ${PQXX_LIBRARIES} - ${CMAKE_THREAD_LIBS_INIT}) + add_executable(${app} ${app}.cpp $ "${ADD_APP_EXTRA}") + + target_include_directories(${app} PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} + "${PROJECT_SOURCE_DIR}/include" + "${PROJECT_SOURCE_DIR}/json/src" + "${PROJECT_SOURCE_DIR}/gsl/include" + "${PROJECT_SOURCE_DIR}/sensor/include" + ) + target_link_libraries(${app} + ble + trygvis-sensor + ${LIBRARIES} + ${Boost_LIBRARIES} + ${BLUEZ_LIBRARIES} + ${PQXX_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ) install(TARGETS ${app} RUNTIME DESTINATION bin) -endforeach() +endfunction() + +add_app(NAME ble-inspect-device) +add_app(NAME ble-scan) +add_app(NAME sample-add-timestamp) +add_app(NAME sample-convert) +add_app(NAME sample-select) +add_app(NAME sm-db-insert) +add_app(NAME sm-db-select) +add_app(NAME sm-get-value) +add_app(NAME sm-serial-read) +add_app(NAME sm-serial-read-all) + +if(MOSQUITTO_OK STREQUAL "OK") + set(MQTT_SOURCES mqtt_support.cpp mqtt_support.h) + add_app(NAME mqtt-publish EXTRA "${MQTT_SOURCES}") + add_app(NAME sm-diller EXTRA "${MQTT_SOURCES}") +endif() -- cgit v1.2.3