0
Я хочу перезаписать переменную окружения qt в моем CMakeLists.txt, если обнаружена 64-битная архитектура. Как я могу это сделать? Любая помощь приветствуется!Переопределяющая переменная среды в CMake
Я хочу перезаписать переменную окружения qt в моем CMakeLists.txt, если обнаружена 64-битная архитектура. Как я могу это сделать? Любая помощь приветствуется!Переопределяющая переменная среды в CMake
Вы можете использовать set
для замены значения переменной окружения, а обычным способом обнаружения 64-разрядной архитектуры является использование CMAKE_SIZEOF_VOID_P
.
Так, например, чтобы добавить /x64
или /x86
на переменную окружения QtEnvVar
, вы могли бы сделать:
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(EnvVarSetter)
message(STATUS "CMAKE_SIZEOF_VOID_P: ${CMAKE_SIZEOF_VOID_P}")
message(STATUS "QtEnvVar before: $ENV{QtEnvVar}")
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(ENV{QtEnvVar} "$ENV{QtEnvVar}/x64")
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(ENV{QtEnvVar} "$ENV{QtEnvVar}/x86")
else()
message(FATAL_ERROR "Unknown void* size.")
endif()
message(STATUS "QtEnvVar after: $ENV{QtEnvVar}")
я уже QtEnvVar заявил в мой компьютер, чтобы указать на «C:/Qt». Затем у меня есть два подкаталога: «x86» и «x64». Итак, я хотел бы обновить QtEnvVar до c:/Qt/x64, если обнаружена 64-битная архитектура или c:/Qt/x86, если 32-битная архитектура. Итак, я попробовал то, что вы предложили, но он, похоже, не перезаписывает QtEnvVar – thestar
@Sunny Я обновил свой ответ, чтобы быть более конкретным для вашего прецедента. Если это все равно не поможет, вы, вероятно, лучше всего показать нам пример CMakeLists.txt, где у вас есть проблема. – Fraser