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) # Boost find_package(Boost COMPONENTS regex system program_options REQUIRED) # Bluez pkg_check_modules(BLUEZ bluez REQUIRED) # pthreads find_package(Threads REQUIRED) pkg_check_modules(PQXX libpqxx REQUIRED) find_path(LOG4CPLUS_INCLUDE_DIRECTORIES log4cplus/logger.h) if(LOG4CPLUS_INCLUDE_DIRECTORIES MATCHES NOTFOUND) message(FATAL_ERROR "Could not find log4cplus header files") endif() find_library(LOG4CPLUS_LIBRARIES log4cplus) if(LOG4CPLUS_LIBRARIES MATCHES NOTFOUND) message(FATAL_ERROR "Could not find log4cplus library files") endif() add_executable(generate generate.cpp) file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated) add_custom_command( OUTPUT generated/apps-list.gen.h COMMAND generate ${CMAKE_CURRENT_BINARY_DIR}/generated/apps-list.gen.h ${APPS} DEPENDS generate ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt) foreach(app ${APPS}) list(APPEND APPS_SOURCES ${app}.h) endforeach() list(APPEND SOURCES ${CMAKE_CURRENT_BINARY_DIR}/generated/apps-list.gen.h) list(APPEND SOURCES SoilMoisture.cpp SoilMoisture.h) list(APPEND SOURCES apps.cpp apps.h) add_executable(launcher launcher.cpp ${SOURCES} ${APPS_SOURCES}) target_include_directories(launcher PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/generated PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC "${PROJECT_SOURCE_DIR}/include" PUBLIC "${PROJECT_SOURCE_DIR}/json/src" PUBLIC "${PROJECT_SOURCE_DIR}/sensor/include" PUBLIC "${LOG4CPLUS_INCLUDE_DIRECTORIES}") target_link_libraries(launcher ble) target_link_libraries(launcher trygvis-sensor) target_link_libraries(launcher ${Boost_LIBRARIES}) target_link_libraries(launcher ${BLUEZ_LIBRARIES}) target_link_libraries(launcher ${PQXX_LIBRARIES}) target_link_libraries(launcher ${LOG4CPLUS_LIBRARIES}) target_link_libraries(launcher ${CMAKE_THREAD_LIBS_INIT}) foreach(app ${APPS}) add_custom_command( TARGET launcher POST_BUILD COMMAND ln -sf launcher ${app}) endforeach()