在命令行中为 CMake 定义包含 dir 变量的 2 个路径

问题描述 投票:0回答:1

我在 CMakeLists.txt 文件中有以下行:

include_directories(${QWT_INCLUDE_DIR})

我需要在这里添加两个包含目录,例如

include_directories("C:/v_g/qwt-6.2.0/src" "C:/v_g/qwt-6.2.0/classincludes")

现在,我不想在我的 CMakeLists.txt 文件中对这些进行硬编码。相反,我想使用带有变量

QWT_INCLUDE_DIR
的第一个版本,它当然必须包含两个包含目录的路径,如图所示。 我了解到我不能用分号分隔两条路径。 我必须用空格将它们分开。

从命令行我需要类似的东西

cmake .. -G "MinGW Makefiles" -DQWT_INCLUDE_DIR="C:/v_g/qwt-6.2.0/src" "C:/v_g/qwt-6.2.0/classincludes" -DQWT_LIBRARY="C:/v_g/qwt-6.2.0/lib/qwt.dll"

cmake .. -G "MinGW Makefiles" -DQWT_INCLUDE_DIR="C:/v_g/qwt-6.2.0/src;C:/v_g/qwt-6.2.0/classincludes" -DQWT_LIBRARY="C:/v_g/qwt-6.2.0/lib/qwt.dll"

两者都不起作用,因为它们没有将正确的格式设置为变量

QWT_INCLUDE_DIR

在命令行中使用

-DQWT_INCLUDE_DIR
参数的正确方法是什么?

c++ cmake
1个回答
0
投票

您是否尝试过使用分号,例如:

cmake . -DQWT_INCLUDE_DIR="C:/v_g/qwt-6.2.0/src;C:/v_g/qwt-6.2.0/classincludes"

如果我这样做,使用以下 CMakeLists.txt 我会得到以下输出:

CMakeLists.txt:

cmake_minimum_required(VERSION 3.12.0)
project(test)

foreach(ITEM ${QWT_INCLUDE_DIR})
    message(STATUS ${ITEM})
endforeach()

输出:

-- C:/v_g/qwt-6.2.0/src
-- C:/v_g/qwt-6.2.0/classincludes

这表明我应该将其正确解释为

include_directories
命令的列表。

© www.soinside.com 2019 - 2024. All rights reserved.