小编Aft*_*nny的帖子

即使不在 Windows 上,生成器表达式也会将 WIN32 变量评估为真

我在 Ubuntu 上工作,这是我的 CMake 代码的一部分(有问题的部分在最后一句中):

include(ExternalProject)
ExternalProject_Add(fftw3_external
  URL
    http://www.fftw.org/fftw-3.3.8.tar.gz
  URL_HASH
    MD5=8aac833c943d8e90d51b697b27d4384d
  DOWNLOAD_NO_PROGRESS
    1
  UPDATE_COMMAND
    ""
  LOG_CONFIGURE
    1
  LOG_BUILD
    1
  LOG_INSTALL
    1
  CMAKE_ARGS
    -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX}
    -DBUILD_TESTS=OFF
  CMAKE_CACHE_ARGS
    -DCMAKE_C_FLAGS:STRING=$<$<BOOL:WIN32>:-DWITH_OUR_MALLOC>
  )
Run Code Online (Sandbox Code Playgroud)

配置后,我查看了相应的缓存文件,fftw3_external-cache.cmake它显示:

set(CMAKE_C_FLAGS "-DWITH_OUR_MALLOC" CACHE STRING "Initial cache" FORCE)
Run Code Online (Sandbox Code Playgroud)

但是这个内容对应WIN32为true。为什么会这样?

cmake

2
推荐指数
1
解决办法
796
查看次数

标签 统计

cmake ×1