Ocamlbuild переопределяет параметры по умолчанию

Моя установка OCaml не распознает #!, поэтому camlp4o не может работать автономно. Он должен быть вызван как "ocamlrun camlp4o".

Я пытаюсь добавить флаг в плагин. Но новый флаг просто добавляется к существующему флагу.

В результате ocamlbuild вызовет компилятор с

"-pp camlp4o ocamlrun camlp4o".

Обходное решение - ввести новый тег "my_camlp4o". Однако в документации ocamlbuild упоминается возможность "переопределения" значений по умолчанию. Кажется, ocamlc, ocamlopt может быть переопределен. Но можем ли мы переопределить camlp4o? Это можно сделать в плагинах?

1 ответ

В Ocamlbuild есть поддержка изменения настроек по умолчанию через -ocamlc <command>, -ocamldep <command> и т.д. параметры командной строки. К сожалению, camlp4 в настоящее время не входит в набор настраиваемых команд. Не могли бы вы использовать трекер, чтобы запросить эту функцию?

(В то же время я рекомендую обходной путь, например, вы замените ocamlrun исполняемый в вашем PATH исполняемым скриптом, который делает правильные вещи.)

редактировать

Другой обходной путь - выполнить всю компиляцию через ocamlfind, которая поддерживает переопределение команды camlp4 (см. документацию) и может использоваться в качестве основы для всех команд ocamlbuild с -use-ocamlfind вариант. К сожалению, сам ocamlfind поддерживает только предварительную обработку во время компиляции (при вызове фактического компилятора), а не автономную обработку от источника к источнику, так что это может не охватывать ваш собственный вариант использования.

Другие вопросы по тегам