Какова лучшая практика при работе со смешанной языковой библиотекой, где язык библиотеки требует инициализации во время выполнения?
У меня проблема, когда я хотел бы создать определенную библиотеку в Fortran, которая будет использоваться изC ++.Я бы хотел сохранить независимость от платформы и независимость от компилятора, если это возможно.Теперь два компилятора, с которыми я играл, G95 и GFortran требуют, чтобы основное приложение вызывало определенные специфичные для компилятора подпрограммы инициализации для правильной настройки среды выполнения перед использованием библиотеки.Эти функции имеют разные имена и подписи в зависимости от компилятора (для G95 функция void g95_runtime_start (int argc, char * argv []))
Я использую CMake для управления проектом, а подпроект библиотеки -статическая библиотека.Должен ли я как-то в своем файле cmake для основного приложения выяснить, какой компилятор fortran используется для подпроекта библиотеки, а затем позволить CMake создать определение в главном проекте, чтобы я мог условно скомпилировать основное приложение с помощью любой подпрограммы init?Это очень неловко.Есть ли лучший способ?