Files
build/tools/aconfig/templates/c_source_file.template
Dennis Shen 7321f4f6f1 aconfig: add c codegen
c codegen can be done at the same time with cpp codegen, the idea is to
create a c compatible header that defines the flag apis, including flag
override apis for test. then in the corresponding cpp file, the
implementation simply calls into cpp api.

c header supports static method interface, and unit test override, but
it does not support injection pattern compared to cpp header

Bug: b/279483801
Test: atest aconfig.test
Change-Id: Ie62b76d6524e443de5d3c2f9000f7f66623ab571
2023-07-13 13:55:06 +00:00

22 lines
525 B
Plaintext

#include "{header}_c.h"
#include "{header}.h"
#include <string>
{{ for item in class_elements}}
const char* {header}_{item.uppercase_flag_name} = "{item.device_config_flag}";
{{ endfor - }}
{{ for item in class_elements}}
bool {header}_{item.flag_name}() \{
return {cpp_namespace}::{item.flag_name}();
}
{{ endfor }}
void {header}_override_flag(const char* name, bool val) \{
{cpp_namespace}::override_flag(std::string(name), val);
}
void {header}_reset_overrides() \{
{cpp_namespace}::reset_overrides();
}