diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2019-05-15 22:13:35 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-05-15 22:13:35 +0000 |
commit | 85fba4c04acf8272fc81e8b5221293741a755c2e (patch) | |
tree | 57a3000bb6c664a0c81809ae7ed24bd62aa88d50 | |
parent | e51a7282b57779ffa245e712edf2e7dbe134fc61 (diff) | |
parent | 10e02dcd434c7600c49733c03781819b96f1230c (diff) | |
download | build-85fba4c04acf8272fc81e8b5221293741a755c2e.tar.gz |
Merge "Generate VNDK snapshot with Soong except configs"
-rw-r--r-- | core/soong_config.mk | 1 | ||||
-rw-r--r-- | core/tasks/vndk.mk | 152 |
2 files changed, 48 insertions, 105 deletions
diff --git a/core/soong_config.mk b/core/soong_config.mk index 48db6b1021..220e2c89df 100644 --- a/core/soong_config.mk +++ b/core/soong_config.mk @@ -121,6 +121,7 @@ $(call add_json_bool, DevicePrefer32BitExecutables, $(filter true,$(TARGET_ $(call add_json_str, DeviceVndkVersion, $(BOARD_VNDK_VERSION)) $(call add_json_str, Platform_vndk_version, $(PLATFORM_VNDK_VERSION)) $(call add_json_list, ExtraVndkVersions, $(PRODUCT_EXTRA_VNDK_VERSIONS)) +$(call add_json_bool, BoardVndkRuntimeDisable, $(BOARD_VNDK_RUNTIME_DISABLE)) $(call add_json_list, DeviceSystemSdkVersions, $(BOARD_SYSTEMSDK_VERSIONS)) $(call add_json_list, Platform_systemsdk_versions, $(PLATFORM_SYSTEMSDK_VERSIONS)) $(call add_json_bool, Malloc_not_svelte, $(call invert_bool,$(filter true,$(MALLOC_SVELTE)))) diff --git a/core/tasks/vndk.mk b/core/tasks/vndk.mk index 942063897f..90ebd924ea 100644 --- a/core/tasks/vndk.mk +++ b/core/tasks/vndk.mk @@ -27,11 +27,10 @@ ifneq ($(BOARD_VNDK_RUNTIME_DISABLE),true) # # Args: # $(1): list of module and filename pairs (e.g., ld.config.txt:ld.config.27.txt ...) -# $(2): if not empty, evaluates for TARGET_2ND_ARCH define paths-of-intermediates $(strip \ $(foreach pair,$(1), \ - $(eval module := $(call word-colon,1,$(pair))$(if $(2),$(TARGET_2ND_ARCH_MODULE_SUFFIX))) \ + $(eval module := $(call word-colon,1,$(pair))) \ $(eval built := $(ALL_MODULES.$(module).BUILT_INSTALLED)) \ $(eval filename := $(call word-colon,2,$(pair))) \ $(if $(wordlist 2,100,$(built)), \ @@ -41,30 +40,6 @@ $(strip \ ) endef -# Returns src:dest list of notice files -# -# Args: -# $(1): list of lib names (e.g., libfoo.vendor) -define paths-of-notice-files -$(strip \ - $(foreach lib,$(1), \ - $(eval notice := $(sort \ - $(ALL_MODULES.$(lib).NOTICES) \ - $(if $(TARGET_2ND_ARCH), - $(ALL_MODULES.$(lib)$(TARGET_2ND_ARCH_MODULE_SUFFIX).NOTICES)))) \ - $(if $(wordlist 2,100,$(notice)), \ - $(error Unable to handle multiple notice files ($(lib)): $(notice))) \ - $(if $(notice),$(notice):$(subst .vendor,,$(lib)).so.txt))) -endef - -vndk_core_libs := $(addsuffix .vendor,$(VNDK_CORE_LIBRARIES)) -vndk_sp_libs := $(addsuffix .vendor,$(VNDK_SAMEPROCESS_LIBRARIES)) -vndk_private_libs := $(addsuffix .vendor,$(VNDK_PRIVATE_LIBRARIES)) - -vndk_snapshot_libs := \ - $(vndk_core_libs) \ - $(vndk_sp_libs) - vndk_prebuilt_txts := \ ld.config.txt \ vndksp.libraries.txt \ @@ -75,47 +50,6 @@ vndk_snapshot_out := $(vndk_snapshot_top)/vndk-snapshot vndk_snapshot_configs_out := $(vndk_snapshot_top)/configs ####################################### -# vndkcore.libraries.txt -vndkcore.libraries.txt := $(vndk_snapshot_configs_out)/vndkcore.libraries.txt -$(vndkcore.libraries.txt): PRIVATE_LIBS := $(vndk_core_libs) -$(vndkcore.libraries.txt): - @echo 'Generating: $@' - @rm -f $@ - @mkdir -p $(dir $@) - $(hide) echo -n > $@ - $(hide) $(foreach lib,$(PRIVATE_LIBS),echo $(patsubst %.vendor,%,$(lib)).so >> $@;) - - -####################################### -# vndkprivate.libraries.txt -vndkprivate.libraries.txt := $(vndk_snapshot_configs_out)/vndkprivate.libraries.txt -$(vndkprivate.libraries.txt): PRIVATE_LIBS := $(vndk_private_libs) -$(vndkprivate.libraries.txt): - @echo 'Generating: $@' - @rm -f $@ - @mkdir -p $(dir $@) - $(hide) echo -n > $@ - $(hide) $(foreach lib,$(PRIVATE_LIBS),echo $(patsubst %.vendor,%,$(lib)).so >> $@;) - - -####################################### -# module_paths.txt -module_paths.txt := $(vndk_snapshot_configs_out)/module_paths.txt -$(module_paths.txt): PRIVATE_LIBS := $(vndk_snapshot_libs) -$(module_paths.txt): - @echo 'Generating: $@' - @rm -f $@ - @mkdir -p $(dir $@) - $(hide) echo -n > $@ - $(hide) $(foreach lib,$(PRIVATE_LIBS),echo $(patsubst %.vendor,%,$(lib)).so $(ALL_MODULES.$(lib).PATH) >> $@;) - - -vndk_snapshot_configs := \ - $(vndkcore.libraries.txt) \ - $(vndkprivate.libraries.txt) \ - $(module_paths.txt) - -####################################### # vndk_snapshot_zip vndk_snapshot_variant := $(vndk_snapshot_out)/$(TARGET_ARCH) binder := @@ -130,44 +64,46 @@ vndk_snapshot_zip := $(PRODUCT_OUT)/android-vndk-$(TARGET_PRODUCT).zip $(vndk_snapshot_zip): PRIVATE_VNDK_SNAPSHOT_OUT := $(vndk_snapshot_out) -deps := $(call paths-of-intermediates,$(foreach lib,$(vndk_core_libs),$(lib):$(subst .vendor,,$(lib)).so)) +prebuilts := $(SOONG_VNDK_SNAPSHOT_CORE_LIBS) $(vndk_snapshot_zip): PRIVATE_VNDK_CORE_OUT := $(vndk_lib_dir)/shared/vndk-core -$(vndk_snapshot_zip): PRIVATE_VNDK_CORE_INTERMEDIATES := $(deps) -$(vndk_snapshot_zip): $(foreach d,$(deps),$(call word-colon,1,$(d))) -deps := +$(vndk_snapshot_zip): PRIVATE_VNDK_CORE_SOONG_PREBUILTS := $(prebuilts) +$(vndk_snapshot_zip): $(prebuilts) +prebuilts := -deps := $(call paths-of-intermediates,$(foreach lib,$(vndk_sp_libs),$(lib):$(subst .vendor,,$(lib)).so)) +prebuilts := $(SOONG_VNDK_SNAPSHOT_SP_LIBS) $(vndk_snapshot_zip): PRIVATE_VNDK_SP_OUT := $(vndk_lib_dir)/shared/vndk-sp -$(vndk_snapshot_zip): PRIVATE_VNDK_SP_INTERMEDIATES := $(deps) -$(vndk_snapshot_zip): $(foreach d,$(deps),$(call word-colon,1,$(d))) -deps := +$(vndk_snapshot_zip): PRIVATE_VNDK_SP_SOONG_PREBUILTS := $(prebuilts) +$(vndk_snapshot_zip): $(prebuilts) +prebuilts := deps := $(call paths-of-intermediates,$(foreach txt,$(vndk_prebuilt_txts), \ - $(txt):$(patsubst %.txt,%.$(PLATFORM_VNDK_VERSION).txt,$(txt)))) \ - $(foreach config,$(vndk_snapshot_configs),$(config):$(notdir $(config))) + $(txt):$(patsubst %.txt,%.$(PLATFORM_VNDK_VERSION).txt,$(txt)))) +prebuilts := $(SOONG_VNDK_SNAPSHOT_CONFIGS) $(vndk_snapshot_zip): PRIVATE_CONFIGS_OUT := $(vndk_snapshot_variant)/configs $(vndk_snapshot_zip): PRIVATE_CONFIGS_INTERMEDIATES := $(deps) -$(vndk_snapshot_zip): $(foreach d,$(deps),$(call word-colon,1,$(d))) +$(vndk_snapshot_zip): PRIVATE_CONFIGS_SOONG_PREBUILTS := $(prebuilts) +$(vndk_snapshot_zip): $(foreach d,$(deps),$(call word-colon,1,$(d))) $(prebuilts) deps := +prebuilts := -notices := $(call paths-of-notice-files,$(vndk_core_libs) $(vndk_sp_libs)) +prebuilts := $(SOONG_VNDK_SNAPSHOT_NOTICES) $(vndk_snapshot_zip): PRIVATE_NOTICE_FILES_OUT := $(vndk_snapshot_variant)/NOTICE_FILES -$(vndk_snapshot_zip): PRIVATE_NOTICE_FILES_INTERMEDIATES := $(notices) -$(vndk_snapshot_zip): $(foreach n,$(notices),$(call word-colon,1,$(n))) -notices := +$(vndk_snapshot_zip): PRIVATE_NOTICE_FILES_SOONG_PREBUILTS := $(prebuilts) +$(vndk_snapshot_zip): $(prebuilts) +prebuilts := ifdef TARGET_2ND_ARCH -deps := $(call paths-of-intermediates,$(foreach lib,$(vndk_core_libs),$(lib):$(subst .vendor,,$(lib)).so),true) +prebuilts := $(SOONG_VNDK_SNAPSHOT_CORE_LIBS_2ND) $(vndk_snapshot_zip): PRIVATE_VNDK_CORE_OUT_2ND := $(vndk_lib_dir_2nd)/shared/vndk-core -$(vndk_snapshot_zip): PRIVATE_VNDK_CORE_INTERMEDIATES_2ND := $(deps) -$(vndk_snapshot_zip): $(foreach d,$(deps),$(call word-colon,1,$(d))) -deps := +$(vndk_snapshot_zip): PRIVATE_VNDK_CORE_SOONG_PREBUILTS_2ND := $(prebuilts) +$(vndk_snapshot_zip): $(prebuilts) +prebuilts := -deps := $(call paths-of-intermediates,$(foreach lib,$(vndk_sp_libs),$(lib):$(subst .vendor,,$(lib)).so),true) +prebuilts := $(SOONG_VNDK_SNAPSHOT_SP_LIBS_2ND) $(vndk_snapshot_zip): PRIVATE_VNDK_SP_OUT_2ND := $(vndk_lib_dir_2nd)/shared/vndk-sp -$(vndk_snapshot_zip): PRIVATE_VNDK_SP_INTERMEDIATES_2ND := $(deps) -$(vndk_snapshot_zip): $(foreach d,$(deps),$(call word-colon,1,$(d))) -deps := +$(vndk_snapshot_zip): PRIVATE_VNDK_SP_SOONG_PREBUILTS_2ND := $(prebuilts) +$(vndk_snapshot_zip): $(prebuilts) +prebuilts := endif # Args @@ -182,6 +118,15 @@ $(vndk_snapshot_zip): private-copy-intermediates = \ true \ )) +# Args +# $(1): destination directory +# $(2): list of prebuilts to copy +$(vndk_snapshot_zip): private-copy-prebuilts = \ + $(if $(2),$(strip \ + @mkdir -p $(1) && \ + $(foreach file, $(2), cp $(file) $(1) && ) \ + true \ + )) $(vndk_snapshot_zip): $(SOONG_ZIP) @echo 'Generating VNDK snapshot: $@' @@ -189,18 +134,20 @@ $(vndk_snapshot_zip): $(SOONG_ZIP) @rm -rf $(PRIVATE_VNDK_SNAPSHOT_OUT) @mkdir -p $(PRIVATE_VNDK_SNAPSHOT_OUT) $(call private-copy-intermediates, \ - $(PRIVATE_VNDK_CORE_OUT),$(PRIVATE_VNDK_CORE_INTERMEDIATES)) - $(call private-copy-intermediates, \ - $(PRIVATE_VNDK_SP_OUT),$(PRIVATE_VNDK_SP_INTERMEDIATES)) - $(call private-copy-intermediates, \ $(PRIVATE_CONFIGS_OUT),$(PRIVATE_CONFIGS_INTERMEDIATES)) - $(call private-copy-intermediates, \ - $(PRIVATE_NOTICE_FILES_OUT),$(PRIVATE_NOTICE_FILES_INTERMEDIATES)) + $(call private-copy-prebuilts, \ + $(PRIVATE_VNDK_CORE_OUT),$(PRIVATE_VNDK_CORE_SOONG_PREBUILTS)) + $(call private-copy-prebuilts, \ + $(PRIVATE_VNDK_SP_OUT),$(PRIVATE_VNDK_SP_SOONG_PREBUILTS)) + $(call private-copy-prebuilts, \ + $(PRIVATE_CONFIGS_OUT),$(PRIVATE_CONFIGS_SOONG_PREBUILTS)) + $(call private-copy-prebuilts, \ + $(PRIVATE_NOTICE_FILES_OUT),$(PRIVATE_NOTICE_FILES_SOONG_PREBUILTS)) ifdef TARGET_2ND_ARCH - $(call private-copy-intermediates, \ - $(PRIVATE_VNDK_CORE_OUT_2ND),$(PRIVATE_VNDK_CORE_INTERMEDIATES_2ND)) - $(call private-copy-intermediates, \ - $(PRIVATE_VNDK_SP_OUT_2ND),$(PRIVATE_VNDK_SP_INTERMEDIATES_2ND)) + $(call private-copy-prebuilts, \ + $(PRIVATE_VNDK_CORE_OUT_2ND),$(PRIVATE_VNDK_CORE_SOONG_PREBUILTS_2ND)) + $(call private-copy-prebuilts, \ + $(PRIVATE_VNDK_SP_OUT_2ND),$(PRIVATE_VNDK_SP_SOONG_PREBUILTS_2ND)) endif $(hide) $(SOONG_ZIP) -o $@ -C $(PRIVATE_VNDK_SNAPSHOT_OUT) -D $(PRIVATE_VNDK_SNAPSHOT_OUT) @@ -212,12 +159,7 @@ $(call dist-for-goals, vndk, $(vndk_snapshot_zip)) # clear global vars clang-ubsan-vndk-core := paths-of-intermediates := -paths-of-notice-files := -vndk_core_libs := -vndk_sp_libs := -vndk_snapshot_libs := vndk_prebuilt_txts := -vndk_snapshot_configs := vndk_snapshot_top := vndk_snapshot_out := vndk_snapshot_configs_out := |