mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
gcc building (#487)
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
# Complete file list producer v0.7
|
||||
# Written by ProjectRevoTPP
|
||||
|
||||
import os
|
||||
from glob import glob
|
||||
from itertools import chain
|
||||
import sys
|
||||
|
||||
def holecount(file):
|
||||
with open(file, 'r', encoding = 'utf-8') as infile:
|
||||
contents = infile.readlines()
|
||||
asm_count = 0
|
||||
for i, line in enumerate(contents):
|
||||
if(line.count("GLOBAL_ASM") > 0 and (i + 1 == len(contents) or contents[i+1].count("#endif") == 0)):
|
||||
asm_count += 1
|
||||
return asm_count
|
||||
|
||||
def noncount(file):
|
||||
with open(file, 'r', encoding = 'utf-8') as infile:
|
||||
contents = infile.readlines()
|
||||
noncount = 0
|
||||
for i, line in enumerate(contents):
|
||||
if(line.count("NON_") > 0):
|
||||
noncount += 1
|
||||
return noncount
|
||||
|
||||
def holecount_all(src):
|
||||
for subdir, dirs, files in os.walk(src):
|
||||
for filename in files:
|
||||
filepath = subdir + os.sep + filename
|
||||
if(not filename.endswith('.c')):
|
||||
continue
|
||||
holes = holecount(filepath)
|
||||
nonmatches = noncount(filepath)
|
||||
if(holes > 0 and nonmatches > 0):
|
||||
print(filename, holes, nonmatches)
|
||||
return 1
|
||||
|
||||
paths = ('src', 'lib')
|
||||
|
||||
# get file encoding type
|
||||
def get_encoding_type(file):
|
||||
with open(file, 'rb') as f:
|
||||
rawdata = f.read()
|
||||
return detect(rawdata)['encoding']
|
||||
|
||||
outfile = open(sys.argv[1], "w")
|
||||
outfile.write("# This file is auto-generated. DO NOT MODIFY!\n\n")
|
||||
outfile.write("GCC_SAFE_FILES := \\\n")
|
||||
for directory in chain.from_iterable(os.walk(path) for path in paths):
|
||||
for filename in glob(os.path.join(directory[0], "*.c")):
|
||||
infile = open(filename, "r", encoding="ascii", errors="surrogateescape")
|
||||
# Open content.
|
||||
contents = infile.read()
|
||||
# Set the counts.
|
||||
nonm_count = contents.count("NON_MATCHING")
|
||||
noneq_count = contents.count("NON_EQUIVALENT")
|
||||
global_asm_count = contents.count("GLOBAL_ASM")
|
||||
if nonm_count > 0:
|
||||
print(filename + ": " + str(nonm_count))
|
||||
if noneq_count > 0:
|
||||
print(filename + ": " + str(noneq_count))
|
||||
if global_asm_count > 0:
|
||||
print(filename + ": " + str(global_asm_count))
|
||||
# NOTE: As of now there is no distinction between unattempted files and unfinished ones.
|
||||
if (nonm_count + noneq_count + global_asm_count) == 0 :
|
||||
outfile.write(" $(BUILD_DIR)/")
|
||||
outfile.write(os.path.splitext(filename)[0])
|
||||
outfile.write(".o \\\n")
|
||||
infile.close()
|
||||
outfile.close()
|
||||
Reference in New Issue
Block a user