Создание кроссплатформенной процедуры CMake для Unix - PullRequest
0 голосов
/ 23 июня 2018

Я написал небольшой модуль CMake для, ну, не важно для чего. Дело в том, что он действует следующим образом:

  • Когда вызывается соответствующая функция CMake, вызывается сценарий оболочки с относительным путем scripts/whatever.sh (в каталоге проекта).
  • Сценарий оболочки cat - это 'here-файл', содержащий программу на C для компилятора C, найденную CMake (с откатом до cc)
  • Программа компилируется, связывается и запускается, выдает текст
  • Выходной текст сохраняется как переменная CMake

Это относительно устойчиво в Unix-подобных системах, где доступны cat и bash и когда разделитель пути равен /. (Могут быть и другие предположения, которые я игнорирую.) Но - я хочу, чтобы это работало и в Windows, и в других системах. Как мне это сделать?

Примечания:

1 Ответ

0 голосов
/ 23 июня 2018

Вы можете использовать сценарии CMake для кроссплатформенности. Многие вещи могут быть выполнены непосредственно в CMakeLists.txt и включенных в него скриптах:

  • Поддержка «Здесь в документе» в CMake не самая лучшая, но не очень сложно сохранить текст небольшой программы в переменной CMake.

  • execute_process может запускать внешние программы из сценария CMake и сохранять выходные данные этой программы в переменной CMake. Кроме того, try_compile или try_run могут быть полезны в некоторых сценариях.

...