Здравствуйте, пффф, Вы писали:
П>Кто-нибудь собирает плюсовые проекты кроссплатформенно, и особенно под виндой?
Чудес нет, все сводится к тому, чтобы руками прозапускать эти проверки на таргете и руками же прописать результаты. Частично это автоматизировано, в доках описано:
https://cmake.org/cmake/help/book/mastering-cmake/chapter/Cross%20Compiling%20With%20CMake.html#using-compile-checks
Здравствуйте, andrey.desman, Вы писали:
П>>Кто-нибудь собирает плюсовые проекты кроссплатформенно, и особенно под виндой?
AD>Чудес нет, все сводится к тому, чтобы руками прозапускать эти проверки на таргете и руками же прописать результаты. Частично это автоматизировано, в доках описано:
AD>https://cmake.org/cmake/help/book/mastering-cmake/chapter/Cross%20Compiling%20With%20CMake.html#using-compile-checks
Спасибо, завтра на работе почитаю.
Руками на таргете как-то не очень удобно запускать, таргет — это микроконтроллер
Здравствуйте, пффф, Вы писали:
П>Привет!
П>А как на CMake делается кросскомпиляция?
Через toolchain файлы где прописаны компиляторы и их параметры.
П>Есть arm-none-eabi-gcc, запускаю VSCode, он предлагает выбрать тулчейн для проекта CMake, который находит в текущей папке, выбираешь среди прочих этот армовский, и дальше облом — CMake пытается тестовые программы собирать и запускать, чтобы проверить фичи компилятора, и тут ему облом.
CMAKE_TRY_COMPILE_TARGET_TYPE
set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")
П>Кто-нибудь собирает плюсовые проекты кроссплатформенно, и особенно под виндой?
Да.
В старых версиях (до 3.6) можно еще так:
if(CMAKE_SYSTEM_NAME STREQUAL "Windows" AND ...)
set(CMAKE_C_COMPILER_WORKS 1)
set(CMAKE_C_COMPILER_FORCED 1)
set(CMAKE_CXX_COMPILER_WORKS 1)
set(CMAKE_CXX_COMPILER_FORCED 1)
endif()