Как установить CMAKE_TRY_COMPILE_TARGET_TYPE извне CMake - PullRequest
1 голос
/ 06 марта 2019

tl; dr

Учитывая CMakeList.txt, который я не могу редактировать, могу ли я установить CMAKE_TRY_COMPILE_TARGET_TYPE равным STATIC_LIBRARY при настройке этого файла?

В идеале я мог бы сделать это через переменную окружения, но если это невозможно, передача моего значения в качестве аргумента командной строки тоже будет в порядке.

Подробности

Я пытаюсь создать Профиль Конана, который позволит мне пересечь сборку с помощью GNU Arm Embedded Toolchain .

Конан предоставляет механизм для указания бинарного файла компилятора и флагов компилятора + компоновщика, которые я хотел бы использовать в CMake, но мне нужно указать set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY), чтобы GNU Arm Embedded прошла проверку компилятора CMake.

Чтобы заставить работать мой кросс-сборочный инструментарий, у меня осталось 2 варианта:

  1. Каждый файл CMake, который я хочу поддерживать кросс-сборку, должен проверить,сборка для встроенного устройства, и если это так, запустите set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY).Это раздражает, потому что заставляет все проекты думать о внедрении.
  2. ИЛИ Как-то передать CMAKE_TRY_COMPILE_TARGET_TYPE в CMake без редактирования CMakeList.txt.

Я бы хотелделать 2.

1 Ответ

2 голосов
/ 06 марта 2019

Вы можете получить нужную вам функциональность с флагом -D.

Я бы попробовал что-то вроде этого: cmake -D CMAKE_TRY_COMPILE_TARGET_TYPE=STATIC_LIBRARY

...