Я написал небольшой модуль CMake для, ну, не важно, для чего. Дело в том, что он действует следующим образом:
scripts/whatever.sh
(в каталоге проекта).cat
‘here-file’, содержащий программу на C для компилятора C, найденную CMake (с откатом на cc
)Это относительно устойчиво в Unix-подобных системах, где cat
а также bash
доступны и когда разделитель пути /
, (Могут быть и другие предположения, которые я игнорирую.) Но — я хочу, чтобы это работало и в Windows, и в других системах. Как мне это сделать?
Заметки:
Вы можете использовать сценарии CMake для кроссплатформенности. Многие вещи могут быть выполнены непосредственно в CMakeLists.txt
и из него включены скрипты:
Поддержка «Здесь в документе» в CMake не самая лучшая, но не очень сложно сохранить текст небольшой программы в переменной CMake.
execute_process
может запускать внешние программы из скрипта CMake и сохранять выходные данные этой программы в переменной CMake. Также, try_compile
или же try_run
может быть полезно в некоторых сценариях.
Других решений пока нет …