Короче у меня от этой кроссплатформенности голова кругом, SDL2 спасает только разве что от совсем базовых, но важных конечно вещей, стандартная библиотека С и то не всегда всё гладко, старание придерживаться POSIX конечно тоже здорово, но ПОЗИКС тоже как бэ не один, а во всех разбираться крыша поедет. Проблема в том что вот ты начинаешь писать новую функцию вот тебе надо создать каталог и перейти в него, нагенерить файлов обойти их попутно обходя рекрсивно другой каталог и потому удалить всё это брахло и тут на каждом шагу остановки, а будет ли это работать тут, а там, а вот тут, и каждый раз не веря гуглу перекомпилять под разное дабы проверить что всё хорошо ибо всегда что-то можно упустить и не заметить. Ну перекрываю поток воды, смысл думаю понятен про что я.
И теперь вопрос, есть ли в природе такой зверёк которому можно скормить исходники проекта и он прочекает совместимость по стандартам, платформам и всё вот это и выдаст например что-то типа
~$croscheck --all-targets -R ~/my_project
~$############### STD CHECK ################
~$[POSIX - ISO/IEC/IEEE 9945:2009] - 100% совместимости : используйте -v для подробностей
~$[POSIX - ISO/IEC/IEEE 9945:2009/Cor 2:2017] - 2 ошибки совместимости : используйте -v для подробностей
~$[и так далее всякие ISO C 99/11 куча всего]
~$[blablabla] 1% совместимости 65898 ошибок : используйте -v для подробностей
~$############## ARCH CHECK ###############
~$[Little endian] - 3458 ошибок нет гарантии работы !
~$[Big endian] - OK!
~$[Word 8] - Работа невозможна!
~$[Word 16] - Работа невозможна!
~$[Word 32] - 640 ошибок типа
~$[Word 64] - OK!
~$[и куча другой фигни разноцветной]
~$############# SUMMARY ###################
~$[OK] 100% совместимая платформа -> x86_64 Linux(from 2.6 to 5.2) В рамках POSIX 9945:2009 gcc(from 6.3 to 9.2)
~$[OK] 100% совместимая платформа -> x86_64 MacOSX(from x.x to x.x) В рамках POSIX 9945:2009 gcc(from 6.3 to 9.2)
~$[ER] Сломана совместимость с Ms Windows / NDK Android / blablabla : используйте -v для подробностей
Ну и с флагом -v выводились бы отсутствующие функции, константы, макросы, типы там заголовки и так далее
Ну и если я например хочу 32bit + 64bit + Android + Linux + Windows, а остальное мне не важно то чекаю типа
croscheck -R target_arch=i686,x86_64 target_platform=Linux,Windows,Android ~/my_project
и всё
Вот такую штуку я хочу (