platform_build/core/misc_prebuilt_internal.mk
Jooyung Han 0fbfb4bd57 fix: set built_module in misc_prebuilt_internal.mk
*_prebuilt_internal.mk should set "built_module" with LOCAL_BUILT_MODULE
on success, since it is used to set dependency between built module and
additional dependencies (LOCAL_ADDITIONAL_DEPENDENCIES).

In aosp/970424, it didn't set it properly.

As a consequence, setting additional dependencies to a built module was
wrong for various classes of modules(ETC, SCRIPT, DATA)

For example, prebuilt_etc_xml module(com.google.vr.platform.xml) has
an additional depdendency(timestamp of xmllint). But the dependency is
set to unexected module(com.android.support.apexer.soong_zip).
This is because that
1) built_module is not set in misc_prebuilt_internal.mk
2) built_module is not reset after use and soong_zip was last module
which set built_module variable.

Bug: 132925121
Test: m com.google.vr.platform.xml && check build-<TARGET>.ninja to see
if there is additional dependency as described above

Change-Id: I74fdf6b6ad583f3c08dc0b8fc8595d7ef9cc7306
2019-07-22 15:31:55 +09:00

31 lines
No EOL
1.2 KiB
Makefile

#
# Copyright (C) 2019 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
############################################################
# Internal build rules for misc prebuilt modules that don't need additional processing
############################################################
prebuilt_module_classes := SCRIPT ETC DATA
ifeq ($(filter $(prebuilt_module_classes),$(LOCAL_MODULE_CLASS)),)
$(call pretty-error,misc_prebuilt_internal.mk is for $(prebuilt_module_classes) modules only)
endif
include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE) : $(my_prebuilt_src_file)
$(transform-prebuilt-to-target)
built_module := $(LOCAL_BUILT_MODULE)