在CMake中覆盖环境变量

时间:2014-01-22 15:59:08

标签: cmake environment-variables

如果检测到64位架构,我想在我的CMakeLists.txt中覆盖“qt”环境变量。 我怎样才能做到这一点? 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

您可以使用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}")