set(ambd_headers core.h imainloop.h pluginloader.h glibmainloop.h)
set(ambd_sources core.cpp main.cpp pluginloader.cpp glibmainloop.cpp imainloop.h)

pkg_check_modules(gio REQUIRED gio-2.0)

if(qtmainloop)

	message(STATUS "using Qt mainloop")

	find_package(Qt5Core)
	if(Qt5Core_FOUND)
		set(QT_INCLUDE_DIRS ${Qt5Core_INCLUDE_DIRS})
		set(QT_LIBRARIES ${Qt5Core_LIBRARIES})
		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
		add_definitions(${Qt5Core_DEFINITIONS})

		set(include_dirs ${include_dirs} ${QT_INCLUDE_DIRS})
		set(link_libraries ${link_libraries} ${QT_LIBRARIES})

		add_definitions(-DQT_NO_KEYWORDS)
		add_definitions(-DUSE_QT_CORE)

		set(qtmainloopplugin_headers qtmainloop.h)
		set(qtmainloopplugin_sources qtmainloop.cpp)

		add_library(qtmainloopplugin MODULE ${qtmainloopplugin_sources})
		set_target_properties(qtmainloopplugin PROPERTIES PREFIX "")
		target_link_libraries(qtmainloopplugin amb -L${CMAKE_CURRENT_BINARY_DIR}/lib ${link_libraries})

		install(TARGETS qtmainloopplugin LIBRARY DESTINATION ${LIB_INSTALL_DIR}/automotive-message-broker)
	endif(Qt5Core_FOUND)
endif(qtmainloop)

add_executable(ambd ${ambd_sources})

include_directories(${include_dirs} )
target_link_libraries(ambd ${link_libraries} dl amb ${gio_LIBRARIES})

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.in.json ${CMAKE_CURRENT_BINARY_DIR}/config @ONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/ambd.in ${CMAKE_CURRENT_BINARY_DIR}/init.d/ambd @ONLY)

install(TARGETS ambd RUNTIME DESTINATION bin)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/config DESTINATION /etc/ambd)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/init.d/ambd
    DESTINATION /etc/init.d/
    PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
