Loading core/base_rules.mk +4 −0 Original line number Diff line number Diff line Loading @@ -516,7 +516,11 @@ ifneq ($(LOCAL_INSTALLED_MODULE),$(my_default_test_module)) $(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD := $(LOCAL_POST_INSTALL_CMD) $(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE) @echo "Install: $@" ifeq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) $(copy-file-or-link-to-new-target) else $(copy-file-to-new-target) endif $(PRIVATE_POST_INSTALL_CMD) endif Loading core/definitions.mk +19 −0 Original line number Diff line number Diff line Loading @@ -2554,6 +2554,18 @@ $(hide) rm -f $@ $(hide) cp $< $@ endef # The same as copy-file-to-new-target, but preserve symlinks. Symlinks are # converted to absolute to not break. define copy-file-or-link-to-new-target @mkdir -p $(dir $@) $(hide) rm -f $@ $(hide) if [ -h $< ]; then \ ln -s $$(realpath $<) $@; \ else \ cp $< $@; \ fi endef # Copy a prebuilt file to a target location. define transform-prebuilt-to-target @echo "$($(PRIVATE_PREFIX)DISPLAY) Prebuilt: $(PRIVATE_MODULE) ($@)" Loading @@ -2566,6 +2578,13 @@ define transform-prebuilt-to-target-strip-comments $(copy-file-to-target-strip-comments) endef # Copy a prebuilt file to a target location, but preserve symlinks rather than # dereference them. define copy-or-link-prebuilt-to-target @echo "$($(PRIVATE_PREFIX)DISPLAY) Prebuilt: $(PRIVATE_MODULE) ($@)" $(copy-file-or-link-to-new-target) endef # Copy a list of files/directories to target location, with sub dir structure preserved. # For example $(HOST_OUT_EXECUTABLES)/aapt -> $(staging)/bin/aapt . # $(1): the source list of files/directories. Loading core/soong_cc_prebuilt.mk +8 −0 Original line number Diff line number Diff line Loading @@ -142,8 +142,16 @@ ifeq ($(my_check_same_vndk_variants),true) $(LOCAL_BUILT_MODULE): $(same_vndk_variants_stamp) endif # Use copy-or-link-prebuilt-to-target for host executables and shared libraries, # to preserve symlinks to the source trees. They can then run directly from the # prebuilt directories where the linker can load their dependencies using # relative RUNPATHs. $(LOCAL_BUILT_MODULE): $(LOCAL_PREBUILT_MODULE_FILE) ifeq ($(LOCAL_IS_HOST_MODULE) $(if $(filter EXECUTABLES SHARED_LIBRARIES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),true,),true true) $(copy-or-link-prebuilt-to-target) else $(transform-prebuilt-to-target) endif ifneq ($(filter EXECUTABLES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),) $(hide) chmod +x $@ endif Loading core/soong_rust_prebuilt.mk +4 −0 Original line number Diff line number Diff line Loading @@ -57,7 +57,11 @@ ifdef LOCAL_INSTALLED_MODULE endif $(LOCAL_BUILT_MODULE): $(LOCAL_PREBUILT_MODULE_FILE) ifeq ($(LOCAL_IS_HOST_MODULE) $(if $(filter EXECUTABLES SHARED_LIBRARIES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),true,),true true) $(copy-or-link-prebuilt-to-target) else $(transform-prebuilt-to-target) endif ifneq ($(filter EXECUTABLES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),) $(hide) chmod +x $@ endif Loading Loading
core/base_rules.mk +4 −0 Original line number Diff line number Diff line Loading @@ -516,7 +516,11 @@ ifneq ($(LOCAL_INSTALLED_MODULE),$(my_default_test_module)) $(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD := $(LOCAL_POST_INSTALL_CMD) $(LOCAL_INSTALLED_MODULE): $(LOCAL_BUILT_MODULE) @echo "Install: $@" ifeq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) $(copy-file-or-link-to-new-target) else $(copy-file-to-new-target) endif $(PRIVATE_POST_INSTALL_CMD) endif Loading
core/definitions.mk +19 −0 Original line number Diff line number Diff line Loading @@ -2554,6 +2554,18 @@ $(hide) rm -f $@ $(hide) cp $< $@ endef # The same as copy-file-to-new-target, but preserve symlinks. Symlinks are # converted to absolute to not break. define copy-file-or-link-to-new-target @mkdir -p $(dir $@) $(hide) rm -f $@ $(hide) if [ -h $< ]; then \ ln -s $$(realpath $<) $@; \ else \ cp $< $@; \ fi endef # Copy a prebuilt file to a target location. define transform-prebuilt-to-target @echo "$($(PRIVATE_PREFIX)DISPLAY) Prebuilt: $(PRIVATE_MODULE) ($@)" Loading @@ -2566,6 +2578,13 @@ define transform-prebuilt-to-target-strip-comments $(copy-file-to-target-strip-comments) endef # Copy a prebuilt file to a target location, but preserve symlinks rather than # dereference them. define copy-or-link-prebuilt-to-target @echo "$($(PRIVATE_PREFIX)DISPLAY) Prebuilt: $(PRIVATE_MODULE) ($@)" $(copy-file-or-link-to-new-target) endef # Copy a list of files/directories to target location, with sub dir structure preserved. # For example $(HOST_OUT_EXECUTABLES)/aapt -> $(staging)/bin/aapt . # $(1): the source list of files/directories. Loading
core/soong_cc_prebuilt.mk +8 −0 Original line number Diff line number Diff line Loading @@ -142,8 +142,16 @@ ifeq ($(my_check_same_vndk_variants),true) $(LOCAL_BUILT_MODULE): $(same_vndk_variants_stamp) endif # Use copy-or-link-prebuilt-to-target for host executables and shared libraries, # to preserve symlinks to the source trees. They can then run directly from the # prebuilt directories where the linker can load their dependencies using # relative RUNPATHs. $(LOCAL_BUILT_MODULE): $(LOCAL_PREBUILT_MODULE_FILE) ifeq ($(LOCAL_IS_HOST_MODULE) $(if $(filter EXECUTABLES SHARED_LIBRARIES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),true,),true true) $(copy-or-link-prebuilt-to-target) else $(transform-prebuilt-to-target) endif ifneq ($(filter EXECUTABLES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),) $(hide) chmod +x $@ endif Loading
core/soong_rust_prebuilt.mk +4 −0 Original line number Diff line number Diff line Loading @@ -57,7 +57,11 @@ ifdef LOCAL_INSTALLED_MODULE endif $(LOCAL_BUILT_MODULE): $(LOCAL_PREBUILT_MODULE_FILE) ifeq ($(LOCAL_IS_HOST_MODULE) $(if $(filter EXECUTABLES SHARED_LIBRARIES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),true,),true true) $(copy-or-link-prebuilt-to-target) else $(transform-prebuilt-to-target) endif ifneq ($(filter EXECUTABLES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),) $(hide) chmod +x $@ endif Loading