[DEV] add generic flags for code quality
This commit is contained in:
parent
fced469b14
commit
08e50c35b3
9
.gitignore
vendored
9
.gitignore
vendored
@ -1,9 +0,0 @@
|
||||
# Compiled python modules.
|
||||
*.pyc
|
||||
|
||||
# Setuptools distribution folder.
|
||||
/dist/
|
||||
/build/
|
||||
|
||||
# Python egg metadata, regenerated from source files by setuptools.
|
||||
/*.egg-info
|
@ -1,6 +1,7 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding//lutin/__init__.py=utf-8
|
||||
encoding//lutin/builder.py=utf-8
|
||||
encoding//lutin/depend.py=utf-8
|
||||
encoding//lutin/env.py=utf-8
|
||||
encoding//lutin/macro.py=utf-8
|
||||
encoding//lutin/module.py=utf-8
|
||||
|
@ -203,22 +203,73 @@ class Module:
|
||||
return self._header
|
||||
|
||||
##
|
||||
## @brief add Some copilation flags for this module (and only this one)
|
||||
## @brief add Some compilation flags for this module (and only this one)
|
||||
## @param[in] self (handle) Class handle
|
||||
## @return None
|
||||
## @deprecated Use set_code_quality("MEDIUM");
|
||||
##
|
||||
def add_extra_flags(self):
|
||||
self.set_code_quality("MEDIUM");
|
||||
|
||||
#only for gcc : "-Wunused-variable", "-Wunused-but-set-variable",
|
||||
def set_code_quality(self, quality):
|
||||
quality_availlable = ["LOW","MEDIUM","HARD","PROFESSIONAL"];
|
||||
if quality not in quality_availlable:
|
||||
debug.error("Does not support other level than " + str(quality_availlable));
|
||||
id = quality_availlable.index(quality)
|
||||
# LOW ==> nothing to do ...
|
||||
if id >= 1:
|
||||
# MEDIUM
|
||||
self.add_flag('c', [
|
||||
"-Wall",
|
||||
"-Wsign-compare",
|
||||
"-Wreturn-type",
|
||||
#"-Wint-to-pointer-cast",
|
||||
"-Wno-write-strings",
|
||||
"-Wno-unused-variable"]);
|
||||
"-Wno-write-strings"
|
||||
]);
|
||||
self.add_flag('c++', [
|
||||
"-Woverloaded-virtual",
|
||||
"-Wnon-virtual-dtor"]);
|
||||
#only for gcc : "-Wunused-variable", "-Wunused-but-set-variable",
|
||||
"-Wnon-virtual-dtor"
|
||||
]);
|
||||
if id >= 2:
|
||||
# HARD
|
||||
self.add_flag('c', [
|
||||
"-Wextra",
|
||||
"-Wmissing-braces",
|
||||
"-Wmissing-field-initializers",
|
||||
"-Wmissing-format-attribute",
|
||||
"-Wmissing-include-dirs",
|
||||
"-Wmissing-noreturn",
|
||||
"-Wpacked",
|
||||
"-Wsequence-point",
|
||||
"-Wshadow",
|
||||
"-Wsign-compare",
|
||||
"-Wsign-conversion",
|
||||
"-Wstack-protector",
|
||||
"-Wstrict-aliasing",
|
||||
"-Wno-unused-variable"
|
||||
]);
|
||||
self.add_flag('c++', [
|
||||
"-Wreorder",
|
||||
"-Weffc++",
|
||||
"-Wold-style-cast",
|
||||
"-Woverloaded-virtual",
|
||||
"-Wsign-promo",
|
||||
"-Wno-multichar",
|
||||
"-Wnonnull",
|
||||
"-Wno-overflow",
|
||||
"-Woverlength-strings",
|
||||
"-Wpadded",
|
||||
"-Wparentheses",
|
||||
"-Wpointer-arith",
|
||||
"-Wno-pointer-to-int-cast",
|
||||
"-Wredundant-decls",
|
||||
]);
|
||||
|
||||
if id >= 3:
|
||||
# PROFESSIONAL
|
||||
self.add_flag('c', [
|
||||
"-Werror"
|
||||
]);
|
||||
|
||||
##
|
||||
## @brief remove all unneeded warning on compilation ==> for extern libs ...
|
||||
|
@ -392,6 +392,10 @@ def parse_node_platform(target, path, json_path, my_module, data):
|
||||
if check_compatible("target", elem, target.get_type(), json_path):
|
||||
parse_node_generic(target, path, json_path, my_module, data[elem]);
|
||||
|
||||
def parse_node_flag(target, path, json_path, my_module, data):
|
||||
for elem in data.keys():
|
||||
my_module.add_flag(elem, data[elem]);
|
||||
|
||||
def parse_node_generic(target, path, json_path, my_module, data, first = False ):
|
||||
for elem in data.keys():
|
||||
if elem in list_of_property_module:
|
||||
@ -494,6 +498,9 @@ def parse_node_generic(target, path, json_path, my_module, data, first = False )
|
||||
if "mode" in data.keys():
|
||||
parse_node_mode(target, path, json_path, my_module, data["mode"]);
|
||||
|
||||
if "flag" in data.keys():
|
||||
parse_node_flag(target, path, json_path, my_module, data["flag"]);
|
||||
|
||||
def load_module_from_GLD(target, name, path, json_path):
|
||||
debug.debug("Parse file: "+ json_path + "'");
|
||||
try:
|
||||
@ -531,14 +538,8 @@ def load_module_from_GLD(target, name, path, json_path):
|
||||
debug.warning("can not support for element: 'header-install-mode' other value than [BEFORE,AFTER]");
|
||||
|
||||
if "code-quality" in data.keys():
|
||||
if data["header-install-mode"] == "LOW":
|
||||
pass;
|
||||
elif data["header-install-mode"] == "MEDIUM":
|
||||
pass;
|
||||
elif data["header-install-mode"] == "HARD":
|
||||
pass;
|
||||
elif data["header-install-mode"] == "PROFESSIONAL":
|
||||
pass;
|
||||
if data["code-quality"] in ["LOW","MEDIUM","HARD","PROFESSIONAL"]:
|
||||
my_module.set_code_quality(data["code-quality"]);
|
||||
else:
|
||||
debug.warning("Does not support other level than [LOW, MEDIUM, HARD, PROFESSIONAL]");
|
||||
|
||||
@ -571,10 +572,8 @@ def GLD_add_depend(my_module, data):
|
||||
debug.error("Can not have dependency 'export' in an other type than boolean ...");
|
||||
flags_data = None;
|
||||
if "flag" in data.keys():
|
||||
if "language" in data["flag"].keys() and "value" in data["flag"].keys():
|
||||
flags_data = [data["flag"]["language"], data["flag"]["value"]]
|
||||
else:
|
||||
debug.error("Can not have dependency 'flag' without value 'language' and 'value' ...");
|
||||
for elem in data["flag"].keys():
|
||||
flags_data = [elem, data["flag"][elem]]
|
||||
missing_flags_data = None;
|
||||
if "missing-flag" in data.keys():
|
||||
if "language" in data["missing-flag"].keys() and "value" in data["missing-flag"].keys():
|
||||
|
Loading…
x
Reference in New Issue
Block a user