多个Cmake_Prefix_Paths

Zel*_*ach 19 cmake

在我开发的项目上,我们使用cmake来编译我们的服务.目前,我们需要从3个不同的位置获取Qt的数据,我很好奇是否有办法在三个独立的命令上运行一个cmake命令.

我们目前使用的是什么

cmake -G "Visual Studio 12 2013" -DWITH_SERVER=1 -DCMAKE_PREFIX_PATH=C:\Qt\5.5\msvc2013\lib\cmake ..
cmake -G "Visual Studio 12 2013" -DWITH_SERVER=1 -DCMAKE_PREFIX_PATH=C:\protobuf\src ..
cmake -G "Visual Studio 12 2013" -DWITH_SERVER=1 -DCMAKE_PREFIX_PATH=C:\protobuf\cmake\build\Release ..
Run Code Online (Sandbox Code Playgroud)

我们试图通过相同的标志3次,并与分离的路径:;,但似乎没有像预期的那样工作.

ixS*_*Sci 23

要在CMAKE_PREFIX_PATH变量中提供多个路径,您需要用;(分号)分隔每个条目.所以你的命令看起来像:

cmake -DCMAKE_PREFIX_PATH="C:\Qt\5.5\msvc2013\lib\cmake;C:\protobuf\src;C:\protobuf\c??make\build\Release"
Run Code Online (Sandbox Code Playgroud)

要检查所提供的路径是否一切正常,您可以在cmake文件中使用以下代码:

foreach(path ${CMAKE_PREFIX_PATH})
  message("Path: " ${path})
endforeach(path)
Run Code Online (Sandbox Code Playgroud)

它将打印提供的每个路径.