%language=ANSI-C %enum %struct-type %readonly-tables %define hash-function-name confitems_hash %define lookup-function-name confitems_get %define initializer-suffix ,0,0,NULL,NULL,NULL %{ #include "confitems.h" #include "conf.h" #undef bool #define ITEM_ENTRY(name, type, verify_fn) \ offsetof(struct conf, name), confitem_parse_ ## type, \ confitem_format_ ## type, verify_fn #define ITEM(name, type) \ ITEM_ENTRY(name, type, NULL) #define ITEM_V(name, type, verification) \ ITEM_ENTRY(name, type, confitem_verify_ ## verification) %} struct conf_item; %% base_dir, ITEM_V(base_dir, env_string, absolute_path) cache_dir, ITEM(cache_dir, env_string) cache_dir_levels, ITEM_V(cache_dir_levels, unsigned, dir_levels) compiler, ITEM(compiler, string) compiler_check, ITEM(compiler_check, string) compression, ITEM(compression, bool) compression_level, ITEM(compression_level, unsigned) cpp_extension, ITEM(cpp_extension, string) debug, ITEM(debug, bool) depend_mode, ITEM(depend_mode, bool) direct_mode, ITEM(direct_mode, bool) disable, ITEM(disable, bool) extra_files_to_hash, ITEM(extra_files_to_hash, env_string) hard_link, ITEM(hard_link, bool) hash_dir, ITEM(hash_dir, bool) ignore_headers_in_manifest, ITEM(ignore_headers_in_manifest, env_string) keep_comments_cpp, ITEM(keep_comments_cpp, bool) limit_multiple, ITEM(limit_multiple, double) log_file, ITEM(log_file, env_string) max_files, ITEM(max_files, unsigned) max_size, ITEM(max_size, size) path, ITEM(path, env_string) pch_external_checksum, ITEM(pch_external_checksum, bool) prefix_command, ITEM(prefix_command, env_string) prefix_command_cpp, ITEM(prefix_command_cpp, env_string) read_only, ITEM(read_only, bool) read_only_direct, ITEM(read_only_direct, bool) recache, ITEM(recache, bool) run_second_cpp, ITEM(run_second_cpp, bool) sloppiness, ITEM(sloppiness, sloppiness) stats, ITEM(stats, bool) temporary_dir, ITEM(temporary_dir, env_string) umask, ITEM(umask, umask)