diff options
author | Jiacheng Guo <gjc@google.com> | 2021-01-28 03:17:17 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-27 11:17:17 -0800 |
commit | 5de1086daa12fda3d6d2b8b7d0f8954b709d5f66 (patch) | |
tree | 96014c24173ace0145b08049e97fb20483260397 | |
parent | b77f143d76925ddeda9cd39f0f3a0db0e46c35ee (diff) | |
download | ot-br-posix-5de1086daa12fda3d6d2b8b7d0f8954b709d5f66.tar.gz |
[build] eliminate generated files from the source directory (#687)
This makes the build more deterministic and prevents incremental build
issues.
-rw-r--r-- | Android.mk | 29 | ||||
-rw-r--r-- | src/dbus/server/CMakeLists.txt | 17 |
2 files changed, 33 insertions, 13 deletions
@@ -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" |