Create target_filename.c and target_filename.h from files with g_type_prefix and include_files.
target_filename: the target file name. This creates #{target_filename.c} and #{target_filename.h}.
files: header files to parse
g_type_prefix: the gtype prefix such as GTK_TYPE_
include_files: define include <file> lines into target_filename.c
# File lib/glib-mkenums.rb, line 136 def self.create(target_filename, files, g_type_prefix, include_files, options) puts "creating #{target_filename}.c" mkenums = MkEnums.new(target_filename, files, g_type_prefix, include_files, options) open("#{target_filename}.c", "w") do |out| out.write(mkenums.create_c) end puts "creating #{target_filename}.h" open("#{target_filename}.h", "w") do |out| out.write(mkenums.create_h) end end
Initialize GLib::MkEnums
target_filename: the target file name. This creates #{target_filename.c} and #{target_filename.h}.
files: header files to parse
g_type_prefix: the gtype prefix such as GTK_TYPE_
include_files: define include <file> lines into target_filename.c
# File lib/glib-mkenums.rb, line 157 def initialize(target_filename, files, g_type_prefix, include_files, options) @target_filename = target_filename @include_files = include_files @targets = [] files.each do |path| data = "" File.open(path) do |i| data = i.read end @targets << [path, EnumDefinition.parse(data, g_type_prefix, options)] end end
Create a C source as a String.
# File lib/glib-mkenums.rb, line 184 def create_c ret = "\n/* Generated by glib-mkenums.rb ($Id$) */ \n\n" ret << %Q[#include "#{@target_filename}.h"\n] @include_files.each do |file| ret << "#include <#{file}>\n" end ret << "\n" ret << create_enums(:create_c) ret << "\n\n/* Generated data ends here */\n\n" ret end
Create a C header as a String.
# File lib/glib-mkenums.rb, line 197 def create_h header = "#{@target_filename}.h" const = "__#{File.basename(header).upcase.gsub(/-|\./, '_')}__" ret = "\n/* Generated by glib-mkenums.rb ($Id$) */ \n\n" ret << "#ifndef #{const}\n" ret << "#define #{const}\n\n" ret << "#include <glib-object.h>\n\n" ret << "G_BEGIN_DECLS" ret << create_enums(:create_h) ret << "\n\nG_END_DECLS\n\n" ret << "#endif /* #{const} */\n" ret << "\n/* Generated data ends here */\n\n" ret end