pull/273/head
RobertGawron 2025-06-24 22:45:49 +02:00
rodzic f65a74500d
commit 5824ab8d5f
5 zmienionych plików z 696 dodań i 0 usunięć

Wyświetl plik

@ -0,0 +1,76 @@
# Get the number of available processors
include(ProcessorCount)
ProcessorCount(NPROC)
if(NOT NPROC OR NPROC EQUAL 0)
set(NPROC 1) # Fallback to 1 if ProcessorCount fails
endif()
# Define the source directories to analyze
set(CODECHECKER_SOURCE_DIRS
${CMAKE_SOURCE_DIR}/Software/Firmware/Application
${CMAKE_SOURCE_DIR}/Software/Firmware/Device
${CMAKE_SOURCE_DIR}/Software/Firmware/Driver
${CMAKE_SOURCE_DIR}/Software/Firmware/UnitTest
)
# Define the output directories for CodeChecker analysis and reports
set(CODECHECKER_ANALYZE_DIR /tmp/StaticAnalysisIntermediary)
set(CODECHECKER_REPORT_DIR ${CMAKE_SOURCE_DIR}/DevOps/BuildArtifacts/CStaticAnalysis)
set(CODECHECKER_SKIP_FILE ${CMAKE_SOURCE_DIR}/DevOps/Scripts/CodeCheckerSkipList)
# Ensure the output directories exist
file(MAKE_DIRECTORY ${CODECHECKER_ANALYZE_DIR})
file(MAKE_DIRECTORY ${CODECHECKER_REPORT_DIR})
# Add a custom target for CodeChecker analysis
add_custom_target(cstatic
COMMAND CodeChecker analyze compile_commands.json
--output ${CODECHECKER_ANALYZE_DIR}
--file ${CODECHECKER_SOURCE_DIRS}
--skip ${CODECHECKER_SKIP_FILE}
--jobs ${NPROC}
--enable-all
#--disable checker:clang-diagnostic-c++98-compat
#--disable modernize-use-trailing-return-type
#--disable readability-identifier-length
#--disable readability-uppercase-literal-suffix
#--disable modernize-avoid-c-arrays
#--disable modernize-use-auto
#--disable altera-unroll-loops
#--disable cppcheck-missingIncludeSystem
#--disable cppcheck-toomanyconfigs
#--disable checker:clang-diagnostic-padded
#--disable altera-struct-pack-align
#--disable clang-diagnostic-weak-vtables
#--disable altera-id-dependent-backward-branch
#--disable bugprone-easily-swappable-parameters
#--disable clang-diagnostic-covered-switch-default
COMMENT "Running CodeChecker analysis..."
VERBATIM
)
# Add a custom command to generate the HTML report
add_custom_command(TARGET cstatic POST_BUILD
COMMAND CodeChecker parse ${CODECHECKER_ANALYZE_DIR}
--skip ${CODECHECKER_SKIP_FILE}
--export html
--output ${CODECHECKER_REPORT_DIR}
COMMENT "Generating CodeChecker HTML report..."
VERBATIM
)
# Add a custom command to check for errors and fail the build if any are found
add_custom_command(TARGET cstatic POST_BUILD
COMMAND bash -c "if [ -n \"\$(CodeChecker parse ${CODECHECKER_ANALYZE_DIR} --print-issues | grep -i 'error')\" ]; then echo 'CodeChecker found errors!'; exit 1; fi"
COMMENT "Failing the build if CodeChecker finds errors..."
VERBATIM
)
# Message if CodeChecker is not found (optional)
find_program(CODECHECKER_EXECUTABLE CodeChecker)
if(NOT CODECHECKER_EXECUTABLE)
message(WARNING "CodeChecker not found. Skipping static analysis.")
endif()

Wyświetl plik

@ -0,0 +1,29 @@
find_program(UNCRUSTIFY uncrustify)
# Get all files
file(GLOB MODIFY_FILES
"${CMAKE_SOURCE_DIR}/Software/Firmware/Application/*.h"
"${CMAKE_SOURCE_DIR}/Software/Firmware/Application/*.c"
"${CMAKE_SOURCE_DIR}/Software/Firmware/Device/*.h"
"${CMAKE_SOURCE_DIR}/Software/Firmware/Device/*.c"
"${CMAKE_SOURCE_DIR}/Software/Firmware/Driver/*.h"
"${CMAKE_SOURCE_DIR}/Software/Firmware/Driver/*.c"
"${CMAKE_SOURCE_DIR}/Software/Firmware/UnitTest/*.h"
"${CMAKE_SOURCE_DIR}/Software/Firmware/UnitTest/*.c"
)
# Files to exclude
set(EXCLUDE_FILES
"${CMAKE_SOURCE_DIR}/Software/Firmware/Driver/interrupt_handler.h"
"${CMAKE_SOURCE_DIR}/Software/Firmware/Driver/interrupt_handler.c"
)
# Remove excluded files
list(REMOVE_ITEM MODIFY_FILES ${EXCLUDE_FILES})
add_custom_target(style
COMMAND ${UNCRUSTIFY} -c "${CMAKE_SOURCE_DIR}/DevOps/Scripts/uncrustify.cfg" --replace --no-backup ${MODIFY_FILES}
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
COMMENT "Running uncrustify on source directories"
VERBATIM
)

Wyświetl plik

@ -0,0 +1,24 @@
# Define the output directories for Python static analysis and reports
set(PYTHON_ANALYZE_DIR ${CMAKE_SOURCE_DIR}/build/BuildArtifacts/PythonStaticAnalysis)
set(PYTHON_REPORT_DIR ${CMAKE_SOURCE_DIR}/DevOps/BuildArtifacts)
# Echo the variables for debugging
message(STATUS "PYTHON_ANALYZE_DIR: ${PYTHON_ANALYZE_DIR}")
message(STATUS "PYTHON_REPORT_DIR: ${PYTHON_REPORT_DIR}")
# Ensure the output directories exist
file(MAKE_DIRECTORY ${PYTHON_ANALYZE_DIR})
file(MAKE_DIRECTORY ${PYTHON_REPORT_DIR})
# Define a variable for the file path
set(PYTHON_STATIC_ANALYSIS_SCRIPT "${CMAKE_SOURCE_DIR}/DevOps/Scripts/PythonStaticAnalysis.sh")
# Add a custom target for Python static analysis
add_custom_target(pystatic
COMMAND bash -c " \
dos2unix ${PYTHON_STATIC_ANALYSIS_SCRIPT} && source ${PYTHON_STATIC_ANALYSIS_SCRIPT}"
COMMENT "Running Python static analysis with Prospector and generating reports..."
VERBATIM
)

Wyświetl plik

@ -0,0 +1,3 @@
-*/STM8S_StdPeriph_Lib/*
-*/interrupt_handler.h
-*/interrupt_handler.c

Wyświetl plik

@ -0,0 +1,564 @@
# Uncrustify 0.64
newlines = auto
input_tab_size = 4
output_tab_size = 4
string_escape_char = 92
string_escape_char2 = 0
string_replace_tab_chars = false
tok_split_gte = false
disable_processing_cmt = ""
enable_processing_cmt = ""
enable_digraphs = false
utf8_bom = ignore
utf8_byte = false
utf8_force = false
indent_columns = 4
indent_continue = 0
indent_with_tabs = 0
indent_cmt_with_tabs = false
indent_align_string = false
indent_xml_string = 0
indent_brace = 0
indent_braces = false
indent_braces_no_func = false
indent_braces_no_class = false
indent_braces_no_struct = false
indent_brace_parent = false
indent_paren_open_brace = false
indent_cs_delegate_brace = false
indent_namespace = false
indent_namespace_single_indent = false
indent_namespace_level = 0
indent_namespace_limit = 0
indent_extern = false
indent_class = false
indent_class_colon = false
indent_class_on_colon = false
indent_constr_colon = false
indent_ctor_init_leading = 2
indent_ctor_init = 0
indent_else_if = false
indent_var_def_blk = 0
indent_var_def_cont = false
indent_shift = false
indent_func_def_force_col1 = false
indent_func_call_param = false
indent_func_def_param = false
indent_func_proto_param = false
indent_func_class_param = false
indent_func_ctor_var_param = false
indent_template_param = false
indent_func_param_double = false
indent_func_const = 0
indent_func_throw = 0
indent_member = 0
indent_sing_line_comments = 0
indent_relative_single_line_comments = false
indent_switch_case = 4
indent_case_shift = 0
indent_case_brace = 0
indent_col1_comment = false
indent_label = 1
indent_access_spec = 1
indent_access_spec_body = false
indent_paren_nl = false
indent_paren_close = 0
indent_comma_paren = false
indent_bool_paren = false
indent_first_bool_expr = false
indent_square_nl = false
indent_preserve_sql = false
indent_align_assign = true
indent_oc_block = false
indent_oc_block_msg = 0
indent_oc_msg_colon = 0
indent_oc_msg_prioritize_first_colon = true
indent_oc_block_msg_xcode_style = false
indent_oc_block_msg_from_keyword = false
indent_oc_block_msg_from_colon = false
indent_oc_block_msg_from_caret = false
indent_oc_block_msg_from_brace = false
indent_min_vbrace_open = 0
indent_vbrace_open_on_tabstop = false
indent_token_after_brace = true
indent_cpp_lambda_body = false
sp_arith = add
sp_assign = add
sp_cpp_lambda_assign = ignore
sp_cpp_lambda_paren = ignore
sp_assign_default = ignore
sp_before_assign = ignore
sp_after_assign = ignore
sp_enum_paren = ignore
sp_enum_assign = ignore
sp_enum_before_assign = ignore
sp_enum_after_assign = ignore
sp_pp_concat = add
sp_pp_stringify = ignore
sp_before_pp_stringify = ignore
sp_bool = ignore
sp_compare = add
sp_inside_paren = ignore
sp_paren_paren = ignore
sp_cparen_oparen = ignore
sp_balance_nested_parens = false
sp_paren_brace = ignore
sp_before_ptr_star = ignore
sp_before_unnamed_ptr_star = ignore
sp_between_ptr_star = ignore
sp_after_ptr_star = ignore
sp_after_ptr_star_qualifier = ignore
sp_after_ptr_star_func = ignore
sp_ptr_star_paren = ignore
sp_before_ptr_star_func = ignore
sp_before_byref = ignore
sp_before_unnamed_byref = ignore
sp_after_byref = ignore
sp_after_byref_func = ignore
sp_before_byref_func = ignore
sp_after_type = force
sp_before_template_paren = ignore
sp_template_angle = ignore
sp_before_angle = ignore
sp_inside_angle = ignore
sp_after_angle = ignore
sp_angle_paren = ignore
sp_angle_paren_empty = ignore
sp_angle_word = ignore
sp_angle_shift = add
sp_permit_cpp11_shift = false
sp_before_sparen = remove
sp_inside_sparen = ignore
sp_inside_sparen_close = ignore
sp_inside_sparen_open = ignore
sp_after_sparen = ignore
sp_sparen_brace = ignore
sp_invariant_paren = ignore
sp_after_invariant_paren = ignore
sp_special_semi = ignore
sp_before_semi = remove
sp_before_semi_for = ignore
sp_before_semi_for_empty = ignore
sp_after_semi = add
sp_after_semi_for = force
sp_after_semi_for_empty = ignore
sp_before_square = ignore
sp_before_squares = ignore
sp_inside_square = ignore
sp_after_comma = ignore
sp_before_comma = remove
sp_after_mdatype_commas = ignore
sp_before_mdatype_commas = ignore
sp_between_mdatype_commas = ignore
sp_paren_comma = force
sp_before_ellipsis = ignore
sp_after_class_colon = ignore
sp_before_class_colon = ignore
sp_after_constr_colon = ignore
sp_before_constr_colon = ignore
sp_before_case_colon = remove
sp_after_operator = ignore
sp_after_operator_sym = ignore
sp_after_operator_sym_empty = ignore
sp_after_cast = ignore
sp_inside_paren_cast = ignore
sp_cpp_cast_paren = ignore
sp_sizeof_paren = ignore
sp_after_tag = ignore
sp_inside_braces_enum = ignore
sp_inside_braces_struct = ignore
sp_inside_braces = ignore
sp_inside_braces_empty = ignore
sp_type_func = ignore
sp_func_proto_paren = ignore
sp_func_proto_paren_empty = ignore
sp_func_def_paren = ignore
sp_func_def_paren_empty = ignore
sp_inside_fparens = ignore
sp_inside_fparen = ignore
sp_inside_tparen = ignore
sp_after_tparen_close = ignore
sp_square_fparen = ignore
sp_fparen_brace = ignore
sp_fparen_dbrace = ignore
sp_func_call_paren = ignore
sp_func_call_paren_empty = ignore
sp_func_call_user_paren = ignore
sp_func_class_paren = ignore
sp_func_class_paren_empty = ignore
sp_return_paren = ignore
sp_attribute_paren = ignore
sp_defined_paren = ignore
sp_throw_paren = ignore
sp_after_throw = ignore
sp_catch_paren = ignore
sp_version_paren = ignore
sp_scope_paren = ignore
sp_super_paren = remove
sp_this_paren = remove
sp_macro = ignore
sp_macro_func = ignore
sp_else_brace = ignore
sp_brace_else = ignore
sp_brace_typedef = ignore
sp_catch_brace = ignore
sp_brace_catch = ignore
sp_finally_brace = ignore
sp_brace_finally = ignore
sp_try_brace = ignore
sp_getset_brace = ignore
sp_word_brace = add
sp_word_brace_ns = add
sp_before_dc = ignore
sp_after_dc = ignore
sp_d_array_colon = ignore
sp_not = remove
sp_inv = remove
sp_addr = remove
sp_member = remove
sp_deref = remove
sp_sign = remove
sp_incdec = remove
sp_before_nl_cont = add
sp_after_oc_scope = ignore
sp_after_oc_colon = ignore
sp_before_oc_colon = ignore
sp_after_oc_dict_colon = ignore
sp_before_oc_dict_colon = ignore
sp_after_send_oc_colon = ignore
sp_before_send_oc_colon = ignore
sp_after_oc_type = ignore
sp_after_oc_return_type = ignore
sp_after_oc_at_sel = ignore
sp_after_oc_at_sel_parens = ignore
sp_inside_oc_at_sel_parens = ignore
sp_before_oc_block_caret = ignore
sp_after_oc_block_caret = ignore
sp_after_oc_msg_receiver = ignore
sp_after_oc_property = ignore
sp_cond_colon = ignore
sp_cond_colon_before = ignore
sp_cond_colon_after = ignore
sp_cond_question = ignore
sp_cond_question_before = ignore
sp_cond_question_after = ignore
sp_cond_ternary_short = ignore
sp_case_label = ignore
sp_range = ignore
sp_after_for_colon = ignore
sp_before_for_colon = ignore
sp_extern_paren = ignore
sp_cmt_cpp_start = ignore
sp_cmt_cpp_doxygen = false
sp_cmt_cpp_qttr = false
sp_endif_cmt = ignore
sp_after_new = ignore
sp_between_new_paren = ignore
sp_before_tr_emb_cmt = ignore
sp_num_before_tr_emb_cmt = 0
sp_annotation_paren = ignore
sp_skip_vbrace_tokens = false
align_keep_tabs = false
align_with_tabs = false
align_on_tabstop = false
#align_number_left = false
align_keep_extra_space = false
align_func_params = true
align_same_func_call_params = false
align_var_def_span = 0
align_var_def_star_style = 0
align_var_def_amp_style = 0
align_var_def_thresh = 0
align_var_def_gap = 0
align_var_def_colon = false
align_var_def_attribute = false
align_var_def_inline = false
align_assign_span = 0
align_assign_thresh = 0
align_enum_equ_span = 0
align_enum_equ_thresh = 0
align_var_class_span = 0
align_var_class_thresh = 0
align_var_class_gap = 0
align_var_struct_span = 0
align_var_struct_thresh = 0
align_var_struct_gap = 0
align_struct_init_span = 0
align_typedef_gap = 0
align_typedef_span = 0
align_typedef_func = 0
align_typedef_star_style = 0
align_typedef_amp_style = 0
align_right_cmt_span = 0
align_right_cmt_mix = false
align_right_cmt_gap = 0
align_right_cmt_at_col = 0
align_func_proto_span = 0
align_func_proto_gap = 0
align_on_operator = false
align_mix_var_proto = false
align_single_line_func = false
align_single_line_brace = false
align_single_line_brace_gap = 0
align_oc_msg_spec_span = 0
align_nl_cont = false
align_pp_define_together = false
align_pp_define_gap = 0
align_pp_define_span = 0
align_left_shift = true
align_asm_colon = false
align_oc_msg_colon_span = 0
align_oc_msg_colon_first = false
align_oc_decl_colon = false
nl_collapse_empty_body = false
nl_assign_leave_one_liners = false
nl_class_leave_one_liners = false
nl_enum_leave_one_liners = false
nl_getset_leave_one_liners = false
nl_func_leave_one_liners = false
nl_cpp_lambda_leave_one_liners = false
nl_if_leave_one_liners = false
nl_while_leave_one_liners = false
nl_oc_msg_leave_one_liner = false
nl_oc_block_brace = ignore
nl_start_of_file = ignore
nl_start_of_file_min = 0
nl_end_of_file = ignore
nl_end_of_file_min = 0
nl_assign_brace = ignore
nl_assign_square = ignore
nl_after_square_assign = ignore
nl_func_var_def_blk = 0
nl_typedef_blk_start = 0
nl_typedef_blk_end = 0
nl_typedef_blk_in = 0
nl_var_def_blk_start = 0
nl_var_def_blk_end = 0
nl_var_def_blk_in = 0
nl_fcall_brace = ignore
nl_enum_brace = ignore
nl_struct_brace = ignore
nl_union_brace = ignore
nl_if_brace = ignore
nl_brace_else = ignore
nl_elseif_brace = ignore
nl_else_brace = ignore
nl_else_if = ignore
nl_brace_finally = ignore
nl_finally_brace = ignore
nl_try_brace = ignore
nl_getset_brace = ignore
nl_for_brace = ignore
nl_catch_brace = ignore
nl_brace_catch = ignore
nl_brace_square = ignore
nl_brace_fparen = ignore
nl_while_brace = ignore
nl_scope_brace = ignore
nl_unittest_brace = ignore
nl_version_brace = ignore
nl_using_brace = ignore
nl_brace_brace = ignore
nl_do_brace = ignore
nl_brace_while = ignore
nl_switch_brace = ignore
nl_synchronized_brace = ignore
nl_multi_line_cond = false
nl_multi_line_define = false
nl_before_case = true
nl_before_throw = ignore
nl_after_case = false
nl_case_colon_brace = ignore
nl_namespace_brace = ignore
nl_template_class = ignore
nl_class_brace = ignore
nl_class_init_args = ignore
nl_constr_init_args = ignore
nl_enum_own_lines = ignore
nl_func_type_name = ignore
nl_func_type_name_class = ignore
nl_func_class_scope = ignore
nl_func_scope_name = ignore
nl_func_proto_type_name = ignore
nl_func_paren = ignore
nl_func_def_paren = ignore
nl_func_decl_start = force
nl_func_def_start = force
nl_func_decl_start_single = ignore
nl_func_def_start_single = ignore
nl_func_decl_start_multi_line = false
nl_func_def_start_multi_line = false
nl_func_decl_args = ignore
nl_func_def_args = force
nl_func_decl_args_multi_line = false
nl_func_def_args_multi_line = false
nl_func_decl_end = remove
nl_func_def_end = remove
nl_func_decl_end_single = ignore
nl_func_def_end_single = ignore
nl_func_decl_end_multi_line = false
nl_func_def_end_multi_line = false
nl_func_decl_empty = ignore
nl_func_def_empty = ignore
nl_func_call_start_multi_line = false
nl_func_call_args_multi_line = false
nl_func_call_end_multi_line = false
nl_oc_msg_args = false
nl_fdef_brace = force
nl_cpp_ldef_brace = ignore
nl_return_expr = ignore
nl_after_semicolon = false
nl_paren_dbrace_open = ignore
nl_after_brace_open = false
nl_after_brace_open_cmt = false
nl_after_vbrace_open = false
nl_after_vbrace_open_empty = false
nl_after_brace_close = false
nl_after_vbrace_close = false
nl_brace_struct_var = ignore
nl_define_macro = false
nl_squeeze_ifdef = false
nl_squeeze_ifdef_top_level = false
nl_before_if = ignore
nl_after_if = ignore
nl_before_for = ignore
nl_after_for = ignore
nl_before_while = ignore
nl_after_while = ignore
nl_before_switch = ignore
nl_after_switch = ignore
nl_before_synchronized = ignore
nl_after_synchronized = ignore
nl_before_do = ignore
nl_after_do = ignore
nl_ds_struct_enum_cmt = false
nl_ds_struct_enum_close_brace = false
nl_before_func_class_def = 0
nl_before_func_class_proto = 0
nl_class_colon = ignore
nl_constr_colon = ignore
nl_create_if_one_liner = false
nl_create_for_one_liner = false
nl_create_while_one_liner = false
nl_split_if_one_liner = false
nl_split_for_one_liner = false
nl_split_while_one_liner = false
pos_arith = ignore
pos_assign = ignore
pos_bool = ignore
pos_compare = ignore
pos_conditional = ignore
pos_comma = ignore
pos_enum_comma = ignore
pos_class_comma = ignore
pos_constr_comma = ignore
pos_class_colon = ignore
pos_constr_colon = ignore
code_width = 0
ls_for_split_full = false
ls_func_split_full = false
ls_code_width = false
nl_max = 0
nl_after_func_proto = 0
nl_after_func_proto_group = 0
nl_after_func_class_proto = 0
nl_after_func_class_proto_group = 0
nl_before_func_body_def = 0
nl_before_func_body_proto = 0
nl_after_func_body = 3
nl_after_func_body_class = 0
nl_after_func_body_one_liner = 0
nl_before_block_comment = 0
nl_before_c_comment = 0
nl_before_cpp_comment = 0
nl_after_multiline_comment = false
nl_after_label_colon = false
nl_after_struct = 0
nl_before_class = 0
nl_after_class = 0
nl_before_access_spec = 0
nl_after_access_spec = 0
nl_comment_func_def = 0
nl_after_try_catch_finally = 0
nl_around_cs_property = 0
nl_between_get_set = 0
nl_property_brace = ignore
eat_blanks_after_open_brace = true
eat_blanks_before_close_brace = true
nl_remove_extra_newlines = 0
nl_before_return = false
nl_after_return = false
nl_after_annotation = ignore
nl_between_annotation = ignore
mod_full_brace_do = ignore
mod_full_brace_for = ignore
mod_full_brace_function = ignore
mod_full_brace_if = ignore
mod_full_brace_if_chain = false
mod_full_brace_if_chain_only = false
mod_full_brace_nl = 0
mod_full_brace_while = ignore
mod_full_brace_using = ignore
mod_paren_on_return = ignore
mod_pawn_semicolon = false
mod_full_paren_if_bool = false
mod_remove_extra_semicolon = true
mod_add_long_function_closebrace_comment = 0
mod_add_long_namespace_closebrace_comment = 0
mod_add_long_class_closebrace_comment = 0
mod_add_long_switch_closebrace_comment = 0
mod_add_long_ifdef_endif_comment = 0
mod_add_long_ifdef_else_comment = 0
mod_sort_import = false
mod_sort_using = false
mod_sort_include = false
mod_move_case_break = false
mod_case_brace = ignore
mod_remove_empty_return = false
mod_sort_oc_properties = false
mod_sort_oc_property_thread_safe_weight = 0
mod_sort_oc_property_readwrite_weight = 0
mod_sort_oc_property_reference_weight = 0
mod_sort_oc_property_getter_weight = 0
mod_sort_oc_property_setter_weight = 0
mod_sort_oc_property_nullability_weight = 0
cmt_width = 0
cmt_reflow_mode = 0
cmt_convert_tab_to_spaces = true
cmt_indent_multi = true
cmt_c_group = false
cmt_c_nl_start = false
cmt_c_nl_end = false
cmt_cpp_group = false
cmt_cpp_nl_start = false
cmt_cpp_nl_end = false
cmt_cpp_to_c = false
cmt_star_cont = false
cmt_sp_before_star_cont = 0
cmt_sp_after_star_cont = 0
cmt_multi_check_last = true
cmt_multi_first_len_minimum = 4
cmt_insert_file_header = ""
cmt_insert_file_footer = ""
cmt_insert_func_header = ""
cmt_insert_class_header = ""
cmt_insert_oc_msg_header = ""
cmt_insert_before_preproc = false
cmt_insert_before_inlines = true
cmt_insert_before_ctor_dtor = false
pp_indent = ignore
pp_indent_at_level = false
pp_indent_count = 1
pp_space = ignore
pp_space_count = 0
pp_indent_region = 0
pp_region_indent_code = false
pp_indent_if = 0
pp_if_indent_code = false
pp_define_at_level = false
use_indent_func_call_param = true
use_indent_continue_only_once = false
use_options_overriding_for_qt_macros = true
warn_level_tabs_found_in_verbatim_string_literals = 2
# option(s) with 'not default' value: 0
#