blob: f5b2c7e61eab12bf0eb25b0f9c595f2fd83ebbe9 [file] [log] [blame]
#!/usr/bin/env python
import os
import re
import sys
def read_feature_defines_override(feature_defines):
feature_defines_overriding_file = 'WebKitFeatureOverrides.txt'
if not os.path.exists(feature_defines_overriding_file):
return
print("The following feature defines were overriden:")
with open(feature_defines_overriding_file) as f:
match_iter = re.findall(r"((?:ENABLE_)\w+)=(0|1)", f.read())
for match in match_iter:
feature = match[0]
value = int(match[1])
if feature in feature_defines and value != feature_defines[feature]:
print("\t{0}: {1} => {2}".format(feature, feature_defines[feature], value))
feature_defines[feature] = value
def write_file_if_contents_changed(filename, contents):
if os.path.exists(filename):
with open(filename, 'r') as f:
old_contents = f.read()
if old_contents == contents:
return
with open(filename, 'w') as f:
f.write(contents)
def write_feature_defines_header(feature_defines):
contents = ''
for (feature, value) in feature_defines.items():
contents += '#define {0} {1}\n'.format(feature, value)
write_file_if_contents_changed("WebKitFeatures.h", contents)
def write_flattened_feature_defines_file(feature_defines):
contents = ''
for (feature, value) in feature_defines.items():
contents += '{0}={1}\n'.format(feature, value)
write_file_if_contents_changed("WebKitFeatures.txt", contents)
def generate_feature_defines_files(default_features):
build_dir = os.getcwd()
feature_defines = {}
for feature_define in default_features:
(feature, value) = feature_define.split("=")
feature_defines[feature] = int(value)
read_feature_defines_override(feature_defines)
write_feature_defines_header(feature_defines)
write_flattened_feature_defines_file(feature_defines)
if __name__=='__main__':
generate_feature_defines_files(sys.argv[1:])