Есть идея расширить применимость проекта для Linux.

Насколько мне известно, в Lazarus'е с кросскомпиляцией всё довольно неплохо. Но большие проекты пока не переносил.
Собственно, какие есть общие принципы для этого процесса?
пересобираем .dll на .so, меняем '\' на '/' или используем DirectorySeparator, меняем настройки БД... Всё? )
P. S. Ещё в проекте часто используется модуль windows, в основном, для всякого типа ShellExecute.