У меня был очень плохой опыт использования готовых конвертеров кода для поддержки проектов на двух разных языках (обратите внимание, что я не говорил конвертировать , я полностью считаю, что выполнение первоначального преобразования / очистки с помощью автоматизированного инструмента может иметь свои преимущества.)
Есть люди, которые регулярно поддерживают несколько платформ , , и им нравится указывать на трудности выбора языка без собственных внутренних инструментов , но они склонны использовать специализированные языки или связать себя с набором языковых конструкций по соглашению, чтобы их промежуточные компиляторы могли выполнять за них всю работу.
Если не считать какого-нибудь крутого проприетарного кросс-компилятора и кодовых соглашений, которые идут с ним, я бы сделал эту работу вручную. Хитрость заключается в тщательном мониторинге проверок и обеспечении проверки функциональности в обоих местах. В зависимости от того, насколько серьезна проблема, вы можете изобрести процесс управления исходным кодом (который может варьироваться от жестокого и болезненного до относительно легкого веса), который может помочь гарантировать это (например, вы можете потребовать, чтобы разработчики регистрировали изменения только в ветви пока порт не будет создан на обеих платформах, в этот момент вы объедините их обе.)