Установка переменных "-D" внутри CMake - PullRequest
0 голосов
/ 05 августа 2020

Я использую vcpkg, и я хотел бы установить переменную VCPKG_TARGET_TRIPLET в мой указанный c триплет.

Помощь здесь https://vcpkg.readthedocs.io/en/latest/users/integration/#using -an-environment- Параметр переменной-вместо-командной-строки (внизу страницы) говорит, что вам нужно передать его как параметр -D в CMake, но я хотел бы установить его в моем CMakeLists.txt.

Я пробовал следующие два варианта, но оба, похоже, не работают:

set(VCPKG_TARGET_TRIPLET "x64-mingw-static" CACHE STRING "") # doesn't work
set(VCPKG_TARGET_TRIPLET "x64-mingw-static") # also doesn't work

Причина, по которой я хочу сделать это в CMakeLists.txt, а не в командной строке, связана с моим текущая настройка с VS Code и расширением CMakeTools.

Как я могу «смоделировать» флаг -D внутри моих CMakeLists?

Я также должен упомянуть, что весь мой «проект» состоит из вершины -level CMakeLists как своего рода «главный проект», который затем включает в себя подпапку с другим CMakeLists и моим «фактическим» проектом (тот, который с командами find_package).

1 Ответ

0 голосов
/ 06 августа 2020

Попробуйте с add_compile_definitions или target_compile_definitions

Вот так

add_compile_definitions(VCPKG_TARGET_TRIPLET="x64-mingw-static") 

или

target_compile_definitions(targetname PUBLIC VCPKG_TARGET_TRIPLET="x64-mingw-static")

CMake Tutorial

...