aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Android.mk29
-rw-r--r--src/dbus/server/CMakeLists.txt17
2 files changed, 33 insertions, 13 deletions
diff --git a/Android.mk b/Android.mk
index 468ec38a..e64f9422 100644
--- a/Android.mk
+++ b/Android.mk
@@ -64,18 +64,21 @@ include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
-$(LOCAL_PATH)/src/dbus/server/dbus_thread_object.cpp: $(LOCAL_PATH)/src/dbus/server/introspect.hpp
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE := otbr-agent
+LOCAL_MODULE_TAGS := eng
+LOCAL_SHARED_LIBRARIES := libdbus
+
+OTBR_GEN_HEADER_DIR := $(local-intermediates-dir)/gen
+OTBR_GEN_DBUS_INTROSPECT_HEADER := $(OTBR_GEN_HEADER_DIR)/dbus/server/introspect.hpp
-$(LOCAL_PATH)/src/dbus/server/introspect.hpp: $(LOCAL_PATH)/src/dbus/server/introspect.xml
+$(OTBR_GEN_DBUS_INTROSPECT_HEADER): $(LOCAL_PATH)/src/dbus/server/introspect.xml
+ mkdir -p $(OTBR_GEN_HEADER_DIR)/dbus/server
echo 'R"INTROSPECT(' > $@
cat $+ >> $@
echo ')INTROSPECT"' >> $@
-
-LOCAL_MODULE_CLASS := EXECUTABLES
-LOCAL_MODULE := otbr-agent
-LOCAL_MODULE_TAGS := eng
-LOCAL_SHARED_LIBRARIES := libdbus
+$(LOCAL_PATH)/src/dbus/server/dbus_thread_object.cpp: $(OTBR_GEN_HEADER_DIR)/dbus/server/introspect.hpp
ifneq ($(ANDROID_NDK),1)
LOCAL_SHARED_LIBRARIES += libcutils
@@ -89,6 +92,7 @@ LOCAL_C_INCLUDES := \
external/openthread/include \
external/openthread/src \
external/openthread/src/posix/platform/include \
+ $(OTBR_GEN_HEADER_DIR) \
$(OTBR_PROJECT_INCLUDES)
LOCAL_CFLAGS += -Wall -Wextra -Wno-unused-parameter
@@ -100,6 +104,8 @@ LOCAL_CFLAGS += \
LOCAL_CPPFLAGS += -std=c++14
+LOCAL_GENERATED_SOURCES = $(OTBR_GEN_DBUS_INTROSPECT_HEADER)
+
LOCAL_SRC_FILES := \
src/agent/agent_instance.cpp \
src/agent/instance_params.cpp \
@@ -151,9 +157,14 @@ OTBR_AGENT_USER ?= root
OTBR_AGENT_GROUP ?= root
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/dbus-1/system.d
-LOCAL_SRC_FILES := src/agent/otbr-agent.conf
-$(LOCAL_PATH)/src/agent/otbr-agent.conf: $(LOCAL_PATH)/src/agent/otbr-agent.conf.in
+OTBR_GEN_DBUS_CONF_DIR := $(local-intermediates-dir)/gen
+$(OTBR_GEN_DBUS_CONF_DIR)/otbr-agent.conf: $(LOCAL_PATH)/src/agent/otbr-agent.conf.in
+ mkdir -p $(OTBR_GEN_DBUS_CONF_DIR)
sed -e 's/@OTBR_AGENT_USER@/$(OTBR_AGENT_USER)/g' -e 's/@OTBR_AGENT_GROUP@/$(OTBR_AGENT_GROUP)/g' $< > $@
+# Dirty hack for Android.mk to copy config files from the intermediate directory.
+LOCAL_PATH := $(local-intermediates-dir)
+LOCAL_SRC_FILES := gen/otbr-agent.conf
+
include $(BUILD_PREBUILT)
endif # ifeq ($(OTBR_ENABLE_ANDROID_MK),1)
diff --git a/src/dbus/server/CMakeLists.txt b/src/dbus/server/CMakeLists.txt
index 6d7aba58..64188717 100644
--- a/src/dbus/server/CMakeLists.txt
+++ b/src/dbus/server/CMakeLists.txt
@@ -26,10 +26,13 @@
# POSSIBILITY OF SUCH DAMAGE.
#
-file(READ introspect.xml OTBR_DBUS_INTROSPECT)
-file(WRITE introspect.hpp "R\"INTROSPECT(")
-file(APPEND introspect.hpp ${OTBR_DBUS_INTROSPECT})
-file(APPEND introspect.hpp ")INTROSPECT\"")
+add_custom_target(otbr-dbus-introspect-header ALL
+ COMMAND echo "R\"INTROSPECT(" > introspect.hpp
+ COMMAND cat ${CMAKE_CURRENT_SOURCE_DIR}/introspect.xml >> introspect.hpp
+ COMMAND echo ")INTROSPECT\"" >> introspect.hpp
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ VERBATIM
+)
option(OTBR_ENABLE_LEGACY "enable legacy support")
@@ -40,6 +43,12 @@ add_library(otbr-dbus-server STATIC
error_helper.cpp
)
+target_include_directories(otbr-dbus-server PRIVATE
+ ${PROJECT_BINARY_DIR}/src
+)
+
+add_dependencies(otbr-dbus-server otbr-dbus-introspect-header)
+
if(OTBR_ENABLE_LEGACY)
target_compile_definitions(otbr-dbus-server PRIVATE
"OTBR_ENABLE_LEGACY=1"