35 OptParser.make ~version:Config.version ~usage:"habc [options] <file>" ()
37 let str_option ~default ~metavar ?short_name ?long_name ~help () =
39 StdOpt.str_option ~default ~metavar () in
41 OptParser.add opt_parser
43 ?long_name ~help store in
47 x with Opt.option_metavars = []
50 let str_callback ?short_name ?long_name ~help f =
52 Opt.option_metavars = [];
53 option_defhelp = Some help;
54 option_get = (fun _ -> raise Opt.No_value);
55 option_set_value = (fun _ -> ());
56 option_set = (fun _ _ ->
60 OptParser.add opt_parser
65 let int_option ~default ~metavar ?short_name ?long_name ~help () =
67 StdOpt.int_option ~default ~metavar () in
69 OptParser.add opt_parser
70 ?short_name ?long_name ~help store in
73 let bool_option ~default ?short_name ?long_name ~help () =
78 StdOpt.store_false () in
80 OptParser.add opt_parser
81 ?short_name ?long_name ~help store in
85 str_callback ~long_name:"conf" ~help:"Print configure and exit"
87 Printf.printf "version: %s\n" @@ Std.dump Config.version;
88 Printf.printf "bin_dir: %s\n" @@ Std.dump Config.bin_dir;
89 Printf.printf "share_dir: %s\n" @@ Std.dump Config.share_dir;
90 Printf.printf "lib_dir: %s\n" @@ Std.dump Config.lib_dir;
91 Printf.printf "default_includes: %s\n" @@ Std.dump Config.default_includes;
92 Printf.printf "default_template: %s\n" @@ Std.dump Config.default_template;
93 Printf.printf "path_sep: %s\n" @@ Std.dump Config.path_sep;
94 Printf.printf "exe: %s\n" @@ Std.dump Config.exe;
100 ~default:(Config.bin_dir ^ "/habc-scm" ^ Config.exe)
103 ~help:"Use <cmd> to compile scm to abc" () in
109 ~help:"Add <dir ..> to the list of include directories" () in
114 ~help:"without std library" () in
116 Config.default_includes
117 +> List.filter Sys.file_exists
118 +> String.concat Config.path_sep in
120 scm_cmd = Opt.get cmd;
121 includes = default ^ Config.path_sep ^ Opt.get includes;
122 link_std = Opt.get no_std
128 ~default:(Config.bin_dir ^ "/habc-link" ^ Config.exe)
131 ~help:"Use <cmd> to compile abc to swf" () in
138 ~help:"Set stage width by pixel" () in
145 ~help:"Set stage height by pixel" () in
148 ~default:"rgb(134,156,167)"
151 ~help:"stage background color" () in
158 ~help:"linked library" () in
160 link_cmd = Opt.get cmd;
161 bg_color = Color.parse @@ Opt.get bg_color;
162 size = (20 * Opt.get width,20 * Opt.get height); (* convert pixel to twips *)
163 libs = Str.split (Str.regexp Config.path_sep) @@ Opt.get libs
172 ~help:"Print calls to external command" () in
177 ~long_name:"just-print"
178 ~help:"Don't actually run any commands; just print them" () in
183 ~long_name:"keep-files"
184 ~help:"Keep temporary files" () in
186 verbose = Opt.get verbose;
187 just_print = Opt.get just_print;
188 keep_files = Opt.get keep_files
194 ~default:false ~short_name:'c' ~help:"compile only" () in
197 ~default:false ~long_name:"abc-stage" ~help:"(no doc)" () in
201 else if Opt.get abc then
212 ~help:"Set output filename" () in
214 OptParser.parse_argv opt_parser in
217 OptParser.usage opt_parser ();
222 match output_type () with
229 general = general ();