forked from openkylin/platform_build
Add USE_FILESLIST_GO to switch to fileslist.go
fileslist.go is still disabled by default. To enable, use:
USE_FILESLIST_GO=true m -j
Bug: 36274890
Test: Manual, with m -j
Change-Id: I722e17fa7fb6ba91e2b2c44cd7524d974cbe4a56
(cherry picked from commit 9fe97e231b
)
This commit is contained in:
parent
deb26ad395
commit
517d32d4da
|
@ -1257,11 +1257,11 @@ FULL_SYSTEMIMAGE_DEPS := $(INTERNAL_SYSTEMIMAGE_FILES) $(INTERNAL_USERIMAGES_DEP
|
|||
# so that we can get the size stat even if the build fails due to too large
|
||||
# system image.
|
||||
INSTALLED_FILES_FILE := $(PRODUCT_OUT)/installed-files.txt
|
||||
$(INSTALLED_FILES_FILE): $(FULL_SYSTEMIMAGE_DEPS)
|
||||
$(INSTALLED_FILES_FILE): $(FULL_SYSTEMIMAGE_DEPS) $(FILESLIST)
|
||||
@echo Installed file list: $@
|
||||
@mkdir -p $(dir $@)
|
||||
@rm -f $@
|
||||
$(hide) build/tools/fileslist.py $(TARGET_OUT) > $(@:.txt=.json)
|
||||
$(hide) $(FILESLIST) $(TARGET_OUT) > $(@:.txt=.json)
|
||||
$(hide) build/tools/fileslist_util.py -c $(@:.txt=.json) > $@
|
||||
|
||||
.PHONY: installed-file-list
|
||||
|
@ -1704,11 +1704,11 @@ INTERNAL_SYSTEMOTHERIMAGE_FILES := \
|
|||
$(ALL_PDK_FUSION_FILES))
|
||||
|
||||
INSTALLED_FILES_FILE_SYSTEMOTHER := $(PRODUCT_OUT)/installed-files-system-other.txt
|
||||
$(INSTALLED_FILES_FILE_SYSTEMOTHER) : $(INTERNAL_SYSTEMOTHERIMAGE_FILES)
|
||||
$(INSTALLED_FILES_FILE_SYSTEMOTHER) : $(INTERNAL_SYSTEMOTHERIMAGE_FILES) $(FILESLIST)
|
||||
@echo Installed file list: $@
|
||||
@mkdir -p $(dir $@)
|
||||
@rm -f $@
|
||||
$(hide) build/tools/fileslist.py $(TARGET_OUT_SYSTEM_OTHER) > $(@:.txt=.json)
|
||||
$(hide) $(FILESLIST) $(TARGET_OUT_SYSTEM_OTHER) > $(@:.txt=.json)
|
||||
$(hide) build/tools/fileslist_util.py -c $(@:.txt=.json) > $@
|
||||
|
||||
systemotherimage_intermediates := \
|
||||
|
@ -1751,11 +1751,11 @@ INTERNAL_VENDORIMAGE_FILES := \
|
|||
$(INSTALLED_PLATFORM_ZIP) : $(INTERNAL_VENDORIMAGE_FILES)
|
||||
|
||||
INSTALLED_FILES_FILE_VENDOR := $(PRODUCT_OUT)/installed-files-vendor.txt
|
||||
$(INSTALLED_FILES_FILE_VENDOR) : $(INTERNAL_VENDORIMAGE_FILES)
|
||||
$(INSTALLED_FILES_FILE_VENDOR) : $(INTERNAL_VENDORIMAGE_FILES) $(FILESLIST)
|
||||
@echo Installed file list: $@
|
||||
@mkdir -p $(dir $@)
|
||||
@rm -f $@
|
||||
$(hide) build/tools/fileslist.py $(TARGET_OUT_VENDOR) > $(@:.txt=.json)
|
||||
$(hide) $(FILESLIST) $(TARGET_OUT_VENDOR) > $(@:.txt=.json)
|
||||
$(hide) build/tools/fileslist_util.py -c $(@:.txt=.json) > $@
|
||||
|
||||
vendorimage_intermediates := \
|
||||
|
|
|
@ -497,6 +497,7 @@ MAINDEXCLASSES := $(HOST_OUT_EXECUTABLES)/mainDexClasses
|
|||
|
||||
SOONG_ZIP := $(SOONG_HOST_OUT_EXECUTABLES)/soong_zip
|
||||
ZIP2ZIP := $(SOONG_HOST_OUT_EXECUTABLES)/zip2zip
|
||||
FILESLIST := $(SOONG_HOST_OUT_EXECUTABLES)/fileslist
|
||||
|
||||
JAVAC_FILTER := $(SOONG_HOST_OUT_EXECUTABLES)/soong_javac_filter
|
||||
|
||||
|
|
|
@ -1,58 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
#
|
||||
# Copyright (C) 2009 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.
|
||||
#
|
||||
|
||||
import json, hashlib, operator, os, sys
|
||||
|
||||
def get_file_size(path):
|
||||
st = os.lstat(path)
|
||||
return st.st_size;
|
||||
|
||||
def get_file_digest(path):
|
||||
if os.path.isfile(path) == False:
|
||||
return "----------------------------------------------------------------"
|
||||
digest = hashlib.sha256()
|
||||
with open(path, 'rb') as f:
|
||||
while True:
|
||||
buf = f.read(1024*1024)
|
||||
if not buf:
|
||||
break
|
||||
digest.update(buf)
|
||||
return digest.hexdigest();
|
||||
|
||||
def main(argv):
|
||||
output = []
|
||||
roots = argv[1:]
|
||||
for root in roots:
|
||||
base = len(root[:root.rfind(os.path.sep)])
|
||||
for dir, dirs, files in os.walk(root):
|
||||
relative = dir[base:]
|
||||
for f in files:
|
||||
try:
|
||||
path = os.path.sep.join((dir, f))
|
||||
row = {
|
||||
"Size": get_file_size(path),
|
||||
"Name": os.path.sep.join((relative, f)),
|
||||
"SHA256": get_file_digest(path),
|
||||
}
|
||||
output.append(row)
|
||||
except os.error:
|
||||
pass
|
||||
output.sort(key=operator.itemgetter("Size", "Name"), reverse=True)
|
||||
print json.dumps(output, indent=2, separators=(',',': '))
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.argv)
|
Loading…
Reference in New Issue