En primer lugar, debe asegurarse de que el código de la GUI y el código de la parte de fuera de la GUI estén claramente separados en la aplicación de la GUI y las bibliotecas si aún no lo están. Esto facilita la prueba y también facilita la implementación de la interfaz de línea de comandos, la interfaz web, etc. Estas bibliotecas (archivos de unidades con objetos y procedimientos) deben compilarse fácilmente en FreePascal en la mayoría de los casos, sin embargo, debe verificar y depurar el código que no es GUI. primero.
Una vez que está fuera del camino, es hora de echar un vistazo a su GUI. Si está utilizando muchos componentes comerciales de terceros de código cerrado, puede que no tenga suerte con la conversión fácil de la GUI. Si está utilizando principalmente componentes de stock y/o aquellos que han sido portados a Lazarus, entonces puede ser capaz de convertir la GUI y usarla tal como está.
Tenga en cuenta que, dado que los programas Mac OS y Linux son a menudo supuestos con un aspecto diferente, es posible que desee considerar eso, dependiendo de su aplicación. Los enfoques posibles incluyen: 1. Utilice Lazarus incluso en Windows, y use el mismo código GUI para todas las plataformas. 2. Utilice Lazarus solo en OS X y Linux, y personalice la GUI para que se vea algo nativa después de la conversión. 3. Codifique una GUI nativa para OS X (usando Cocoa y tal vez XCode), y luego vincule a su código Pascal para el manejo sin GUI. Este tipo de cosas es menos necesario en Linux, pero allí tiene una opción de kits de herramientas para el back-end de LCL (VCL).
Existen fuertes defensores de cada enfoque, pero cuál es el correcto depende de sus "circunstancias" y sus objetivos.
Si su principal interés es OS X, considere unirse a la lista MacPascal.
El vino es una gran exageración a menos que necesite sacar una aplicación Linux/OS X mañana sin casi ninguna modificación. (En ese caso, ¿por qué no usar VMWare?)
Lazarus en Mac admite QT y Carbono. En el pasado, incluso GTK (no lo han intentado durante años). El cacao está planeado pero progresa lentamente. Supongo que todo depende de lo ansioso que estés por reorganizar tu aplicación, y lo que demanda en la GUI que tienes. –