Во-первых, вы должны убедиться, что ваш код GUI и код не-GUI аккуратно разделены на приложение GUI и библиотеки, если их еще нет. Это облегчает тестирование, а также упрощает реализацию интерфейса командной строки, веб-интерфейса и т. Д. Эти библиотеки (файлы модулей с объектами и процедурами) в большинстве случаев должны легко компилироваться в FreePascal, однако вам следует проверять и отлаживать код, не относящийся к графическому интерфейсу. первый.
Как только это закончится, пришло время взглянуть на ваш графический интерфейс. Если вы используете множество сторонних коммерческих компонентов с закрытым исходным кодом, вам может не повезти с простой конвертацией графического интерфейса. Если вы используете в основном стандартные компоненты и / или компоненты, которые были портированы на Lazarus, то вы действительно сможете конвертировать графический интерфейс и использовать его как есть.
Обратите внимание, что поскольку программы для Mac OS и Linux часто предполагаются , чтобы выглядеть по-разному, вы можете рассмотреть это в зависимости от вашего приложения. Возможные подходы включают в себя:
1. Используйте Lazarus даже в Windows и используйте один и тот же код графического интерфейса для всех платформ.
2. Используйте Lazarus только в OS X и Linux, и настройте графический интерфейс, чтобы он был немного естественным после конвертации.
3. Кодируйте собственный графический интерфейс для OS X (используя Cocoa и, возможно, XCode), а затем сделайте ссылку на свой код Pascal для обработки без использования GUI. Подобные вещи менее необходимы в Linux, но там у вас есть выбор наборов инструментов, которые может сделать серверная часть LCL (VCL).
Есть сильные сторонники каждого подхода, но какой из них правильный, зависит от ваших "обстоятельств" и ваших целей.
Если вас интересует OS X, рассмотрите возможность присоединения к списку MacPascal.
Wine - это огромное излишество, если только завтра вам не понадобится выпустить приложение для Linux / OS X практически без изменений. (В таком случае, почему бы просто не использовать VMWare?)