Сап, ЛОР.
Обычно для написания кроссплатформенных приложений лепят библиотеку той или иной степени монструозности, и распространяют её сборки под все поддерживаемые платформы.
Но ведь можно сделать абстракцию по-другому: писать описание UI и прочие платформозависимые вещи на языке достаточно высокого уровня, а затем подключать некий препроцессор, который из этого описания сгенерирует код на С (с++, rust - не столь важно) с использованием родного для платформы инструментария. Для Windows это будут вызовы апишных функций, для линукса можно по выбору вызывать либо GTK (всё равно она почти в любом линуксовом десктопе есть), либо Xt+Xaw. Не знаю, что там принято для макоси, но что-то наверняка есть. :) Для прикладного кода предусмотреть библиотеку макросов для связи с возможностями сгенерированного.
После этого полученный код, зависящий только от родных системных библиотек, скармливается родному системному компилятору, и мы получаем компактное нативное и вместе с тем кроссплатформенное приложение.
А теперь объясните мне, почему оно не нужно, почему оно не взлетело, и если это уже кто-то сделал (а наверняка кто-то пытался), то как оно называется и где дают. Я почему-то уверен, что где-то это уже сделано, только ключевые слова для гугления найти не могу.