Android.mk: Intermediate output paths may already be absolute
That is the case when OUT_DIR_COMMON_BASE is set. Only prefix paths with AOSP_ABSOLUTE_PATH if they're relative. Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16674>
This commit is contained in:
parent
5feb025086
commit
a7d6365f20
|
@ -21,16 +21,12 @@
|
||||||
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
# DEALINGS IN THE SOFTWARE.
|
# DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
# Turn "dir1/dir2/dir3/dir4" into "../../../../"
|
|
||||||
define relative_top_path
|
|
||||||
$(eval __s:=) \
|
|
||||||
$(foreach tmp,$(subst /,$(space),$1),$(eval __s:=$(__s)../)) \
|
|
||||||
$(__s)
|
|
||||||
endef
|
|
||||||
|
|
||||||
MY_PATH := $(call my-dir)
|
MY_PATH := $(call my-dir)
|
||||||
|
|
||||||
AOSP_ABSOLUTE_PATH := $(realpath .)
|
AOSP_ABSOLUTE_PATH := $(realpath .)
|
||||||
|
define relative-to-absolute
|
||||||
|
$(if $(patsubst /%,,$1),$(AOSP_ABSOLUTE_PATH)/$1,$1)
|
||||||
|
endef
|
||||||
|
|
||||||
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
|
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
|
||||||
LOCAL_MODULE := meson.dummy.$(LOCAL_MULTILIB)
|
LOCAL_MODULE := meson.dummy.$(LOCAL_MULTILIB)
|
||||||
|
@ -84,7 +80,7 @@ MESA3D_GLES_BINS := \
|
||||||
|
|
||||||
MESON_GEN_NINJA := \
|
MESON_GEN_NINJA := \
|
||||||
cd $(MESON_OUT_DIR) && PATH=/usr/bin:/usr/local/bin:$$PATH meson ./build \
|
cd $(MESON_OUT_DIR) && PATH=/usr/bin:/usr/local/bin:$$PATH meson ./build \
|
||||||
--cross-file $(AOSP_ABSOLUTE_PATH)/$(MESON_GEN_DIR)/aosp_cross \
|
--cross-file $(call relative-to-absolute,$(MESON_GEN_DIR))/aosp_cross \
|
||||||
--buildtype=release \
|
--buildtype=release \
|
||||||
-Ddri-search-path=/vendor/$(MESA3D_LIB_DIR)/dri \
|
-Ddri-search-path=/vendor/$(MESA3D_LIB_DIR)/dri \
|
||||||
-Dplatforms=android \
|
-Dplatforms=android \
|
||||||
|
@ -173,7 +169,7 @@ endef
|
||||||
|
|
||||||
define m-lld-flags-cleaned
|
define m-lld-flags-cleaned
|
||||||
$(subst prebuilts/,$(AOSP_ABSOLUTE_PATH)/prebuilts/, \
|
$(subst prebuilts/,$(AOSP_ABSOLUTE_PATH)/prebuilts/, \
|
||||||
$(subst out/,$(AOSP_ABSOLUTE_PATH)/out/, \
|
$(subst $(OUT_DIR)/,$(call relative-to-absolute,$(OUT_DIR))/, \
|
||||||
$(subst -Wl$(comma)--fatal-warnings,, \
|
$(subst -Wl$(comma)--fatal-warnings,, \
|
||||||
$(subst -Wl$(comma)--no-undefined-version,, \
|
$(subst -Wl$(comma)--no-undefined-version,, \
|
||||||
$(subst -Wl$(comma)--gc-sections,, \
|
$(subst -Wl$(comma)--gc-sections,, \
|
||||||
|
@ -208,11 +204,28 @@ define filter-c-flags
|
||||||
$(patsubst -W%,, $1))
|
$(patsubst -W%,, $1))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define m-c-abs-includes
|
define nospace-includes
|
||||||
$(subst -isystem , -isystem $(AOSP_ABSOLUTE_PATH)/, \
|
$(subst $(space)-isystem$(space),$(space)-isystem, \
|
||||||
$(subst -I, -I$(AOSP_ABSOLUTE_PATH)/, \
|
$(subst $(space)-I$(space),$(space)-I, \
|
||||||
$(subst -I , -I, \
|
$(strip $(c-includes))))
|
||||||
$(c-includes))))
|
endef
|
||||||
|
|
||||||
|
# Ensure include paths are always absolute
|
||||||
|
# When OUT_DIR_COMMON_BASE env variable is set the AOSP/KATI will use absolute paths
|
||||||
|
# for headers in intermediate output directories, but relative for all others.
|
||||||
|
define abs-include
|
||||||
|
$(strip \
|
||||||
|
$(if $(patsubst -I%,,$1),\
|
||||||
|
$(if $(patsubst -isystem/%,,$1),\
|
||||||
|
$(subst -isystem,-isystem$(AOSP_ABSOLUTE_PATH)/,$1),\
|
||||||
|
$1\
|
||||||
|
),\
|
||||||
|
$(if $(patsubst -I/%,,$1),\
|
||||||
|
$(subst -I,-I$(AOSP_ABSOLUTE_PATH)/,$1),\
|
||||||
|
$1\
|
||||||
|
)\
|
||||||
|
)
|
||||||
|
)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
$(MESON_GEN_FILES_TARGET): PREPROCESS_MESON_CONFIGS:=$(PREPROCESS_MESON_CONFIGS)
|
$(MESON_GEN_FILES_TARGET): PREPROCESS_MESON_CONFIGS:=$(PREPROCESS_MESON_CONFIGS)
|
||||||
|
@ -220,8 +233,10 @@ $(MESON_GEN_FILES_TARGET): MESON_GEN_DIR:=$(MESON_GEN_DIR)
|
||||||
$(MESON_GEN_FILES_TARGET): $(sort $(shell find -L $(MESA3D_TOP) -not -path '*/\.*'))
|
$(MESON_GEN_FILES_TARGET): $(sort $(shell find -L $(MESA3D_TOP) -not -path '*/\.*'))
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
echo -e "[properties]\n" \
|
echo -e "[properties]\n" \
|
||||||
"c_args = [$(foreach flag, $(call filter-c-flags,$(m-c-flags) $(m-c-abs-includes)),'$(flag)', )'']\n" \
|
"c_args = [$(foreach flag,$(call filter-c-flags,$(m-c-flags)),'$(flag)', ) \
|
||||||
"cpp_args = [$(foreach flag, $(call filter-c-flags,$(m-cpp-flags) $(m-c-abs-includes)),'$(flag)', )'']\n" \
|
$(foreach inc,$(nospace-includes),'$(call abs-include,$(inc))', )'']\n" \
|
||||||
|
"cpp_args = [$(foreach flag,$(call filter-c-flags,$(m-cpp-flags)),'$(flag)', ) \
|
||||||
|
$(foreach inc,$(nospace-includes),'$(call abs-include,$(inc))', )'']\n" \
|
||||||
"c_link_args = [$(foreach flag, $(m-lld-flags-cleaned),'$(flag)',)'']\n" \
|
"c_link_args = [$(foreach flag, $(m-lld-flags-cleaned),'$(flag)',)'']\n" \
|
||||||
"cpp_link_args = [$(foreach flag, $(m-lld-flags-cleaned),'$(flag)',)'']\n" \
|
"cpp_link_args = [$(foreach flag, $(m-lld-flags-cleaned),'$(flag)',)'']\n" \
|
||||||
"needs_exe_wrapper = true\n" \
|
"needs_exe_wrapper = true\n" \
|
||||||
|
@ -231,7 +246,7 @@ $(MESON_GEN_FILES_TARGET): $(sort $(shell find -L $(MESA3D_TOP) -not -path '*/\.
|
||||||
"cpp = [$(foreach arg,$(PRIVATE_CXX),'$(subst prebuilts/,$(AOSP_ABSOLUTE_PATH)/prebuilts/,$(arg))',)'']\n" \
|
"cpp = [$(foreach arg,$(PRIVATE_CXX),'$(subst prebuilts/,$(AOSP_ABSOLUTE_PATH)/prebuilts/,$(arg))',)'']\n" \
|
||||||
"c_ld = 'lld'\n" \
|
"c_ld = 'lld'\n" \
|
||||||
"cpp_ld = 'lld'\n\n" \
|
"cpp_ld = 'lld'\n\n" \
|
||||||
"pkgconfig = ['env', 'PKG_CONFIG_LIBDIR=' + '$(AOSP_ABSOLUTE_PATH)/$(MESON_GEN_DIR)', '/usr/bin/pkg-config']\n\n" \
|
"pkgconfig = ['env', 'PKG_CONFIG_LIBDIR=' + '$(call relative-to-absolute,$(MESON_GEN_DIR))', '/usr/bin/pkg-config']\n\n" \
|
||||||
"llvm-config = '/dev/null'\n" \
|
"llvm-config = '/dev/null'\n" \
|
||||||
"[host_machine]\n" \
|
"[host_machine]\n" \
|
||||||
"system = 'linux'\n" \
|
"system = 'linux'\n" \
|
||||||
|
@ -270,7 +285,7 @@ $(MESON_OUT_DIR)/install/.install.timestamp: MESON_BUILD:=$(MESON_BUILD)
|
||||||
$(MESON_OUT_DIR)/install/.install.timestamp: $(MESON_OUT_DIR)/.build.timestamp
|
$(MESON_OUT_DIR)/install/.install.timestamp: $(MESON_OUT_DIR)/.build.timestamp
|
||||||
rm -rf $(dir $@)
|
rm -rf $(dir $@)
|
||||||
mkdir -p $(dir $@)
|
mkdir -p $(dir $@)
|
||||||
DESTDIR=$(AOSP_ABSOLUTE_PATH)/$(dir $@) $(MESON_BUILD) install
|
DESTDIR=$(call relative-to-absolute,$(dir $@)) $(MESON_BUILD) install
|
||||||
$(MESON_COPY_LIBGALLIUM)
|
$(MESON_COPY_LIBGALLIUM)
|
||||||
touch $@
|
touch $@
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue