1234567891011121314151617181920212223242526272829303132333435openOcamlbuild_pluginletcppo_rulesext=letdep="%(name).cppo"-.-extandprod1="%(name: <*> and not <*.cppo>)"-.-extandprod2="%(name: <**/*> and not <**/*.cppo>)"-.-extinletcppo_ruleprodenv_build=letdep=envdepinletprod=envprodinlettags=tags_of_pathnameprod++"cppo"inCmd(S[A"cppo";Ttags;S[A"-o";Pprod];Pdep])inrule("cppo: *.cppo."-.-ext^" -> *."-.-ext)~dep~prod:prod1(cppo_ruleprod1);rule("cppo: **/*.cppo."-.-ext^" -> **/*."-.-ext)~dep~prod:prod2(cppo_ruleprod2)letdispatcher=function|After_rules->beginList.itercppo_rules["ml";"mli";"mlpack"];pflag["cppo"]"cppo_D"(funs->S[A"-D";As]);pflag["cppo"]"cppo_U"(funs->S[A"-U";As]);pflag["cppo"]"cppo_I"(funs->ifPathname.is_directorysthenS[A"-I";Ps]elseS[A"-I";P(Pathname.dirnames)]);pdep["cppo"]"cppo_I"(funs->ifPathname.is_directorysthen[]else[s]);flag["cppo";"cppo_q"](A"-q");flag["cppo";"cppo_s"](A"-s");flag["cppo";"cppo_n"](A"-n");pflag["cppo"]"cppo_x"(funs->S[A"-x";As]);pflag["cppo"]"cppo_V"(funs->S[A"-V";As]);flag["cppo";"cppo_V_OCAML"]&S[A"-V";A("OCAML:"^Sys.ocaml_version)]end|_->()