From 23ba612aada2d24f00b3f7a890f9337fae84ddac Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 20 Jul 2016 12:22:57 -0700 Subject: [PATCH] Split -isystem headers into separate variables Split the variables that contain header directories into ones that should be prefixed with -isystem and ones that should be prefixed with -I in preparation for moving some headers from -isystem to -I. Add $(wildcard) around SRC_HEADERS to match the soong behavior, and move users of SRC_HEADERS from config.mk to binary.mk so that the exported soong value is present. Test: no changes to build.ninja compile rules Change-Id: Iadecbbf4351a01e53cb57e721d31f4f836bb82d9 --- core/binary.mk | 17 ++++++++++++++--- core/config.mk | 34 ++++++++++++++++++++-------------- core/definitions.mk | 5 ++++- 3 files changed, 38 insertions(+), 18 deletions(-) diff --git a/core/binary.mk b/core/binary.mk index e78f6a59b6..41520c23a1 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -337,11 +337,16 @@ my_asflags += -D__ASSEMBLY__ ########################################################### ifndef LOCAL_IS_HOST_MODULE ifdef LOCAL_SDK_VERSION -my_target_global_c_includes := $(my_ndk_stl_include_path) $(my_ndk_sysroot_include) +my_target_global_c_includes := +my_target_global_c_system_includes := $(my_ndk_stl_include_path) $(my_ndk_sysroot_include) my_target_global_cppflags := $(my_ndk_stl_cppflags) else -my_target_global_c_includes := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_PROJECT_INCLUDES) \ +my_target_global_c_includes := $(SRC_HEADERS) \ + $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_PROJECT_INCLUDES) \ $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_C_INCLUDES) +my_target_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \ + $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_PROJECT_SYSTEM_INCLUDES) \ + $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_C_SYSTEM_INCLUDES) my_target_global_cppflags := endif # LOCAL_SDK_VERSION @@ -358,6 +363,7 @@ my_target_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_LDFLAGS) endif # my_clang $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_INCLUDES := $(my_target_global_c_includes) +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_SYSTEM_INCLUDES := $(my_target_global_c_system_includes) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CFLAGS := $(my_target_global_cflags) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CONLYFLAGS := $(my_target_global_conlyflags) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_CPPFLAGS := $(my_target_global_cppflags) @@ -365,8 +371,12 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_GLOBAL_LDFLAGS := $(my_target_glob else # LOCAL_IS_HOST_MODULE -my_host_global_c_includes := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \ +my_host_global_c_includes := $(SRC_HEADERS) \ + $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_INCLUDES) \ $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_INCLUDES) +my_host_global_c_system_includes := $(SRC_SYSTEM_HEADERS) \ + $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)PROJECT_SYSTEM_INCLUDES) \ + $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)C_SYSTEM_INCLUDES) ifeq ($(my_clang),true) my_host_global_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)CLANG_$(my_prefix)GLOBAL_CFLAGS) @@ -381,6 +391,7 @@ my_host_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)GLOBAL_LDFLA endif # my_clang $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_INCLUDES := $(my_host_global_c_includes) +$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_GLOBAL_C_SYSTEM_INCLUDES := $(my_host_global_c_system_includes) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CFLAGS := $(my_host_global_cflags) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CONLYFLAGS := $(my_host_global_conlyflags) $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HOST_GLOBAL_CPPFLAGS := $(my_host_global_cppflags) diff --git a/core/config.mk b/core/config.mk index d497dbbda1..6f504b23be 100644 --- a/core/config.mk +++ b/core/config.mk @@ -39,17 +39,17 @@ export PYTHONDONTWRITEBYTECODE := 1 # TODO: Enforce some kind of layering; only add include paths # when a module links against a particular library. # TODO: See if we can remove most of these from the global list. -SRC_HEADERS := \ - $(TOPDIR)system/core/include \ - $(TOPDIR)system/media/audio/include \ - $(TOPDIR)hardware/libhardware/include \ - $(TOPDIR)hardware/libhardware_legacy/include \ - $(TOPDIR)hardware/ril/include \ - $(TOPDIR)libnativehelper/include \ - $(TOPDIR)frameworks/native/include \ - $(TOPDIR)frameworks/native/opengl/include \ - $(TOPDIR)frameworks/av/include \ - $(TOPDIR)frameworks/base/include +SRC_SYSTEM_HEADERS := \ + $(wildcard system/core/include) \ + $(wildcard system/media/audio/include) \ + $(wildcard hardware/libhardware/include) \ + $(wildcard hardware/libhardware_legacy/include) \ + $(wildcard hardware/ril/include) \ + $(wildcard libnativehelper/include) \ + $(wildcard frameworks/native/include) \ + $(wildcard frameworks/native/opengl/include) \ + $(wildcard frameworks/av/include) \ + $(wildcard frameworks/base/include) SRC_TARGET_DIR := $(TOPDIR)build/target SRC_API_DIR := $(TOPDIR)prebuilts/sdk/api SRC_SYSTEM_API_DIR := $(TOPDIR)prebuilts/sdk/system-api @@ -663,28 +663,34 @@ endif HOST_GLOBAL_LD_DIRS := -L$(HOST_OUT_INTERMEDIATE_LIBRARIES) TARGET_GLOBAL_LD_DIRS := -L$(TARGET_OUT_INTERMEDIATE_LIBRARIES) -HOST_PROJECT_INCLUDES:= $(SRC_HEADERS) $(HOST_OUT_HEADERS) -TARGET_PROJECT_INCLUDES:= $(SRC_HEADERS) $(TARGET_OUT_HEADERS) \ +HOST_PROJECT_INCLUDES := +HOST_PROJECT_SYSTEM_INCLUDES := $(HOST_OUT_HEADERS) +TARGET_PROJECT_INCLUDES := +TARGET_PROJECT_SYSTEM_INCLUDES := $(TARGET_OUT_HEADERS) \ $(TARGET_DEVICE_KERNEL_HEADERS) $(TARGET_BOARD_KERNEL_HEADERS) \ $(TARGET_PRODUCT_KERNEL_HEADERS) ifdef TARGET_2ND_ARCH $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_LD_DIRS := -L$($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATE_LIBRARIES) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_PROJECT_INCLUDES := $(TARGET_PROJECT_INCLUDES) +$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_PROJECT_SYSTEM_INCLUDES := $(TARGET_PROJECT_SYSTEM_INCLUDES) endif ifdef HOST_2ND_ARCH $(HOST_2ND_ARCH_VAR_PREFIX)HOST_GLOBAL_LD_DIRS := -L$($(HOST_2ND_ARCH_VAR_PREFIX)HOST_OUT_INTERMEDIATE_LIBRARIES) $(HOST_2ND_ARCH_VAR_PREFIX)HOST_PROJECT_INCLUDES := $(HOST_PROJECT_INCLUDES) +$(HOST_2ND_ARCH_VAR_PREFIX)HOST_PROJECT_SYSTEM_INCLUDES := $(HOST_PROJECT_SYSTEM_INCLUDES) endif ifdef HOST_CROSS_OS HOST_CROSS_GLOBAL_LD_DIRS := -L$(HOST_CROSS_OUT_INTERMEDIATE_LIBRARIES) -HOST_CROSS_PROJECT_INCLUDES:= $(SRC_HEADERS) $(HOST_CROSS_OUT_HEADERS) +HOST_CROSS_PROJECT_INCLUDES := +HOST_CROSS_PROJECT_SYSTEM_INCLUDES := $(HOST_CROSS_OUT_HEADERS) ifdef HOST_CROSS_2ND_ARCH $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_GLOBAL_LD_DIRS := -L$($(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_OUT_INTERMEDIATE_LIBRARIES) $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_PROJECT_INCLUDES:= $(HOST_CROSS_PROJECT_INCLUDES) +$(HOST_CROSS_2ND_ARCH_VAR_PREFIX)HOST_CROSS_PROJECT_SYSTEM_INCLUDES:= $(HOST_CROSS_PROJECT_SYSTEM_INCLUDES) endif endif diff --git a/core/definitions.mk b/core/definitions.mk index 6bd9cf092f..afb4558d25 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1156,9 +1156,12 @@ define c-includes $(addprefix -I , $(PRIVATE_C_INCLUDES)) \ $$(cat $(PRIVATE_IMPORT_INCLUDES))\ $(if $(PRIVATE_NO_DEFAULT_COMPILER_FLAGS),,\ + $(addprefix -I ,\ + $(filter-out $(PRIVATE_C_INCLUDES), \ + $(PRIVATE_GLOBAL_C_INCLUDES))) \ $(addprefix -isystem ,\ $(filter-out $(PRIVATE_C_INCLUDES), \ - $(PRIVATE_GLOBAL_C_INCLUDES)))) + $(PRIVATE_GLOBAL_C_SYSTEM_INCLUDES)))) endef ###########################################################